@plyaz/types 1.13.16 → 1.14.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 (45) hide show
  1. package/dist/api/endpoints/infobip/types.d.ts +6 -1
  2. package/dist/api/errors/types.d.ts +1 -1
  3. package/dist/api/index.cjs +158 -100
  4. package/dist/api/index.cjs.map +1 -1
  5. package/dist/api/index.js +60 -2
  6. package/dist/api/index.js.map +1 -1
  7. package/dist/auth/index.cjs +12 -4196
  8. package/dist/auth/index.cjs.map +1 -1
  9. package/dist/auth/index.js +10 -6
  10. package/dist/auth/index.js.map +1 -1
  11. package/dist/auth/schemas.d.ts +20 -21
  12. package/dist/db/database.types.d.ts +1 -1
  13. package/dist/db/features-config.types.d.ts +2 -2
  14. package/dist/db/index.cjs.map +1 -1
  15. package/dist/db/index.js.map +1 -1
  16. package/dist/db/replica.types.d.ts +2 -2
  17. package/dist/errors/index.cjs +158 -100
  18. package/dist/errors/index.cjs.map +1 -1
  19. package/dist/errors/index.js +60 -2
  20. package/dist/errors/index.js.map +1 -1
  21. package/dist/errors/types.d.ts +47 -6
  22. package/dist/http/constants.d.ts +265 -0
  23. package/dist/index.cjs +761 -4344
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.ts +4 -0
  26. package/dist/index.js +600 -7
  27. package/dist/index.js.map +1 -1
  28. package/dist/locale/types.d.ts +109 -0
  29. package/dist/notifications/enums.d.ts +0 -1
  30. package/dist/notifications/index.cjs +155 -4201
  31. package/dist/notifications/index.cjs.map +1 -1
  32. package/dist/notifications/index.d.ts +11 -0
  33. package/dist/notifications/index.js +133 -1
  34. package/dist/notifications/index.js.map +1 -1
  35. package/dist/notifications/schemas.d.ts +13 -3
  36. package/dist/notifications/types.d.ts +66 -24
  37. package/dist/notifications/webhooks.schemas.d.ts +278 -0
  38. package/dist/payments/base-error/types.d.ts +1 -1
  39. package/dist/payments/gateways/provider/types.d.ts +1 -1
  40. package/dist/payments/gateways/routings/types.d.ts +1 -1
  41. package/dist/payments/provider/adapter/types.d.ts +1 -1
  42. package/dist/payments/provider/core/types.d.ts +1 -1
  43. package/dist/payments/provider/payment-provider/types.d.ts +1 -1
  44. package/dist/payments/transaction/types.d.ts +1 -1
  45. package/package.json +4 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/auth/enums.ts","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js","../src/auth/schemas.ts","../src/errors/enums.ts","../src/errors/codes.ts","../src/events/enums.ts","../src/web3/enums.ts","../src/payments/events/enums.ts","../src/payments/events/unified-event/enums.ts","../src/payments/provider/provider-capability/enums.ts","../src/payments/request/enums.ts","../src/payments/gateways/routings/enums.ts","../src/payments/base-error/enum.ts","../src/notifications/enums.ts","../src/notifications/schemas.ts","../src/api/events/enum.ts","../src/api/queue/enums.ts","../src/api/headers/enum.ts","../src/api/network/enums.ts","../src/api/debugger/enums.ts","../src/api/client/enum.ts","../src/api/regional/enum.ts","../src/api/utils/enums.ts","../src/api/pubsub/enum.ts"],"names":["AUTH_PROVIDER_TYPE","util","objectUtil","errorUtil","errorMap","ctx","result","issues","elements","processed","r","ZodFirstPartyTypeKind","HTTP_STATUS","PAYMENTEVENTTYPE","PAYMENTEVENTCATEGORY","PAYMENTERRORCATEGORY","EVENTPROCESSINGSTATUS","PAYMENTPROVIDERTYPE","PAYMENTMETHOD","PAYMENTSTATUS","TRANSACTIONTYPE","USERTYPE","PRODUCTTYPE","REQUIREDACTIONTYPE","COSTOPTIMIZATIONSTRATEGY","FAILOVERSTRATEGY","REGULATORYFRAMEWORK","LOADBALANCINGSTRATEGY","PERFORMANCEMETRICTYPE","ROUTINGSTRATEGY","REFUND_ERROR_TYPES","REGULATORY_FRAMEWORK","REFUND_NOT_ALLOWED_REASON","SECURITY_THREAT_TYPE","WEBHOOK_VERIFICATION_REASON","PAYMENT_ERROR_CATEGORY","SIGNATURE_METHOD","WEBHOOK_EVENT_TYPE","WEBHOOK_ENCRYPTION_METHOD","NETWORK_QUALITY","CORRELATION_TYPE"],"mappings":";;;;;;;;;;;;;AAYO,IAAM,SAAA,GAAY;AAAA;AAAA,EAEvB,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,IAAA,EAAM,MAAA;AAAA;AAAA,EAGN,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,UAAA,EAAY;AACd;AAcO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,SAAA,EAAW,WAAA;AAAA;AAAA,EAGX,MAAA,EAAQ;AACV;AAcO,IAAM,aAAA,GAAgB;AAAA;AAAA,EAE3B,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,MAAA,EAAQ;AACV;AAEO,IAAK,kBAAA,qBAAAA,mBAAAA,KAAL;AACL,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AAFH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;;;ACpFZ,IAAA,gBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,EAAA,EAAA,MAAA,EAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,MAAA,EAAA,MAAA,OAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,OAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,cAAA,EAAA,MAAA,UAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,GAAA,EAAA,MAAA,OAAA;AAAA,EAAA,KAAA,EAAA,MAAA,SAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,OAAA,EAAA,MAAA,WAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,IAAA,EAAA,MAAA,QAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,eAAA,EAAA,MAAA,UAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,MAAA,EAAA,MAAA,WAAA;AAAA,EAAA,IAAA,EAAA,MAAA,QAAA;AAAA,EAAA,QAAA,EAAA,MAAA,YAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,UAAA,EAAA,MAAA,cAAA;AAAA,EAAA,YAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,IAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,WAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,GAAA,EAAA,MAAA,OAAA;AAAA,EAAA,GAAA,EAAA,MAAA,OAAA;AAAA,EAAA,UAAA,EAAA,MAAA,cAAA;AAAA,EAAA,KAAA,EAAA,MAAA,SAAA;AAAA,EAAA,IAAA,EAAA,MAAA,QAAA;AAAA,EAAA,QAAA,EAAA,MAAA,YAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,QAAA,EAAA,MAAA,YAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,QAAA,EAAA,MAAA,YAAA;AAAA,EAAA,UAAA,EAAA,MAAA,cAAA;AAAA,EAAA,OAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,GAAA,EAAA,MAAA,OAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,YAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,MAAA,EAAA,MAAA,UAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,KAAA,EAAA,MAAA,SAAA;AAAA,EAAA,SAAA,EAAA,MAAA,aAAA;AAAA,EAAA,KAAA,EAAA,MAAA,SAAA;AAAA,EAAA,OAAA,EAAA,MAAA,WAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,IAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACAO,IAAI,IAAA;AAAA,CACV,SAAUC,KAAAA,EAAM;AACb,EAAAA,KAAAA,CAAK,WAAA,GAAc,CAAC,CAAA,KAAM;AAAA,EAAE,CAAA;AAC5B,EAAA,SAAS,SAAS,IAAA,EAAM;AAAA,EAAE;AAAjB,EAAA,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA;AACT,EAAAA,MAAK,QAAA,GAAW,QAAA;AAChB,EAAA,SAAS,YAAY,EAAA,EAAI;AACrB,IAAA,MAAM,IAAI,KAAA,EAAM;AAAA,EACpB;AAFS,EAAA,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAGT,EAAAA,MAAK,WAAA,GAAc,WAAA;AACnB,EAAAA,KAAAA,CAAK,WAAA,GAAc,CAAC,KAAA,KAAU;AAC1B,IAAA,MAAM,MAAM,EAAC;AACb,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA;AAAA,IAChB;AACA,IAAA,OAAO,GAAA;AAAA,EACX,CAAA;AACA,EAAAA,KAAAA,CAAK,kBAAA,GAAqB,CAAC,GAAA,KAAQ;AAC/B,IAAA,MAAM,SAAA,GAAYA,KAAAA,CAAK,UAAA,CAAW,GAAG,EAAE,MAAA,CAAO,CAAC,CAAA,KAAM,OAAO,GAAA,CAAI,GAAA,CAAI,CAAC,CAAC,MAAM,QAAQ,CAAA;AACpF,IAAA,MAAM,WAAW,EAAC;AAClB,IAAA,KAAA,MAAW,KAAK,SAAA,EAAW;AACvB,MAAA,QAAA,CAAS,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB;AACA,IAAA,OAAOA,KAAAA,CAAK,aAAa,QAAQ,CAAA;AAAA,EACrC,CAAA;AACA,EAAAA,KAAAA,CAAK,YAAA,GAAe,CAAC,GAAA,KAAQ;AACzB,IAAA,OAAOA,MAAK,UAAA,CAAW,GAAG,CAAA,CAAE,GAAA,CAAI,SAAU,CAAA,EAAG;AACzC,MAAA,OAAO,IAAI,CAAC,CAAA;AAAA,IAChB,CAAC,CAAA;AAAA,EACL,CAAA;AACA,EAAAA,KAAAA,CAAK,UAAA,GAAa,OAAO,MAAA,CAAO,IAAA,KAAS,UAAA,GACnC,CAAC,GAAA,KAAQ,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,GACxB,CAAC,MAAA,KAAW;AACV,IAAA,MAAM,OAAO,EAAC;AACd,IAAA,KAAA,MAAW,OAAO,MAAA,EAAQ;AACtB,MAAA,IAAI,OAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,GAAG,CAAA,EAAG;AACnD,QAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,IAAA;AAAA,EACX,CAAA;AACJ,EAAAA,KAAAA,CAAK,IAAA,GAAO,CAAC,GAAA,EAAK,OAAA,KAAY;AAC1B,IAAA,KAAA,MAAW,QAAQ,GAAA,EAAK;AACpB,MAAA,IAAI,QAAQ,IAAI,CAAA;AACZ,QAAA,OAAO,IAAA;AAAA,IACf;AACA,IAAA,OAAO,MAAA;AAAA,EACX,CAAA;AACA,EAAAA,KAAAA,CAAK,SAAA,GAAY,OAAO,MAAA,CAAO,SAAA,KAAc,aACvC,CAAC,GAAA,KAAQ,MAAA,CAAO,SAAA,CAAU,GAAG,CAAA,GAC7B,CAAC,GAAA,KAAQ,OAAO,GAAA,KAAQ,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,KAAM,GAAA;AACtF,EAAA,SAAS,UAAA,CAAW,KAAA,EAAO,SAAA,GAAY,KAAA,EAAO;AAC1C,IAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,GAAA,KAAS,OAAO,GAAA,KAAQ,QAAA,GAAW,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA,GAAM,GAAI,CAAA,CAAE,KAAK,SAAS,CAAA;AAAA,EAC1F;AAFS,EAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAGT,EAAAA,MAAK,UAAA,GAAa,UAAA;AAClB,EAAAA,KAAAA,CAAK,qBAAA,GAAwB,CAAC,CAAA,EAAG,KAAA,KAAU;AACvC,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC3B,MAAA,OAAO,MAAM,QAAA,EAAS;AAAA,IAC1B;AACA,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AACJ,CAAA,EAAG,IAAA,KAAS,IAAA,GAAO,EAAC,CAAE,CAAA;AACf,IAAI,UAAA;AAAA,CACV,SAAUC,WAAAA,EAAY;AACnB,EAAAA,WAAAA,CAAW,WAAA,GAAc,CAAC,KAAA,EAAO,MAAA,KAAW;AACxC,IAAA,OAAO;AAAA,MACH,GAAG,KAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACP;AAAA,EACJ,CAAA;AACJ,CAAA,EAAG,UAAA,KAAe,UAAA,GAAa,EAAC,CAAE,CAAA;AAC3B,IAAM,aAAA,GAAgB,KAAK,WAAA,CAAY;AAAA,EAC1C,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA;AACJ,CAAC,CAAA;AACM,IAAM,aAAA,2BAAiB,IAAA,KAAS;AACnC,EAAA,MAAM,IAAI,OAAO,IAAA;AACjB,EAAA,QAAQ,CAAA;AAAG,IACP,KAAK,WAAA;AACD,MAAA,OAAO,aAAA,CAAc,SAAA;AAAA,IACzB,KAAK,QAAA;AACD,MAAA,OAAO,aAAA,CAAc,MAAA;AAAA,IACzB,KAAK,QAAA;AACD,MAAA,OAAO,OAAO,KAAA,CAAM,IAAI,CAAA,GAAI,aAAA,CAAc,MAAM,aAAA,CAAc,MAAA;AAAA,IAClE,KAAK,SAAA;AACD,MAAA,OAAO,aAAA,CAAc,OAAA;AAAA,IACzB,KAAK,UAAA;AACD,MAAA,OAAO,aAAA,CAAc,QAAA;AAAA,IACzB,KAAK,QAAA;AACD,MAAA,OAAO,aAAA,CAAc,MAAA;AAAA,IACzB,KAAK,QAAA;AACD,MAAA,OAAO,aAAA,CAAc,MAAA;AAAA,IACzB,KAAK,QAAA;AACD,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACrB,QAAA,OAAO,aAAA,CAAc,KAAA;AAAA,MACzB;AACA,MAAA,IAAI,SAAS,IAAA,EAAM;AACf,QAAA,OAAO,aAAA,CAAc,IAAA;AAAA,MACzB;AACA,MAAA,IAAI,IAAA,CAAK,IAAA,IAAQ,OAAO,IAAA,CAAK,IAAA,KAAS,UAAA,IAAc,IAAA,CAAK,KAAA,IAAS,OAAO,IAAA,CAAK,KAAA,KAAU,UAAA,EAAY;AAChG,QAAA,OAAO,aAAA,CAAc,OAAA;AAAA,MACzB;AACA,MAAA,IAAI,OAAO,GAAA,KAAQ,WAAA,IAAe,IAAA,YAAgB,GAAA,EAAK;AACnD,QAAA,OAAO,aAAA,CAAc,GAAA;AAAA,MACzB;AACA,MAAA,IAAI,OAAO,GAAA,KAAQ,WAAA,IAAe,IAAA,YAAgB,GAAA,EAAK;AACnD,QAAA,OAAO,aAAA,CAAc,GAAA;AAAA,MACzB;AACA,MAAA,IAAI,OAAO,IAAA,KAAS,WAAA,IAAe,IAAA,YAAgB,IAAA,EAAM;AACrD,QAAA,OAAO,aAAA,CAAc,IAAA;AAAA,MACzB;AACA,MAAA,OAAO,aAAA,CAAc,MAAA;AAAA,IACzB;AACI,MAAA,OAAO,aAAA,CAAc,OAAA;AAAA;AAEjC,CAAA,EAxC6B,eAAA,CAAA;;;AC3FtB,IAAM,YAAA,GAAe,KAAK,WAAA,CAAY;AAAA,EACzC,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,6BAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,qBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,4BAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACJ,CAAC,CAAA;AACM,IAAM,aAAA,2BAAiB,GAAA,KAAQ;AAClC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,GAAA,EAAK,MAAM,CAAC,CAAA;AACxC,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,KAAK,CAAA;AAC5C,CAAA,EAH6B,eAAA,CAAA;AAItB,IAAM,QAAA,GAAN,MAAM,SAAA,SAAiB,KAAA,CAAM;AAAA,EAvBpC;AAuBoC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAChC,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EAChB;AAAA,EACA,YAAY,MAAA,EAAQ;AAChB,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,SAAS,EAAC;AACf,IAAA,IAAA,CAAK,QAAA,GAAW,CAAC,GAAA,KAAQ;AACrB,MAAA,IAAA,CAAK,MAAA,GAAS,CAAC,GAAG,IAAA,CAAK,QAAQ,GAAG,CAAA;AAAA,IACtC,CAAA;AACA,IAAA,IAAA,CAAK,SAAA,GAAY,CAAC,IAAA,GAAO,EAAC,KAAM;AAC5B,MAAA,IAAA,CAAK,SAAS,CAAC,GAAG,IAAA,CAAK,MAAA,EAAQ,GAAG,IAAI,CAAA;AAAA,IAC1C,CAAA;AACA,IAAA,MAAM,cAAc,GAAA,CAAA,MAAA,CAAW,SAAA;AAC/B,IAAA,IAAI,OAAO,cAAA,EAAgB;AAEvB,MAAA,MAAA,CAAO,cAAA,CAAe,MAAM,WAAW,CAAA;AAAA,IAC3C,CAAA,MACK;AACD,MAAA,IAAA,CAAK,SAAA,GAAY,WAAA;AAAA,IACrB;AACA,IAAA,IAAA,CAAK,IAAA,GAAO,UAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAClB;AAAA,EACA,OAAO,OAAA,EAAS;AACZ,IAAA,MAAM,MAAA,GAAS,OAAA,IACX,SAAU,KAAA,EAAO;AACb,MAAA,OAAO,KAAA,CAAM,OAAA;AAAA,IACjB,CAAA;AACJ,IAAA,MAAM,WAAA,GAAc,EAAE,OAAA,EAAS,EAAC,EAAE;AAClC,IAAA,MAAM,YAAA,2BAAgB,KAAA,KAAU;AAC5B,MAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAC9B,QAAA,IAAI,KAAA,CAAM,SAAS,eAAA,EAAiB;AAChC,UAAA,KAAA,CAAM,WAAA,CAAY,IAAI,YAAY,CAAA;AAAA,QACtC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,qBAAA,EAAuB;AAC3C,UAAA,YAAA,CAAa,MAAM,eAAe,CAAA;AAAA,QACtC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,mBAAA,EAAqB;AACzC,UAAA,YAAA,CAAa,MAAM,cAAc,CAAA;AAAA,QACrC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG;AAC9B,UAAA,WAAA,CAAY,OAAA,CAAQ,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QAC1C,CAAA,MACK;AACD,UAAA,IAAI,IAAA,GAAO,WAAA;AACX,UAAA,IAAI,CAAA,GAAI,CAAA;AACR,UAAA,OAAO,CAAA,GAAI,KAAA,CAAM,IAAA,CAAK,MAAA,EAAQ;AAC1B,YAAA,MAAM,EAAA,GAAK,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA;AACvB,YAAA,MAAM,QAAA,GAAW,CAAA,KAAM,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,CAAA;AAC3C,YAAA,IAAI,CAAC,QAAA,EAAU;AACX,cAAA,IAAA,CAAK,EAAE,IAAI,IAAA,CAAK,EAAE,KAAK,EAAE,OAAA,EAAS,EAAC,EAAE;AAAA,YAQzC,CAAA,MACK;AACD,cAAA,IAAA,CAAK,EAAE,IAAI,IAAA,CAAK,EAAE,KAAK,EAAE,OAAA,EAAS,EAAC,EAAE;AACrC,cAAA,IAAA,CAAK,EAAE,CAAA,CAAE,OAAA,CAAQ,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,YACvC;AACA,YAAA,IAAA,GAAO,KAAK,EAAE,CAAA;AACd,YAAA,CAAA,EAAA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAA,EAvCqB,cAAA,CAAA;AAwCrB,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,OAAO,WAAA;AAAA,EACX;AAAA,EACA,OAAO,OAAO,KAAA,EAAO;AACjB,IAAA,IAAI,EAAE,iBAAiB,SAAA,CAAA,EAAW;AAC9B,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,CAAA;AAAA,IAC9C;AAAA,EACJ;AAAA,EACA,QAAA,GAAW;AACP,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EAChB;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,SAAA,CAAU,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,uBAAuB,CAAC,CAAA;AAAA,EACpE;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,KAAW,CAAA;AAAA,EAClC;AAAA,EACA,OAAA,CAAQ,MAAA,GAAS,CAAC,KAAA,KAAU,MAAM,OAAA,EAAS;AACvC,IAAA,MAAM,cAAc,EAAC;AACrB,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,MAAW,GAAA,IAAO,KAAK,MAAA,EAAQ;AAC3B,MAAA,IAAI,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG;AACrB,QAAA,MAAM,OAAA,GAAU,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA;AAC1B,QAAA,WAAA,CAAY,OAAO,CAAA,GAAI,WAAA,CAAY,OAAO,KAAK,EAAC;AAChD,QAAA,WAAA,CAAY,OAAO,CAAA,CAAE,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,MACzC,CAAA,MACK;AACD,QAAA,UAAA,CAAW,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,MAC/B;AAAA,IACJ;AACA,IAAA,OAAO,EAAE,YAAY,WAAA,EAAY;AAAA,EACrC;AAAA,EACA,IAAI,UAAA,GAAa;AACb,IAAA,OAAO,KAAK,OAAA,EAAQ;AAAA,EACxB;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,MAAA,KAAW;AAC1B,EAAA,MAAM,KAAA,GAAQ,IAAI,QAAA,CAAS,MAAM,CAAA;AACjC,EAAA,OAAO,KAAA;AACX,CAAA;;;AClIA,IAAM,QAAA,mBAAW,MAAA,CAAA,CAAC,KAAA,EAAO,IAAA,KAAS;AAC9B,EAAA,IAAI,OAAA;AACJ,EAAA,QAAQ,MAAM,IAAA;AAAM,IAChB,KAAK,YAAA,CAAa,YAAA;AACd,MAAA,IAAI,KAAA,CAAM,QAAA,KAAa,aAAA,CAAc,SAAA,EAAW;AAC5C,QAAA,OAAA,GAAU,UAAA;AAAA,MACd,CAAA,MACK;AACD,QAAA,OAAA,GAAU,CAAA,SAAA,EAAY,KAAA,CAAM,QAAQ,CAAA,WAAA,EAAc,MAAM,QAAQ,CAAA,CAAA;AAAA,MACpE;AACA,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,eAAA;AACd,MAAA,OAAA,GAAU,mCAAmC,IAAA,CAAK,SAAA,CAAU,MAAM,QAAA,EAAU,IAAA,CAAK,qBAAqB,CAAC,CAAA,CAAA;AACvG,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,iBAAA;AACd,MAAA,OAAA,GAAU,kCAAkC,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAC7E,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,aAAA;AACd,MAAA,OAAA,GAAU,CAAA,aAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,2BAAA;AACd,MAAA,OAAA,GAAU,CAAA,sCAAA,EAAyC,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AACjF,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,kBAAA;AACd,MAAA,OAAA,GAAU,CAAA,6BAAA,EAAgC,KAAK,UAAA,CAAW,KAAA,CAAM,OAAO,CAAC,CAAA,YAAA,EAAe,MAAM,QAAQ,CAAA,CAAA,CAAA;AACrG,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,iBAAA;AACd,MAAA,OAAA,GAAU,CAAA,0BAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,mBAAA;AACd,MAAA,OAAA,GAAU,CAAA,4BAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,YAAA;AACd,MAAA,OAAA,GAAU,CAAA,YAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,cAAA;AACd,MAAA,IAAI,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,EAAU;AACtC,QAAA,IAAI,UAAA,IAAc,MAAM,UAAA,EAAY;AAChC,UAAA,OAAA,GAAU,CAAA,6BAAA,EAAgC,KAAA,CAAM,UAAA,CAAW,QAAQ,CAAA,CAAA,CAAA;AACnE,UAAA,IAAI,OAAO,KAAA,CAAM,UAAA,CAAW,QAAA,KAAa,QAAA,EAAU;AAC/C,YAAA,OAAA,GAAU,CAAA,EAAG,OAAO,CAAA,mDAAA,EAAsD,KAAA,CAAM,WAAW,QAAQ,CAAA,CAAA;AAAA,UACvG;AAAA,QACJ,CAAA,MAAA,IACS,YAAA,IAAgB,KAAA,CAAM,UAAA,EAAY;AACvC,UAAA,OAAA,GAAU,CAAA,gCAAA,EAAmC,KAAA,CAAM,UAAA,CAAW,UAAU,CAAA,CAAA,CAAA;AAAA,QAC5E,CAAA,MAAA,IACS,UAAA,IAAc,KAAA,CAAM,UAAA,EAAY;AACrC,UAAA,OAAA,GAAU,CAAA,8BAAA,EAAiC,KAAA,CAAM,UAAA,CAAW,QAAQ,CAAA,CAAA,CAAA;AAAA,QACxE,CAAA,MACK;AACD,UAAA,IAAA,CAAK,WAAA,CAAY,MAAM,UAAU,CAAA;AAAA,QACrC;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,UAAA,KAAe,OAAA,EAAS;AACnC,QAAA,OAAA,GAAU,CAAA,QAAA,EAAW,MAAM,UAAU,CAAA,CAAA;AAAA,MACzC,CAAA,MACK;AACD,QAAA,OAAA,GAAU,SAAA;AAAA,MACd;AACA,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,SAAA;AACd,MAAA,IAAI,MAAM,IAAA,KAAS,OAAA;AACf,QAAA,OAAA,GAAU,CAAA,mBAAA,EAAsB,KAAA,CAAM,KAAA,GAAQ,SAAA,GAAY,KAAA,CAAM,YAAY,CAAA,QAAA,CAAA,GAAa,CAAA,SAAA,CAAW,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,WAAA,CAAA;AAAA,WAAA,IAChH,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,oBAAA,EAAuB,KAAA,CAAM,KAAA,GAAQ,SAAA,GAAY,KAAA,CAAM,YAAY,CAAA,QAAA,CAAA,GAAa,CAAA,IAAA,CAAM,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,aAAA,CAAA;AAAA,WAAA,IAC5G,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,eAAA,EAAkB,KAAA,CAAM,KAAA,GAAQ,CAAA,iBAAA,CAAA,GAAsB,KAAA,CAAM,YAAY,CAAA,yBAAA,CAAA,GAA8B,CAAA,aAAA,CAAe,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,WAAA,IAC1I,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,eAAA,EAAkB,KAAA,CAAM,KAAA,GAAQ,CAAA,iBAAA,CAAA,GAAsB,KAAA,CAAM,YAAY,CAAA,yBAAA,CAAA,GAA8B,CAAA,aAAA,CAAe,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,WAAA,IAC1I,MAAM,IAAA,KAAS,MAAA;AACpB,QAAA,OAAA,GAAU,CAAA,aAAA,EAAgB,KAAA,CAAM,KAAA,GAAQ,CAAA,iBAAA,CAAA,GAAsB,MAAM,SAAA,GAAY,CAAA,yBAAA,CAAA,GAA8B,CAAA,aAAA,CAAe,CAAA,EAAG,IAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,OAAO,CAAC,CAAC,CAAA,CAAA;AAAA;AAE/J,QAAA,OAAA,GAAU,eAAA;AACd,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,OAAA;AACd,MAAA,IAAI,MAAM,IAAA,KAAS,OAAA;AACf,QAAA,OAAA,GAAU,CAAA,mBAAA,EAAsB,KAAA,CAAM,KAAA,GAAQ,CAAA,OAAA,CAAA,GAAY,KAAA,CAAM,YAAY,CAAA,OAAA,CAAA,GAAY,CAAA,SAAA,CAAW,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,WAAA,CAAA;AAAA,WAAA,IAC/G,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,oBAAA,EAAuB,KAAA,CAAM,KAAA,GAAQ,CAAA,OAAA,CAAA,GAAY,KAAA,CAAM,YAAY,CAAA,OAAA,CAAA,GAAY,CAAA,KAAA,CAAO,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,aAAA,CAAA;AAAA,WAAA,IAC5G,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,eAAA,EAAkB,KAAA,CAAM,KAAA,GAAQ,CAAA,OAAA,CAAA,GAAY,KAAA,CAAM,YAAY,CAAA,qBAAA,CAAA,GAA0B,CAAA,SAAA,CAAW,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,WAAA,IACzH,MAAM,IAAA,KAAS,QAAA;AACpB,QAAA,OAAA,GAAU,CAAA,eAAA,EAAkB,KAAA,CAAM,KAAA,GAAQ,CAAA,OAAA,CAAA,GAAY,KAAA,CAAM,YAAY,CAAA,qBAAA,CAAA,GAA0B,CAAA,SAAA,CAAW,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,WAAA,IACzH,MAAM,IAAA,KAAS,MAAA;AACpB,QAAA,OAAA,GAAU,CAAA,aAAA,EAAgB,KAAA,CAAM,KAAA,GAAQ,CAAA,OAAA,CAAA,GAAY,MAAM,SAAA,GAAY,CAAA,wBAAA,CAAA,GAA6B,CAAA,YAAA,CAAc,CAAA,CAAA,EAAI,IAAI,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,OAAO,CAAC,CAAC,CAAA,CAAA;AAAA;AAEpJ,QAAA,OAAA,GAAU,eAAA;AACd,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,MAAA;AACd,MAAA,OAAA,GAAU,CAAA,aAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,0BAAA;AACd,MAAA,OAAA,GAAU,CAAA,wCAAA,CAAA;AACV,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,eAAA;AACd,MAAA,OAAA,GAAU,CAAA,6BAAA,EAAgC,MAAM,UAAU,CAAA,CAAA;AAC1D,MAAA;AAAA,IACJ,KAAK,YAAA,CAAa,UAAA;AACd,MAAA,OAAA,GAAU,uBAAA;AACV,MAAA;AAAA,IACJ;AACI,MAAA,OAAA,GAAU,IAAA,CAAK,YAAA;AACf,MAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA;AAE9B,EAAA,OAAO,EAAE,OAAA,EAAQ;AACrB,CAAA,EAzGiB,UAAA,CAAA;AA0GjB,IAAO,UAAA,GAAQ,QAAA;;;AC3Gf,IAAI,gBAAA,GAAmB,UAAA;AAEhB,SAAS,YAAY,GAAA,EAAK;AAC7B,EAAA,gBAAA,GAAmB,GAAA;AACvB;AAFgB,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAGT,SAAS,WAAA,GAAc;AAC1B,EAAA,OAAO,gBAAA;AACX;AAFgB,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;;;ACJT,IAAM,SAAA,2BAAa,MAAA,KAAW;AACjC,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,SAAA,EAAW,WAAU,GAAI,MAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,CAAC,GAAG,IAAA,EAAM,GAAI,SAAA,CAAU,IAAA,IAAQ,EAAG,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY;AAAA,IACd,GAAG,SAAA;AAAA,IACH,IAAA,EAAM;AAAA,GACV;AACA,EAAA,IAAI,SAAA,CAAU,YAAY,MAAA,EAAW;AACjC,IAAA,OAAO;AAAA,MACH,GAAG,SAAA;AAAA,MACH,IAAA,EAAM,QAAA;AAAA,MACN,SAAS,SAAA,CAAU;AAAA,KACvB;AAAA,EACJ;AACA,EAAA,IAAI,YAAA,GAAe,EAAA;AACnB,EAAA,MAAM,IAAA,GAAO,SAAA,CACR,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAA,CACjB,KAAA,EAAM,CACN,OAAA,EAAQ;AACb,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACpB,IAAA,YAAA,GAAe,IAAI,SAAA,EAAW,EAAE,MAAM,YAAA,EAAc,YAAA,EAAc,CAAA,CAAE,OAAA;AAAA,EACxE;AACA,EAAA,OAAO;AAAA,IACH,GAAG,SAAA;AAAA,IACH,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACb;AACJ,CAAA,EA3ByB,WAAA,CAAA;AA4BlB,IAAM,aAAa,EAAC;AACpB,SAAS,iBAAA,CAAkB,KAAK,SAAA,EAAW;AAC9C,EAAA,MAAM,cAAc,WAAA,EAAY;AAChC,EAAA,MAAM,QAAQ,SAAA,CAAU;AAAA,IACpB,SAAA;AAAA,IACA,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,SAAA,EAAW;AAAA,MACP,IAAI,MAAA,CAAO,kBAAA;AAAA;AAAA,MACX,GAAA,CAAI,cAAA;AAAA;AAAA,MACJ,WAAA;AAAA;AAAA,MACA,WAAA,KAAgB,aAAkB,MAAA,GAAY;AAAA;AAAA,MAChD,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC;AAAA,GACtB,CAAA;AACD,EAAA,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAChC;AAdgB,MAAA,CAAA,iBAAA,EAAA,mBAAA,CAAA;AAeT,IAAM,WAAA,GAAN,MAAM,YAAA,CAAY;AAAA,EA9CzB;AA8CyB,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrB,WAAA,GAAc;AACV,IAAA,IAAA,CAAK,KAAA,GAAQ,OAAA;AAAA,EACjB;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,IAAI,KAAK,KAAA,KAAU,OAAA;AACf,MAAA,IAAA,CAAK,KAAA,GAAQ,OAAA;AAAA,EACrB;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,IAAI,KAAK,KAAA,KAAU,SAAA;AACf,MAAA,IAAA,CAAK,KAAA,GAAQ,SAAA;AAAA,EACrB;AAAA,EACA,OAAO,UAAA,CAAW,MAAA,EAAQ,OAAA,EAAS;AAC/B,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,MAAW,KAAK,OAAA,EAAS;AACrB,MAAA,IAAI,EAAE,MAAA,KAAW,SAAA;AACb,QAAA,OAAO,OAAA;AACX,MAAA,IAAI,EAAE,MAAA,KAAW,OAAA;AACb,QAAA,MAAA,CAAO,KAAA,EAAM;AACjB,MAAA,UAAA,CAAW,IAAA,CAAK,EAAE,KAAK,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,UAAA,EAAW;AAAA,EACrD;AAAA,EACA,aAAa,gBAAA,CAAiB,MAAA,EAAQ,KAAA,EAAO;AACzC,IAAA,MAAM,YAAY,EAAC;AACnB,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA;AACvB,MAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA;AACzB,MAAA,SAAA,CAAU,IAAA,CAAK;AAAA,QACX,GAAA;AAAA,QACA;AAAA,OACH,CAAA;AAAA,IACL;AACA,IAAA,OAAO,YAAA,CAAY,eAAA,CAAgB,MAAA,EAAQ,SAAS,CAAA;AAAA,EACxD;AAAA,EACA,OAAO,eAAA,CAAgB,MAAA,EAAQ,KAAA,EAAO;AAClC,IAAA,MAAM,cAAc,EAAC;AACrB,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GAAI,IAAA;AACvB,MAAA,IAAI,IAAI,MAAA,KAAW,SAAA;AACf,QAAA,OAAO,OAAA;AACX,MAAA,IAAI,MAAM,MAAA,KAAW,SAAA;AACjB,QAAA,OAAO,OAAA;AACX,MAAA,IAAI,IAAI,MAAA,KAAW,OAAA;AACf,QAAA,MAAA,CAAO,KAAA,EAAM;AACjB,MAAA,IAAI,MAAM,MAAA,KAAW,OAAA;AACjB,QAAA,MAAA,CAAO,KAAA,EAAM;AACjB,MAAA,IAAI,GAAA,CAAI,UAAU,WAAA,KAAgB,OAAO,MAAM,KAAA,KAAU,WAAA,IAAe,KAAK,SAAA,CAAA,EAAY;AACrF,QAAA,WAAA,CAAY,GAAA,CAAI,KAAK,CAAA,GAAI,KAAA,CAAM,KAAA;AAAA,MACnC;AAAA,IACJ;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,WAAA,EAAY;AAAA,EACtD;AACJ,CAAA;AACO,IAAM,OAAA,GAAU,OAAO,MAAA,CAAO;AAAA,EACjC,MAAA,EAAQ;AACZ,CAAC,CAAA;AACM,IAAM,wBAAQ,MAAA,CAAA,CAAC,KAAA,MAAW,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAM,CAAA,EAArC,OAAA,CAAA;AACd,IAAM,qBAAK,MAAA,CAAA,CAAC,KAAA,MAAW,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAM,CAAA,EAArC,IAAA,CAAA;AACX,IAAM,SAAA,mBAAY,MAAA,CAAA,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,SAAA,EAApB,WAAA,CAAA;AAClB,IAAM,OAAA,mBAAU,MAAA,CAAA,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,OAAA,EAApB,SAAA,CAAA;AAChB,IAAM,OAAA,mBAAU,MAAA,CAAA,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,OAAA,EAApB,SAAA,CAAA;AAChB,IAAM,0BAAU,MAAA,CAAA,CAAC,CAAA,KAAM,OAAO,OAAA,KAAY,WAAA,IAAe,aAAa,OAAA,EAAtD,SAAA,CAAA;;;AC5GhB,IAAI,SAAA;AAAA,CACV,SAAUC,UAAAA,EAAW;AAClB,EAAAA,UAAAA,CAAU,QAAA,GAAW,CAAC,OAAA,KAAY,OAAO,OAAA,KAAY,QAAA,GAAW,EAAE,OAAA,EAAQ,GAAI,OAAA,IAAW,EAAC;AAE1F,EAAAA,UAAAA,CAAU,WAAW,CAAC,OAAA,KAAY,OAAO,OAAA,KAAY,QAAA,GAAW,UAAU,OAAA,EAAS,OAAA;AACvF,CAAA,EAAG,SAAA,KAAc,SAAA,GAAY,EAAC,CAAE,CAAA;;;ACAhC,IAAM,qBAAN,MAAyB;AAAA,EALzB;AAKyB,IAAA,MAAA,CAAA,IAAA,EAAA,oBAAA,CAAA;AAAA;AAAA,EACrB,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,GAAA,EAAK;AAClC,IAAA,IAAA,CAAK,cAAc,EAAC;AACpB,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,KAAA;AACZ,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,GAAA;AAAA,EAChB;AAAA,EACA,IAAI,IAAA,GAAO;AACP,IAAA,IAAI,CAAC,IAAA,CAAK,WAAA,CAAY,MAAA,EAAQ;AAC1B,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,QAAA,IAAA,CAAK,YAAY,IAAA,CAAK,GAAG,KAAK,KAAA,EAAO,GAAG,KAAK,IAAI,CAAA;AAAA,MACrD,CAAA,MACK;AACD,QAAA,IAAA,CAAK,YAAY,IAAA,CAAK,GAAG,IAAA,CAAK,KAAA,EAAO,KAAK,IAAI,CAAA;AAAA,MAClD;AAAA,IACJ;AACA,IAAA,OAAO,IAAA,CAAK,WAAA;AAAA,EAChB;AACJ,CAAA;AACA,IAAM,YAAA,mBAAe,MAAA,CAAA,CAAC,GAAA,EAAK,MAAA,KAAW;AAClC,EAAA,IAAI,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjB,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,EAC/C,CAAA,MACK;AACD,IAAA,IAAI,CAAC,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ;AAC3B,MAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,IAC/D;AACA,IAAA,OAAO;AAAA,MACH,OAAA,EAAS,KAAA;AAAA,MACT,IAAI,KAAA,GAAQ;AACR,QAAA,IAAI,IAAA,CAAK,MAAA;AACL,UAAA,OAAO,IAAA,CAAK,MAAA;AAChB,QAAA,MAAM,KAAA,GAAQ,IAAI,QAAA,CAAS,GAAA,CAAI,OAAO,MAAM,CAAA;AAC5C,QAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,QAAA,OAAO,IAAA,CAAK,MAAA;AAAA,MAChB;AAAA,KACJ;AAAA,EACJ;AACJ,CAAA,EAnBqB,cAAA,CAAA;AAoBrB,SAAS,oBAAoB,MAAA,EAAQ;AACjC,EAAA,IAAI,CAAC,MAAA;AACD,IAAA,OAAO,EAAC;AACZ,EAAA,MAAM,EAAE,QAAA,EAAAC,SAAAA,EAAU,kBAAA,EAAoB,cAAA,EAAgB,aAAY,GAAI,MAAA;AACtE,EAAA,IAAIA,SAAAA,KAAa,sBAAsB,cAAA,CAAA,EAAiB;AACpD,IAAA,MAAM,IAAI,MAAM,CAAA,wFAAA,CAA0F,CAAA;AAAA,EAC9G;AACA,EAAA,IAAIA,SAAAA;AACA,IAAA,OAAO,EAAE,QAAA,EAAUA,SAAAA,EAAU,WAAA,EAAY;AAC7C,EAAA,MAAM,SAAA,mBAAY,MAAA,CAAA,CAAC,GAAA,EAAK,GAAA,KAAQ;AAC5B,IAAA,MAAM,EAAE,SAAQ,GAAI,MAAA;AACpB,IAAA,IAAI,GAAA,CAAI,SAAS,oBAAA,EAAsB;AACnC,MAAA,OAAO,EAAE,OAAA,EAAS,OAAA,IAAW,GAAA,CAAI,YAAA,EAAa;AAAA,IAClD;AACA,IAAA,IAAI,OAAO,GAAA,CAAI,IAAA,KAAS,WAAA,EAAa;AACjC,MAAA,OAAO,EAAE,OAAA,EAAS,OAAA,IAAW,cAAA,IAAkB,IAAI,YAAA,EAAa;AAAA,IACpE;AACA,IAAA,IAAI,IAAI,IAAA,KAAS,cAAA;AACb,MAAA,OAAO,EAAE,OAAA,EAAS,GAAA,CAAI,YAAA,EAAa;AACvC,IAAA,OAAO,EAAE,OAAA,EAAS,OAAA,IAAW,kBAAA,IAAsB,IAAI,YAAA,EAAa;AAAA,EACxE,CAAA,EAXkB,WAAA,CAAA;AAYlB,EAAA,OAAO,EAAE,QAAA,EAAU,SAAA,EAAW,WAAA,EAAY;AAC9C;AAtBS,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;AAuBF,IAAM,UAAN,MAAc;AAAA,EApErB;AAoEqB,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjB,IAAI,WAAA,GAAc;AACd,IAAA,OAAO,KAAK,IAAA,CAAK,WAAA;AAAA,EACrB;AAAA,EACA,SAAS,KAAA,EAAO;AACZ,IAAA,OAAO,aAAA,CAAc,MAAM,IAAI,CAAA;AAAA,EACnC;AAAA,EACA,eAAA,CAAgB,OAAO,GAAA,EAAK;AACxB,IAAA,OAAQ,GAAA,IAAO;AAAA,MACX,MAAA,EAAQ,MAAM,MAAA,CAAO,MAAA;AAAA,MACrB,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,UAAA,EAAY,aAAA,CAAc,KAAA,CAAM,IAAI,CAAA;AAAA,MACpC,cAAA,EAAgB,KAAK,IAAA,CAAK,QAAA;AAAA,MAC1B,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,QAAQ,KAAA,CAAM;AAAA,KAClB;AAAA,EACJ;AAAA,EACA,oBAAoB,KAAA,EAAO;AACvB,IAAA,OAAO;AAAA,MACH,MAAA,EAAQ,IAAI,WAAA,EAAY;AAAA,MACxB,GAAA,EAAK;AAAA,QACD,MAAA,EAAQ,MAAM,MAAA,CAAO,MAAA;AAAA,QACrB,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,UAAA,EAAY,aAAA,CAAc,KAAA,CAAM,IAAI,CAAA;AAAA,QACpC,cAAA,EAAgB,KAAK,IAAA,CAAK,QAAA;AAAA,QAC1B,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,QAAQ,KAAA,CAAM;AAAA;AAClB,KACJ;AAAA,EACJ;AAAA,EACA,WAAW,KAAA,EAAO;AACd,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA;AAChC,IAAA,IAAI,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjB,MAAA,MAAM,IAAI,MAAM,wCAAwC,CAAA;AAAA,IAC5D;AACA,IAAA,OAAO,MAAA;AAAA,EACX;AAAA,EACA,YAAY,KAAA,EAAO;AACf,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA;AAChC,IAAA,OAAO,OAAA,CAAQ,QAAQ,MAAM,CAAA;AAAA,EACjC;AAAA,EACA,KAAA,CAAM,MAAM,MAAA,EAAQ;AAChB,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,MAAM,CAAA;AAC1C,IAAA,IAAI,MAAA,CAAO,OAAA;AACP,MAAA,OAAO,MAAA,CAAO,IAAA;AAClB,IAAA,MAAM,MAAA,CAAO,KAAA;AAAA,EACjB;AAAA,EACA,SAAA,CAAU,MAAM,MAAA,EAAQ;AACpB,IAAA,MAAM,GAAA,GAAM;AAAA,MACR,MAAA,EAAQ;AAAA,QACJ,QAAQ,EAAC;AAAA,QACT,KAAA,EAAO,QAAQ,KAAA,IAAS,KAAA;AAAA,QACxB,oBAAoB,MAAA,EAAQ;AAAA,OAChC;AAAA,MACA,IAAA,EAAM,MAAA,EAAQ,IAAA,IAAQ,EAAC;AAAA,MACvB,cAAA,EAAgB,KAAK,IAAA,CAAK,QAAA;AAAA,MAC1B,MAAA,EAAQ,IAAA;AAAA,MACR,IAAA;AAAA,MACA,UAAA,EAAY,cAAc,IAAI;AAAA,KAClC;AACA,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,MAAM,GAAA,CAAI,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,CAAA;AACpE,IAAA,OAAO,YAAA,CAAa,KAAK,MAAM,CAAA;AAAA,EACnC;AAAA,EACA,YAAY,IAAA,EAAM;AACd,IAAA,MAAM,GAAA,GAAM;AAAA,MACR,MAAA,EAAQ;AAAA,QACJ,QAAQ,EAAC;AAAA,QACT,KAAA,EAAO,CAAC,CAAC,IAAA,CAAK,WAAW,CAAA,CAAE;AAAA,OAC/B;AAAA,MACA,MAAM,EAAC;AAAA,MACP,cAAA,EAAgB,KAAK,IAAA,CAAK,QAAA;AAAA,MAC1B,MAAA,EAAQ,IAAA;AAAA,MACR,IAAA;AAAA,MACA,UAAA,EAAY,cAAc,IAAI;AAAA,KAClC;AACA,IAAA,IAAI,CAAC,IAAA,CAAK,WAAW,CAAA,CAAE,KAAA,EAAO;AAC1B,MAAA,IAAI;AACA,QAAA,MAAM,MAAA,GAAS,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,MAAM,EAAC,EAAG,MAAA,EAAQ,GAAA,EAAK,CAAA;AAC9D,QAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,GACf;AAAA,UACE,OAAO,MAAA,CAAO;AAAA,SAClB,GACE;AAAA,UACE,MAAA,EAAQ,IAAI,MAAA,CAAO;AAAA,SACvB;AAAA,MACR,SACO,GAAA,EAAK;AACR,QAAA,IAAI,KAAK,OAAA,EAAS,WAAA,EAAY,EAAG,QAAA,CAAS,aAAa,CAAA,EAAG;AACtD,UAAA,IAAA,CAAK,WAAW,EAAE,KAAA,GAAQ,IAAA;AAAA,QAC9B;AACA,QAAA,GAAA,CAAI,MAAA,GAAS;AAAA,UACT,QAAQ,EAAC;AAAA,UACT,KAAA,EAAO;AAAA,SACX;AAAA,MACJ;AAAA,IACJ;AACA,IAAA,OAAO,KAAK,WAAA,CAAY,EAAE,IAAA,EAAM,IAAA,EAAM,EAAC,EAAG,MAAA,EAAQ,GAAA,EAAK,EAAE,IAAA,CAAK,CAAC,MAAA,KAAW,OAAA,CAAQ,MAAM,CAAA,GAClF;AAAA,MACE,OAAO,MAAA,CAAO;AAAA,KAClB,GACE;AAAA,MACE,MAAA,EAAQ,IAAI,MAAA,CAAO;AAAA,KACtB,CAAA;AAAA,EACT;AAAA,EACA,MAAM,UAAA,CAAW,IAAA,EAAM,MAAA,EAAQ;AAC3B,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,cAAA,CAAe,MAAM,MAAM,CAAA;AACrD,IAAA,IAAI,MAAA,CAAO,OAAA;AACP,MAAA,OAAO,MAAA,CAAO,IAAA;AAClB,IAAA,MAAM,MAAA,CAAO,KAAA;AAAA,EACjB;AAAA,EACA,MAAM,cAAA,CAAe,IAAA,EAAM,MAAA,EAAQ;AAC/B,IAAA,MAAM,GAAA,GAAM;AAAA,MACR,MAAA,EAAQ;AAAA,QACJ,QAAQ,EAAC;AAAA,QACT,oBAAoB,MAAA,EAAQ,QAAA;AAAA,QAC5B,KAAA,EAAO;AAAA,OACX;AAAA,MACA,IAAA,EAAM,MAAA,EAAQ,IAAA,IAAQ,EAAC;AAAA,MACvB,cAAA,EAAgB,KAAK,IAAA,CAAK,QAAA;AAAA,MAC1B,MAAA,EAAQ,IAAA;AAAA,MACR,IAAA;AAAA,MACA,UAAA,EAAY,cAAc,IAAI;AAAA,KAClC;AACA,IAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,MAAA,CAAO,EAAE,IAAA,EAAM,MAAM,GAAA,CAAI,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,CAAA;AAC1E,IAAA,MAAM,MAAA,GAAS,OAAO,OAAA,CAAQ,gBAAgB,IAAI,gBAAA,GAAmB,OAAA,CAAQ,QAAQ,gBAAgB,CAAA,CAAA;AACrG,IAAA,OAAO,YAAA,CAAa,KAAK,MAAM,CAAA;AAAA,EACnC;AAAA,EACA,MAAA,CAAO,OAAO,OAAA,EAAS;AACnB,IAAA,MAAM,kBAAA,2BAAsB,GAAA,KAAQ;AAChC,MAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAO,YAAY,WAAA,EAAa;AAC/D,QAAA,OAAO,EAAE,OAAA,EAAQ;AAAA,MACrB,CAAA,MAAA,IACS,OAAO,OAAA,KAAY,UAAA,EAAY;AACpC,QAAA,OAAO,QAAQ,GAAG,CAAA;AAAA,MACtB,CAAA,MACK;AACD,QAAA,OAAO,OAAA;AAAA,MACX;AAAA,IACJ,CAAA,EAV2B,oBAAA,CAAA;AAW3B,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,CAAC,GAAA,EAAK,GAAA,KAAQ;AAClC,MAAA,MAAM,MAAA,GAAS,MAAM,GAAG,CAAA;AACxB,MAAA,MAAM,QAAA,mBAAW,MAAA,CAAA,MAAM,GAAA,CAAI,QAAA,CAAS;AAAA,QAChC,MAAM,YAAA,CAAa,MAAA;AAAA,QACnB,GAAG,mBAAmB,GAAG;AAAA,OAC5B,CAAA,EAHgB,UAAA,CAAA;AAIjB,MAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,MAAA,YAAkB,OAAA,EAAS;AAC7D,QAAA,OAAO,MAAA,CAAO,IAAA,CAAK,CAAC,IAAA,KAAS;AACzB,UAAA,IAAI,CAAC,IAAA,EAAM;AACP,YAAA,QAAA,EAAS;AACT,YAAA,OAAO,KAAA;AAAA,UACX,CAAA,MACK;AACD,YAAA,OAAO,IAAA;AAAA,UACX;AAAA,QACJ,CAAC,CAAA;AAAA,MACL;AACA,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,QAAA,EAAS;AACT,QAAA,OAAO,KAAA;AAAA,MACX,CAAA,MACK;AACD,QAAA,OAAO,IAAA;AAAA,MACX;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EACA,UAAA,CAAW,OAAO,cAAA,EAAgB;AAC9B,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,CAAC,GAAA,EAAK,GAAA,KAAQ;AAClC,MAAA,IAAI,CAAC,KAAA,CAAM,GAAG,CAAA,EAAG;AACb,QAAA,GAAA,CAAI,QAAA,CAAS,OAAO,cAAA,KAAmB,UAAA,GAAa,eAAe,GAAA,EAAK,GAAG,IAAI,cAAc,CAAA;AAC7F,QAAA,OAAO,KAAA;AAAA,MACX,CAAA,MACK;AACD,QAAA,OAAO,IAAA;AAAA,MACX;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EACA,YAAY,UAAA,EAAY;AACpB,IAAA,OAAO,IAAI,UAAA,CAAW;AAAA,MAClB,MAAA,EAAQ,IAAA;AAAA,MACR,UAAU,qBAAA,CAAsB,UAAA;AAAA,MAChC,MAAA,EAAQ,EAAE,IAAA,EAAM,YAAA,EAAc,UAAA;AAAW,KAC5C,CAAA;AAAA,EACL;AAAA,EACA,YAAY,UAAA,EAAY;AACpB,IAAA,OAAO,IAAA,CAAK,YAAY,UAAU,CAAA;AAAA,EACtC;AAAA,EACA,YAAY,GAAA,EAAK;AAEb,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,cAAA;AAChB,IAAA,IAAA,CAAK,IAAA,GAAO,GAAA;AACZ,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACjC,IAAA,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACzC,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC3C,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AACnD,IAAA,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC3C,IAAA,IAAA,CAAK,WAAA,GAAc,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAC7C,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AACvC,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AACvC,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACjC,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,EAAA,GAAK,IAAA,CAAK,EAAA,CAAG,IAAA,CAAK,IAAI,CAAA;AAC3B,IAAA,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA;AAC7B,IAAA,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACzC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACjC,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACjC,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AACvC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAC/B,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AACvC,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC3C,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAC3C,IAAA,IAAA,CAAK,WAAW,CAAA,GAAI;AAAA,MAChB,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ,KAAA;AAAA,MACR,0BAAU,MAAA,CAAA,CAAC,IAAA,KAAS,KAAK,WAAW,CAAA,CAAE,IAAI,CAAA,EAAhC,UAAA;AAAA,KACd;AAAA,EACJ;AAAA,EACA,QAAA,GAAW;AACP,IAAA,OAAO,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,IAAA,CAAK,IAAI,CAAA;AAAA,EAC7C;AAAA,EACA,QAAA,GAAW;AACP,IAAA,OAAO,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,IAAA,CAAK,IAAI,CAAA;AAAA,EAC7C;AAAA,EACA,OAAA,GAAU;AACN,IAAA,OAAO,IAAA,CAAK,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EACpC;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,OAAO,QAAA,CAAS,OAAO,IAAI,CAAA;AAAA,EAC/B;AAAA,EACA,OAAA,GAAU;AACN,IAAA,OAAO,UAAA,CAAW,MAAA,CAAO,IAAA,EAAM,IAAA,CAAK,IAAI,CAAA;AAAA,EAC5C;AAAA,EACA,GAAG,MAAA,EAAQ;AACP,IAAA,OAAO,SAAS,MAAA,CAAO,CAAC,MAAM,MAAM,CAAA,EAAG,KAAK,IAAI,CAAA;AAAA,EACpD;AAAA,EACA,IAAI,QAAA,EAAU;AACV,IAAA,OAAO,eAAA,CAAgB,MAAA,CAAO,IAAA,EAAM,QAAA,EAAU,KAAK,IAAI,CAAA;AAAA,EAC3D;AAAA,EACA,UAAU,SAAA,EAAW;AACjB,IAAA,OAAO,IAAI,UAAA,CAAW;AAAA,MAClB,GAAG,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MAChC,MAAA,EAAQ,IAAA;AAAA,MACR,UAAU,qBAAA,CAAsB,UAAA;AAAA,MAChC,MAAA,EAAQ,EAAE,IAAA,EAAM,WAAA,EAAa,SAAA;AAAU,KAC1C,CAAA;AAAA,EACL;AAAA,EACA,QAAQ,GAAA,EAAK;AACT,IAAA,MAAM,gBAAA,GAAmB,OAAO,GAAA,KAAQ,UAAA,GAAa,MAAM,MAAM,GAAA;AACjE,IAAA,OAAO,IAAI,UAAA,CAAW;AAAA,MAClB,GAAG,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MAChC,SAAA,EAAW,IAAA;AAAA,MACX,YAAA,EAAc,gBAAA;AAAA,MACd,UAAU,qBAAA,CAAsB;AAAA,KACnC,CAAA;AAAA,EACL;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,OAAO,IAAI,UAAA,CAAW;AAAA,MAClB,UAAU,qBAAA,CAAsB,UAAA;AAAA,MAChC,IAAA,EAAM,IAAA;AAAA,MACN,GAAG,mBAAA,CAAoB,IAAA,CAAK,IAAI;AAAA,KACnC,CAAA;AAAA,EACL;AAAA,EACA,MAAM,GAAA,EAAK;AACP,IAAA,MAAM,cAAA,GAAiB,OAAO,GAAA,KAAQ,UAAA,GAAa,MAAM,MAAM,GAAA;AAC/D,IAAA,OAAO,IAAI,QAAA,CAAS;AAAA,MAChB,GAAG,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MAChC,SAAA,EAAW,IAAA;AAAA,MACX,UAAA,EAAY,cAAA;AAAA,MACZ,UAAU,qBAAA,CAAsB;AAAA,KACnC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,WAAA,EAAa;AAClB,IAAA,MAAM,OAAO,IAAA,CAAK,WAAA;AAClB,IAAA,OAAO,IAAI,IAAA,CAAK;AAAA,MACZ,GAAG,IAAA,CAAK,IAAA;AAAA,MACR;AAAA,KACH,CAAA;AAAA,EACL;AAAA,EACA,KAAK,MAAA,EAAQ;AACT,IAAA,OAAO,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAAA,EAC1C;AAAA,EACA,QAAA,GAAW;AACP,IAAA,OAAO,WAAA,CAAY,OAAO,IAAI,CAAA;AAAA,EAClC;AAAA,EACA,UAAA,GAAa;AACT,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,MAAS,CAAA,CAAE,OAAA;AAAA,EACrC;AAAA,EACA,UAAA,GAAa;AACT,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,CAAE,OAAA;AAAA,EAChC;AACJ,CAAA;AACA,IAAM,SAAA,GAAY,gBAAA;AAClB,IAAM,UAAA,GAAa,aAAA;AACnB,IAAM,SAAA,GAAY,2BAAA;AAGlB,IAAM,SAAA,GAAY,wFAAA;AAClB,IAAM,WAAA,GAAc,mBAAA;AACpB,IAAM,QAAA,GAAW,kDAAA;AACjB,IAAM,aAAA,GAAgB,0SAAA;AAatB,IAAM,UAAA,GAAa,oFAAA;AAInB,IAAM,WAAA,GAAc,CAAA,oDAAA,CAAA;AACpB,IAAI,UAAA;AAEJ,IAAM,SAAA,GAAY,qHAAA;AAClB,IAAM,aAAA,GAAgB,0IAAA;AAGtB,IAAM,SAAA,GAAY,upBAAA;AAClB,IAAM,aAAA,GAAgB,yrBAAA;AAEtB,IAAM,WAAA,GAAc,kEAAA;AAEpB,IAAM,cAAA,GAAiB,wEAAA;AAMvB,IAAM,eAAA,GAAkB,CAAA,iMAAA,CAAA;AACxB,IAAM,SAAA,GAAY,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,eAAe,CAAA,CAAA,CAAG,CAAA;AACnD,SAAS,gBAAgB,IAAA,EAAM;AAC3B,EAAA,IAAI,kBAAA,GAAqB,CAAA,QAAA,CAAA;AACzB,EAAA,IAAI,KAAK,SAAA,EAAW;AAChB,IAAA,kBAAA,GAAqB,CAAA,EAAG,kBAAkB,CAAA,OAAA,EAAU,IAAA,CAAK,SAAS,CAAA,CAAA,CAAA;AAAA,EACtE,CAAA,MAAA,IACS,IAAA,CAAK,SAAA,IAAa,IAAA,EAAM;AAC7B,IAAA,kBAAA,GAAqB,GAAG,kBAAkB,CAAA,UAAA,CAAA;AAAA,EAC9C;AACA,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,SAAA,GAAY,GAAA,GAAM,GAAA;AACjD,EAAA,OAAO,CAAA,2BAAA,EAA8B,kBAAkB,CAAA,CAAA,EAAI,iBAAiB,CAAA,CAAA;AAChF;AAVS,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAWT,SAAS,UAAU,IAAA,EAAM;AACrB,EAAA,OAAO,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,eAAA,CAAgB,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;AAClD;AAFS,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAIF,SAAS,cAAc,IAAA,EAAM;AAChC,EAAA,IAAI,QAAQ,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,eAAA,CAAgB,IAAI,CAAC,CAAA,CAAA;AACvD,EAAA,MAAM,OAAO,EAAC;AACd,EAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,CAAA,EAAA,CAAA,GAAO,CAAA,CAAA,CAAG,CAAA;AACjC,EAAA,IAAI,IAAA,CAAK,MAAA;AACL,IAAA,IAAA,CAAK,KAAK,CAAA,oBAAA,CAAsB,CAAA;AACpC,EAAA,KAAA,GAAQ,GAAG,KAAK,CAAA,CAAA,EAAI,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAClC,EAAA,OAAO,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAA;AAClC;AARgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAShB,SAAS,SAAA,CAAU,IAAI,OAAA,EAAS;AAC5B,EAAA,IAAA,CAAK,YAAY,IAAA,IAAQ,CAAC,YAAY,SAAA,CAAU,IAAA,CAAK,EAAE,CAAA,EAAG;AACtD,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,IAAA,CAAK,YAAY,IAAA,IAAQ,CAAC,YAAY,SAAA,CAAU,IAAA,CAAK,EAAE,CAAA,EAAG;AACtD,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,OAAO,KAAA;AACX;AARS,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAST,SAAS,UAAA,CAAW,KAAK,GAAA,EAAK;AAC1B,EAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAClB,IAAA,OAAO,KAAA;AACX,EAAA,IAAI;AACA,IAAA,MAAM,CAAC,MAAM,CAAA,GAAI,GAAA,CAAI,MAAM,GAAG,CAAA;AAC9B,IAAA,IAAI,CAAC,MAAA;AACD,MAAA,OAAO,KAAA;AAEX,IAAA,MAAM,SAAS,MAAA,CACV,OAAA,CAAQ,MAAM,GAAG,CAAA,CACjB,QAAQ,IAAA,EAAM,GAAG,CAAA,CACjB,MAAA,CAAO,OAAO,MAAA,GAAA,CAAW,CAAA,GAAK,OAAO,MAAA,GAAS,CAAA,IAAM,GAAI,GAAG,CAAA;AAChE,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAM,CAAC,CAAA;AACvC,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,IAAA;AAC3C,MAAA,OAAO,KAAA;AACX,IAAA,IAAI,KAAA,IAAS,OAAA,IAAW,OAAA,EAAS,GAAA,KAAQ,KAAA;AACrC,MAAA,OAAO,KAAA;AACX,IAAA,IAAI,CAAC,OAAA,CAAQ,GAAA;AACT,MAAA,OAAO,KAAA;AACX,IAAA,IAAI,GAAA,IAAO,QAAQ,GAAA,KAAQ,GAAA;AACvB,MAAA,OAAO,KAAA;AACX,IAAA,OAAO,IAAA;AAAA,EACX,CAAA,CAAA,MACM;AACF,IAAA,OAAO,KAAA;AAAA,EACX;AACJ;AA1BS,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AA2BT,SAAS,WAAA,CAAY,IAAI,OAAA,EAAS;AAC9B,EAAA,IAAA,CAAK,YAAY,IAAA,IAAQ,CAAC,YAAY,aAAA,CAAc,IAAA,CAAK,EAAE,CAAA,EAAG;AAC1D,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,IAAA,CAAK,YAAY,IAAA,IAAQ,CAAC,YAAY,aAAA,CAAc,IAAA,CAAK,EAAE,CAAA,EAAG;AAC1D,IAAA,OAAO,IAAA;AAAA,EACX;AACA,EAAA,OAAO,KAAA;AACX;AARS,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AASF,IAAM,SAAA,GAAN,MAAM,UAAA,SAAkB,OAAA,CAAQ;AAAA,EA5dvC;AA4duC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,IAAA,CAAK,KAAK,MAAA,EAAQ;AAClB,MAAA,KAAA,CAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAAA,IAClC;AACA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACrC,MAAA,MAAMC,IAAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkBA,IAAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAUA,IAAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,MAAA,GAAS,IAAI,WAAA,EAAY;AAC/B,IAAA,IAAI,GAAA,GAAM,MAAA;AACV,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAClC,MAAA,IAAI,KAAA,CAAM,SAAS,KAAA,EAAO;AACtB,QAAA,IAAI,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,KAAA,CAAM,KAAA,EAAO;AACjC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,SAAA;AAAA,YACnB,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,SAAA,EAAW,IAAA;AAAA,YACX,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,IAAI,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,KAAA,CAAM,KAAA,EAAO;AACjC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,OAAA;AAAA,YACnB,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,SAAA,EAAW,IAAA;AAAA,YACX,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAC9B,QAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,KAAA,CAAM,KAAA;AACzC,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,MAAA,GAAS,KAAA,CAAM,KAAA;AAC3C,QAAA,IAAI,UAAU,QAAA,EAAU;AACpB,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,IAAI,MAAA,EAAQ;AACR,YAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,cACnB,MAAM,YAAA,CAAa,OAAA;AAAA,cACnB,SAAS,KAAA,CAAM,KAAA;AAAA,cACf,IAAA,EAAM,QAAA;AAAA,cACN,SAAA,EAAW,IAAA;AAAA,cACX,KAAA,EAAO,IAAA;AAAA,cACP,SAAS,KAAA,CAAM;AAAA,aAClB,CAAA;AAAA,UACL,WACS,QAAA,EAAU;AACf,YAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,cACnB,MAAM,YAAA,CAAa,SAAA;AAAA,cACnB,SAAS,KAAA,CAAM,KAAA;AAAA,cACf,IAAA,EAAM,QAAA;AAAA,cACN,SAAA,EAAW,IAAA;AAAA,cACX,KAAA,EAAO,IAAA;AAAA,cACP,SAAS,KAAA,CAAM;AAAA,aAClB,CAAA;AAAA,UACL;AACA,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AAC7B,QAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,OAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AAC7B,QAAA,IAAI,CAAC,UAAA,EAAY;AACb,UAAA,UAAA,GAAa,IAAI,MAAA,CAAO,WAAA,EAAa,GAAG,CAAA;AAAA,QAC5C;AACA,QAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,OAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,IAAI,CAAC,SAAA,CAAU,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC7B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC/B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,QAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,IAAI,CAAC,SAAA,CAAU,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC7B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AAC7B,QAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,OAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,IAAI,CAAC,SAAA,CAAU,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC7B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,IAAI;AACA,UAAA,IAAI,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA,QACtB,CAAA,CAAA,MACM;AACF,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,KAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AAC7B,QAAA,KAAA,CAAM,MAAM,SAAA,GAAY,CAAA;AACxB,QAAA,MAAM,UAAA,GAAa,KAAA,CAAM,KAAA,CAAM,IAAA,CAAK,MAAM,IAAI,CAAA;AAC9C,QAAA,IAAI,CAAC,UAAA,EAAY;AACb,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,OAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,KAAA,CAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,IAAA,EAAK;AAAA,MACjC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,UAAA,EAAY;AAChC,QAAA,IAAI,CAAC,MAAM,IAAA,CAAK,QAAA,CAAS,MAAM,KAAA,EAAO,KAAA,CAAM,QAAQ,CAAA,EAAG;AACnD,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,YAAY,EAAE,QAAA,EAAU,MAAM,KAAA,EAAO,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA,YAC9D,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,aAAA,EAAe;AACnC,QAAA,KAAA,CAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,WAAA,EAAY;AAAA,MACxC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,aAAA,EAAe;AACnC,QAAA,KAAA,CAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,WAAA,EAAY;AAAA,MACxC,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,YAAA,EAAc;AAClC,QAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,KAAK,CAAA,EAAG;AACrC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,UAAA,EAAY,EAAE,UAAA,EAAY,KAAA,CAAM,KAAA,EAAM;AAAA,YACtC,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,UAAA,EAAY;AAChC,QAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,KAAK,CAAA,EAAG;AACnC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,UAAA,EAAY,EAAE,QAAA,EAAU,KAAA,CAAM,KAAA,EAAM;AAAA,YACpC,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,UAAA,EAAY;AAChC,QAAA,MAAM,KAAA,GAAQ,cAAc,KAAK,CAAA;AACjC,QAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AACzB,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,UAAA,EAAY,UAAA;AAAA,YACZ,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,MAAM,KAAA,GAAQ,SAAA;AACd,QAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AACzB,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,MAAM,KAAA,GAAQ,UAAU,KAAK,CAAA;AAC7B,QAAA,IAAI,CAAC,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AACzB,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,UAAA,EAAY;AAChC,QAAA,IAAI,CAAC,aAAA,CAAc,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AACjC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,UAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,IAAA,EAAM;AAC1B,QAAA,IAAI,CAAC,SAAA,CAAU,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,OAAO,CAAA,EAAG;AACvC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,IAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,IAAI,CAAC,UAAA,CAAW,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,GAAG,CAAA,EAAG;AACpC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,KAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAC5B,QAAA,IAAI,CAAC,WAAA,CAAY,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,OAAO,CAAA,EAAG;AACzC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,MAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAC/B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,QAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,WAAA,EAAa;AACjC,QAAA,IAAI,CAAC,cAAA,CAAe,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAClC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,UAAA,EAAY,WAAA;AAAA,YACZ,MAAM,YAAA,CAAa,cAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MACK;AACD,QAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,MAC1B;AAAA,IACJ;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EACrD;AAAA,EACA,MAAA,CAAO,KAAA,EAAO,UAAA,EAAY,OAAA,EAAS;AAC/B,IAAA,OAAO,KAAK,UAAA,CAAW,CAAC,SAAS,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,EAAG;AAAA,MAC/C,UAAA;AAAA,MACA,MAAM,YAAA,CAAa,cAAA;AAAA,MACnB,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,UAAU,KAAA,EAAO;AACb,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,QAAQ,CAAC,GAAG,IAAA,CAAK,IAAA,CAAK,QAAQ,KAAK;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,MAAM,OAAA,EAAS;AACX,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,OAAA,EAAS,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC3E;AAAA,EACA,IAAI,OAAA,EAAS;AACT,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,KAAA,EAAO,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EACzE;AAAA,EACA,MAAM,OAAA,EAAS;AACX,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,OAAA,EAAS,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC3E;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC1E;AAAA,EACA,OAAO,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,QAAA,EAAU,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC5E;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC1E;AAAA,EACA,MAAM,OAAA,EAAS;AACX,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,OAAA,EAAS,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC3E;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC1E;AAAA,EACA,OAAO,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,QAAA,EAAU,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC5E;AAAA,EACA,UAAU,OAAA,EAAS;AAEf,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,WAAA;AAAA,MACN,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,IAAI,OAAA,EAAS;AACT,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,KAAA,EAAO,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EACzE;AAAA,EACA,GAAG,OAAA,EAAS;AACR,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EACxE;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC1E;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC7B,MAAA,OAAO,KAAK,SAAA,CAAU;AAAA,QAClB,IAAA,EAAM,UAAA;AAAA,QACN,SAAA,EAAW,IAAA;AAAA,QACX,MAAA,EAAQ,KAAA;AAAA,QACR,KAAA,EAAO,KAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACZ,CAAA;AAAA,IACL;AACA,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,UAAA;AAAA,MACN,WAAW,OAAO,OAAA,EAAS,SAAA,KAAc,WAAA,GAAc,OAAO,OAAA,EAAS,SAAA;AAAA,MACvE,MAAA,EAAQ,SAAS,MAAA,IAAU,KAAA;AAAA,MAC3B,KAAA,EAAO,SAAS,KAAA,IAAS,KAAA;AAAA,MACzB,GAAG,SAAA,CAAU,QAAA,CAAS,OAAA,EAAS,OAAO;AAAA,KACzC,CAAA;AAAA,EACL;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,KAAK,SAAA,CAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAS,CAAA;AAAA,EACnD;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC7B,MAAA,OAAO,KAAK,SAAA,CAAU;AAAA,QAClB,IAAA,EAAM,MAAA;AAAA,QACN,SAAA,EAAW,IAAA;AAAA,QACX,OAAA,EAAS;AAAA,OACZ,CAAA;AAAA,IACL;AACA,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,MAAA;AAAA,MACN,WAAW,OAAO,OAAA,EAAS,SAAA,KAAc,WAAA,GAAc,OAAO,OAAA,EAAS,SAAA;AAAA,MACvE,GAAG,SAAA,CAAU,QAAA,CAAS,OAAA,EAAS,OAAO;AAAA,KACzC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,EAAE,IAAA,EAAM,UAAA,EAAY,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG,CAAA;AAAA,EAC9E;AAAA,EACA,KAAA,CAAM,OAAO,OAAA,EAAS;AAClB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,OAAA;AAAA,MACN,KAAA;AAAA,MACA,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,QAAA,CAAS,OAAO,OAAA,EAAS;AACrB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,UAAA;AAAA,MACN,KAAA;AAAA,MACA,UAAU,OAAA,EAAS,QAAA;AAAA,MACnB,GAAG,SAAA,CAAU,QAAA,CAAS,OAAA,EAAS,OAAO;AAAA,KACzC,CAAA;AAAA,EACL;AAAA,EACA,UAAA,CAAW,OAAO,OAAA,EAAS;AACvB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,YAAA;AAAA,MACN,KAAA;AAAA,MACA,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,QAAA,CAAS,OAAO,OAAA,EAAS;AACrB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,UAAA;AAAA,MACN,KAAA;AAAA,MACA,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,WAAW,OAAA,EAAS;AACpB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,WAAW,OAAA,EAAS;AACpB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA,EACA,MAAA,CAAO,KAAK,OAAA,EAAS;AACjB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,GAAA;AAAA,MACP,GAAG,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KAChC,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EAClD;AAAA,EACA,IAAA,GAAO;AACH,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,KAAK,MAAA,EAAQ,EAAE,IAAA,EAAM,MAAA,EAAQ;AAAA,KACjD,CAAA;AAAA,EACL;AAAA,EACA,WAAA,GAAc;AACV,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,KAAK,MAAA,EAAQ,EAAE,IAAA,EAAM,aAAA,EAAe;AAAA,KACxD,CAAA;AAAA,EACL;AAAA,EACA,WAAA,GAAc;AACV,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,KAAK,MAAA,EAAQ,EAAE,IAAA,EAAM,aAAA,EAAe;AAAA,KACxD,CAAA;AAAA,EACL;AAAA,EACA,IAAI,UAAA,GAAa;AACb,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,UAAU,CAAA;AAAA,EACjE;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,UAAA,GAAa;AACb,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,UAAU,CAAA;AAAA,EACjE;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,OAAO,CAAA;AAAA,EAC9D;AAAA,EACA,IAAI,KAAA,GAAQ;AACR,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,KAAK,CAAA;AAAA,EAC5D;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,OAAO,CAAA;AAAA,EAC9D;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,QAAQ,CAAA;AAAA,EAC/D;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,OAAO,CAAA;AAAA,EAC9D;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,IAAA,GAAO;AACP,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,IAAI,CAAA;AAAA,EAC3D;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,MAAM,CAAA;AAAA,EAC7D;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,QAAQ,CAAA;AAAA,EAC/D;AAAA,EACA,IAAI,WAAA,GAAc;AAEd,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,WAAW,CAAA;AAAA,EAClE;AAAA,EACA,IAAI,SAAA,GAAY;AACZ,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,IAAI,SAAA,GAAY;AACZ,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AACJ,CAAA;AACA,SAAA,CAAU,MAAA,GAAS,CAAC,MAAA,KAAW;AAC3B,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,QAAQ,EAAC;AAAA,IACT,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,MAAA,EAAQ,QAAQ,MAAA,IAAU,KAAA;AAAA,IAC1B,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AAEA,SAAS,kBAAA,CAAmB,KAAK,IAAA,EAAM;AACnC,EAAA,MAAM,WAAA,GAAA,CAAe,IAAI,QAAA,EAAS,CAAE,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA,EAAI,MAAA;AACzD,EAAA,MAAM,YAAA,GAAA,CAAgB,KAAK,QAAA,EAAS,CAAE,MAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA,EAAI,MAAA;AAC3D,EAAA,MAAM,QAAA,GAAW,WAAA,GAAc,YAAA,GAAe,WAAA,GAAc,YAAA;AAC5D,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,QAAQ,CAAA,CAAE,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAC,CAAA;AACrE,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAA,CAAE,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAC,CAAA;AACvE,EAAA,OAAQ,MAAA,GAAS,UAAW,EAAA,IAAM,QAAA;AACtC;AAPS,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA;AAQF,IAAM,SAAA,GAAN,MAAM,UAAA,SAAkB,OAAA,CAAQ;AAAA,EAtiCvC;AAsiCuC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA;AAChB,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA;AAChB,IAAA,IAAA,CAAK,OAAO,IAAA,CAAK,UAAA;AAAA,EACrB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,IAAA,CAAK,KAAK,MAAA,EAAQ;AAClB,MAAA,KAAA,CAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAAA,IAClC;AACA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACrC,MAAA,MAAMA,IAAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkBA,IAAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAUA,IAAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,GAAA,GAAM,MAAA;AACV,IAAA,MAAM,MAAA,GAAS,IAAI,WAAA,EAAY;AAC/B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAClC,MAAA,IAAI,KAAA,CAAM,SAAS,KAAA,EAAO;AACtB,QAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA,EAAG;AAC7B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,YAAA;AAAA,YACnB,QAAA,EAAU,SAAA;AAAA,YACV,QAAA,EAAU,OAAA;AAAA,YACV,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,MAAM,QAAA,GAAW,MAAM,SAAA,GAAY,KAAA,CAAM,OAAO,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAA;AAClF,QAAA,IAAI,QAAA,EAAU;AACV,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,SAAA;AAAA,YACnB,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,WAAW,KAAA,CAAM,SAAA;AAAA,YACjB,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,MAAM,MAAA,GAAS,MAAM,SAAA,GAAY,KAAA,CAAM,OAAO,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAA;AAChF,QAAA,IAAI,MAAA,EAAQ;AACR,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,OAAA;AAAA,YACnB,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM,QAAA;AAAA,YACN,WAAW,KAAA,CAAM,SAAA;AAAA,YACjB,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,YAAA,EAAc;AAClC,QAAA,IAAI,mBAAmB,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,KAAK,MAAM,CAAA,EAAG;AACnD,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,eAAA;AAAA,YACnB,YAAY,KAAA,CAAM,KAAA;AAAA,YAClB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAC9B,QAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,UAAA;AAAA,YACnB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MACK;AACD,QAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,MAC1B;AAAA,IACJ;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EACrD;AAAA,EACA,GAAA,CAAI,OAAO,OAAA,EAAS;AAChB,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,MAAM,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACxE;AAAA,EACA,EAAA,CAAG,OAAO,OAAA,EAAS;AACf,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,OAAO,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACzE;AAAA,EACA,GAAA,CAAI,OAAO,OAAA,EAAS;AAChB,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,MAAM,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACxE;AAAA,EACA,EAAA,CAAG,OAAO,OAAA,EAAS;AACf,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,OAAO,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACzE;AAAA,EACA,QAAA,CAAS,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS;AACtC,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,MAAA,EAAQ;AAAA,QACJ,GAAG,KAAK,IAAA,CAAK,MAAA;AAAA,QACb;AAAA,UACI,IAAA;AAAA,UACA,KAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA;AACvC;AACJ,KACH,CAAA;AAAA,EACL;AAAA,EACA,UAAU,KAAA,EAAO;AACb,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,QAAQ,CAAC,GAAG,IAAA,CAAK,IAAA,CAAK,QAAQ,KAAK;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,IAAI,OAAA,EAAS;AACT,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,CAAA;AAAA,MACP,SAAA,EAAW,KAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,CAAA;AAAA,MACP,SAAA,EAAW,KAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,YAAY,OAAA,EAAS;AACjB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,CAAA;AAAA,MACP,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,YAAY,OAAA,EAAS;AACjB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,CAAA;AAAA,MACP,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,UAAA,CAAW,OAAO,OAAA,EAAS;AACvB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,YAAA;AAAA,MACN,KAAA;AAAA,MACA,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,OAAO,OAAA,EAAS;AACZ,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,KAAK,OAAA,EAAS;AACV,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,SAAA,EAAW,IAAA;AAAA,MACX,OAAO,MAAA,CAAO,gBAAA;AAAA,MACd,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,EAAE,SAAA,CAAU;AAAA,MACT,IAAA,EAAM,KAAA;AAAA,MACN,SAAA,EAAW,IAAA;AAAA,MACX,OAAO,MAAA,CAAO,gBAAA;AAAA,MACd,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,IAAI,KAAA,GAAQ;AACR,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,KAAK,MAAA,CAAO,IAAA,CAAK,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS,KAAA,IAAU,GAAG,IAAA,KAAS,YAAA,IAAgB,KAAK,SAAA,CAAU,EAAA,CAAG,KAAK,CAAE,CAAA;AAAA,EACtH;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,QAAA,IAAY,EAAA,CAAG,SAAS,KAAA,IAAS,EAAA,CAAG,SAAS,YAAA,EAAc;AACvE,QAAA,OAAO,IAAA;AAAA,MACX,CAAA,MAAA,IACS,EAAA,CAAG,IAAA,KAAS,KAAA,EAAO;AACxB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB,CAAA,MAAA,IACS,EAAA,CAAG,IAAA,KAAS,KAAA,EAAO;AACxB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,OAAO,QAAA,CAAS,GAAG,CAAA,IAAK,MAAA,CAAO,SAAS,GAAG,CAAA;AAAA,EACtD;AACJ,CAAA;AACA,SAAA,CAAU,MAAA,GAAS,CAAC,MAAA,KAAW;AAC3B,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,QAAQ,EAAC;AAAA,IACT,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,MAAA,EAAQ,QAAQ,MAAA,IAAU,KAAA;AAAA,IAC1B,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,SAAA,GAAN,MAAM,UAAA,SAAkB,OAAA,CAAQ;AAAA,EArxCvC;AAqxCuC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA;AAChB,IAAA,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA;AAAA,EACpB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,IAAA,CAAK,KAAK,MAAA,EAAQ;AAClB,MAAA,IAAI;AACA,QAAA,KAAA,CAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAAA,MAClC,CAAA,CAAA,MACM;AACF,QAAA,OAAO,IAAA,CAAK,iBAAiB,KAAK,CAAA;AAAA,MACtC;AAAA,IACJ;AACA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACrC,MAAA,OAAO,IAAA,CAAK,iBAAiB,KAAK,CAAA;AAAA,IACtC;AACA,IAAA,IAAI,GAAA,GAAM,MAAA;AACV,IAAA,MAAM,MAAA,GAAS,IAAI,WAAA,EAAY;AAC/B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAClC,MAAA,IAAI,KAAA,CAAM,SAAS,KAAA,EAAO;AACtB,QAAA,MAAM,QAAA,GAAW,MAAM,SAAA,GAAY,KAAA,CAAM,OAAO,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAA;AAClF,QAAA,IAAI,QAAA,EAAU;AACV,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,SAAA;AAAA,YACnB,IAAA,EAAM,QAAA;AAAA,YACN,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,WAAW,KAAA,CAAM,SAAA;AAAA,YACjB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,MAAM,MAAA,GAAS,MAAM,SAAA,GAAY,KAAA,CAAM,OAAO,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAA;AAChF,QAAA,IAAI,MAAA,EAAQ;AACR,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,OAAA;AAAA,YACnB,IAAA,EAAM,QAAA;AAAA,YACN,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,WAAW,KAAA,CAAM,SAAA;AAAA,YACjB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,YAAA,EAAc;AAClC,QAAA,IAAI,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,KAAU,MAAA,CAAO,CAAC,CAAA,EAAG;AACxC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,eAAA;AAAA,YACnB,YAAY,KAAA,CAAM,KAAA;AAAA,YAClB,SAAS,KAAA,CAAM;AAAA,WAClB,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MACK;AACD,QAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,MAC1B;AAAA,IACJ;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EACrD;AAAA,EACA,iBAAiB,KAAA,EAAO;AACpB,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,IAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,MACnB,MAAM,YAAA,CAAa,YAAA;AAAA,MACnB,UAAU,aAAA,CAAc,MAAA;AAAA,MACxB,UAAU,GAAA,CAAI;AAAA,KACjB,CAAA;AACD,IAAA,OAAO,OAAA;AAAA,EACX;AAAA,EACA,GAAA,CAAI,OAAO,OAAA,EAAS;AAChB,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,MAAM,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACxE;AAAA,EACA,EAAA,CAAG,OAAO,OAAA,EAAS;AACf,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,OAAO,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACzE;AAAA,EACA,GAAA,CAAI,OAAO,OAAA,EAAS;AAChB,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,MAAM,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACxE;AAAA,EACA,EAAA,CAAG,OAAO,OAAA,EAAS;AACf,IAAA,OAAO,IAAA,CAAK,SAAS,KAAA,EAAO,KAAA,EAAO,OAAO,SAAA,CAAU,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACzE;AAAA,EACA,QAAA,CAAS,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS;AACtC,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,MAAA,EAAQ;AAAA,QACJ,GAAG,KAAK,IAAA,CAAK,MAAA;AAAA,QACb;AAAA,UACI,IAAA;AAAA,UACA,KAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA;AACvC;AACJ,KACH,CAAA;AAAA,EACL;AAAA,EACA,UAAU,KAAA,EAAO;AACb,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,QAAQ,CAAC,GAAG,IAAA,CAAK,IAAA,CAAK,QAAQ,KAAK;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,MACf,SAAA,EAAW,KAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,MACf,SAAA,EAAW,KAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,YAAY,OAAA,EAAS;AACjB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,MACf,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,YAAY,OAAA,EAAS;AACjB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,MACf,SAAA,EAAW,IAAA;AAAA,MACX,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,UAAA,CAAW,OAAO,OAAA,EAAS;AACvB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,YAAA;AAAA,MACN,KAAA;AAAA,MACA,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,IAAI,QAAA,GAAW;AACX,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AACJ,CAAA;AACA,SAAA,CAAU,MAAA,GAAS,CAAC,MAAA,KAAW;AAC3B,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,QAAQ,EAAC;AAAA,IACT,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,MAAA,EAAQ,QAAQ,MAAA,IAAU,KAAA;AAAA,IAC1B,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EAr8CxC;AAq8CwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,IAAA,CAAK,KAAK,MAAA,EAAQ;AAClB,MAAA,KAAA,CAAM,IAAA,GAAO,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAAA,IACnC;AACA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,OAAA,EAAS;AACtC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,OAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,MAAA,KAAW;AAC5B,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,MAAA,EAAQ,QAAQ,MAAA,IAAU,KAAA;AAAA,IAC1B,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,OAAA,GAAN,MAAM,QAAA,SAAgB,OAAA,CAAQ;AAAA,EA99CrC;AA89CqC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjC,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,IAAA,CAAK,KAAK,MAAA,EAAQ;AAClB,MAAA,KAAA,CAAM,IAAA,GAAO,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAAA,IACpC;AACA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,IAAA,EAAM;AACnC,MAAA,MAAMA,IAAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkBA,IAAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,IAAA;AAAA,QACxB,UAAUA,IAAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,OAAO,KAAA,CAAM,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,CAAA,EAAG;AACpC,MAAA,MAAMA,IAAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkBA,IAAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa;AAAA,OACtB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,MAAA,GAAS,IAAI,WAAA,EAAY;AAC/B,IAAA,IAAI,GAAA,GAAM,MAAA;AACV,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAClC,MAAA,IAAI,KAAA,CAAM,SAAS,KAAA,EAAO;AACtB,QAAA,IAAI,KAAA,CAAM,IAAA,CAAK,OAAA,EAAQ,GAAI,MAAM,KAAA,EAAO;AACpC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,SAAA;AAAA,YACnB,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,SAAA,EAAW,IAAA;AAAA,YACX,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM;AAAA,WACT,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,KAAA,CAAM,IAAA,KAAS,KAAA,EAAO;AAC3B,QAAA,IAAI,KAAA,CAAM,IAAA,CAAK,OAAA,EAAQ,GAAI,MAAM,KAAA,EAAO;AACpC,UAAA,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA;AACrC,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,OAAA;AAAA,YACnB,SAAS,KAAA,CAAM,OAAA;AAAA,YACf,SAAA,EAAW,IAAA;AAAA,YACX,KAAA,EAAO,KAAA;AAAA,YACP,SAAS,KAAA,CAAM,KAAA;AAAA,YACf,IAAA,EAAM;AAAA,WACT,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MACK;AACD,QAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,MAC1B;AAAA,IACJ;AACA,IAAA,OAAO;AAAA,MACH,QAAQ,MAAA,CAAO,KAAA;AAAA,MACf,OAAO,IAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAS;AAAA,KACxC;AAAA,EACJ;AAAA,EACA,UAAU,KAAA,EAAO;AACb,IAAA,OAAO,IAAI,QAAA,CAAQ;AAAA,MACf,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,QAAQ,CAAC,GAAG,IAAA,CAAK,IAAA,CAAK,QAAQ,KAAK;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,SAAS,OAAA,EAAS;AAClB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAAA,MACvB,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,SAAS,OAAA,EAAS;AAClB,IAAA,OAAO,KAAK,SAAA,CAAU;AAAA,MAClB,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,QAAQ,OAAA,EAAQ;AAAA,MACvB,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO;AAAA,KACtC,CAAA;AAAA,EACL;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA,IAAO,IAAA,GAAO,IAAI,IAAA,CAAK,GAAG,CAAA,GAAI,IAAA;AAAA,EACzC;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,IAAI,GAAA,GAAM,IAAA;AACV,IAAA,KAAA,MAAW,EAAA,IAAM,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAC/B,MAAA,IAAI,EAAA,CAAG,SAAS,KAAA,EAAO;AACnB,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,EAAA,CAAG,KAAA,GAAQ,GAAA;AAC3B,UAAA,GAAA,GAAM,EAAA,CAAG,KAAA;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,OAAO,GAAA,IAAO,IAAA,GAAO,IAAI,IAAA,CAAK,GAAG,CAAA,GAAI,IAAA;AAAA,EACzC;AACJ,CAAA;AACA,OAAA,CAAQ,MAAA,GAAS,CAAC,MAAA,KAAW;AACzB,EAAA,OAAO,IAAI,OAAA,CAAQ;AAAA,IACf,QAAQ,EAAC;AAAA,IACT,MAAA,EAAQ,QAAQ,MAAA,IAAU,KAAA;AAAA,IAC1B,UAAU,qBAAA,CAAsB,OAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,SAAA,GAAN,cAAwB,OAAA,CAAQ;AAAA,EA7kDvC;AA6kDuC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACrC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,SAAA,CAAU,MAAA,GAAS,CAAC,MAAA,KAAW;AAC3B,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,YAAA,GAAN,cAA2B,OAAA,CAAQ;AAAA,EAlmD1C;AAkmD0C,IAAA,MAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAAA;AAAA,EACtC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,SAAA,EAAW;AACxC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,SAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,YAAA,CAAa,MAAA,GAAS,CAAC,MAAA,KAAW;AAC9B,EAAA,OAAO,IAAI,YAAA,CAAa;AAAA,IACpB,UAAU,qBAAA,CAAsB,YAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,OAAA,GAAN,cAAsB,OAAA,CAAQ;AAAA,EAvnDrC;AAunDqC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,IAAA,EAAM;AACnC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,IAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,OAAA,CAAQ,MAAA,GAAS,CAAC,MAAA,KAAW;AACzB,EAAA,OAAO,IAAI,OAAA,CAAQ;AAAA,IACf,UAAU,qBAAA,CAAsB,OAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,MAAA,GAAN,cAAqB,OAAA,CAAQ;AAAA,EA5oDpC;AA4oDoC,IAAA,MAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AAAA,EAChC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAElB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EAChB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,MAAA,CAAO,MAAA,GAAS,CAAC,MAAA,KAAW;AACxB,EAAA,OAAO,IAAI,MAAA,CAAO;AAAA,IACd,UAAU,qBAAA,CAAsB,MAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EA5pDxC;AA4pDwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAElB,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,EACpB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,MAAA,KAAW;AAC5B,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,QAAA,GAAN,cAAuB,OAAA,CAAQ;AAAA,EA5qDtC;AA4qDsC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,IAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,MACnB,MAAM,YAAA,CAAa,YAAA;AAAA,MACnB,UAAU,aAAA,CAAc,KAAA;AAAA,MACxB,UAAU,GAAA,CAAI;AAAA,KACjB,CAAA;AACD,IAAA,OAAO,OAAA;AAAA,EACX;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,MAAA,KAAW;AAC1B,EAAA,OAAO,IAAI,QAAA,CAAS;AAAA,IAChB,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,OAAA,GAAN,cAAsB,OAAA,CAAQ;AAAA,EA7rDrC;AA6rDqC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,SAAA,EAAW;AACxC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,IAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AACJ,CAAA;AACA,OAAA,CAAQ,MAAA,GAAS,CAAC,MAAA,KAAW;AACzB,EAAA,OAAO,IAAI,OAAA,CAAQ;AAAA,IACf,UAAU,qBAAA,CAAsB,OAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,QAAA,GAAN,MAAM,SAAA,SAAiB,OAAA,CAAQ;AAAA,EAltDtC;AAktDsC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAK,MAAA,EAAO,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,MAAM,MAAM,IAAA,CAAK,IAAA;AACjB,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,KAAA,EAAO;AACxC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,KAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,GAAA,CAAI,gBAAgB,IAAA,EAAM;AAC1B,MAAA,MAAM,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,IAAI,WAAA,CAAY,KAAA;AACjD,MAAA,MAAM,QAAA,GAAW,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,IAAI,WAAA,CAAY,KAAA;AACnD,MAAA,IAAI,UAAU,QAAA,EAAU;AACpB,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,IAAA,EAAM,MAAA,GAAS,YAAA,CAAa,OAAA,GAAU,YAAA,CAAa,SAAA;AAAA,UACnD,OAAA,EAAU,QAAA,GAAW,GAAA,CAAI,WAAA,CAAY,KAAA,GAAQ,MAAA;AAAA,UAC7C,OAAA,EAAU,MAAA,GAAS,GAAA,CAAI,WAAA,CAAY,KAAA,GAAQ,MAAA;AAAA,UAC3C,IAAA,EAAM,OAAA;AAAA,UACN,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAO,IAAA;AAAA,UACP,OAAA,EAAS,IAAI,WAAA,CAAY;AAAA,SAC5B,CAAA;AACD,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,IAAI,GAAA,CAAI,cAAc,IAAA,EAAM;AACxB,MAAA,IAAI,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,GAAA,CAAI,UAAU,KAAA,EAAO;AACvC,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,MAAM,YAAA,CAAa,SAAA;AAAA,UACnB,OAAA,EAAS,IAAI,SAAA,CAAU,KAAA;AAAA,UACvB,IAAA,EAAM,OAAA;AAAA,UACN,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAO,KAAA;AAAA,UACP,OAAA,EAAS,IAAI,SAAA,CAAU;AAAA,SAC1B,CAAA;AACD,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,IAAI,GAAA,CAAI,cAAc,IAAA,EAAM;AACxB,MAAA,IAAI,GAAA,CAAI,IAAA,CAAK,MAAA,GAAS,GAAA,CAAI,UAAU,KAAA,EAAO;AACvC,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,MAAM,YAAA,CAAa,OAAA;AAAA,UACnB,OAAA,EAAS,IAAI,SAAA,CAAU,KAAA;AAAA,UACvB,IAAA,EAAM,OAAA;AAAA,UACN,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAO,KAAA;AAAA,UACP,OAAA,EAAS,IAAI,SAAA,CAAU;AAAA,SAC1B,CAAA;AACD,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAG,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AAC9C,QAAA,OAAO,GAAA,CAAI,IAAA,CAAK,WAAA,CAAY,IAAI,kBAAA,CAAmB,KAAK,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,MAC9E,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,CAACC,OAAAA,KAAW;AACjB,QAAA,OAAO,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQA,OAAM,CAAA;AAAA,MAChD,CAAC,CAAA;AAAA,IACL;AACA,IAAA,MAAM,MAAA,GAAS,CAAC,GAAG,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AAC1C,MAAA,OAAO,GAAA,CAAI,IAAA,CAAK,UAAA,CAAW,IAAI,kBAAA,CAAmB,KAAK,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,IAC7E,CAAC,CAAA;AACD,IAAA,OAAO,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQ,MAAM,CAAA;AAAA,EAChD;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,IAAA;AAAA,EACrB;AAAA,EACA,GAAA,CAAI,WAAW,OAAA,EAAS;AACpB,IAAA,OAAO,IAAI,SAAA,CAAS;AAAA,MAChB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,SAAA,EAAW,EAAE,KAAA,EAAO,SAAA,EAAW,SAAS,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAAE,KACvE,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,WAAW,OAAA,EAAS;AACpB,IAAA,OAAO,IAAI,SAAA,CAAS;AAAA,MAChB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,SAAA,EAAW,EAAE,KAAA,EAAO,SAAA,EAAW,SAAS,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAAE,KACvE,CAAA;AAAA,EACL;AAAA,EACA,MAAA,CAAO,KAAK,OAAA,EAAS;AACjB,IAAA,OAAO,IAAI,SAAA,CAAS;AAAA,MAChB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,WAAA,EAAa,EAAE,KAAA,EAAO,GAAA,EAAK,SAAS,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAAE,KACnE,CAAA;AAAA,EACL;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAO,CAAA;AAAA,EAC9B;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,MAAA,EAAQ,MAAA,KAAW;AAClC,EAAA,OAAO,IAAI,QAAA,CAAS;AAAA,IAChB,IAAA,EAAM,MAAA;AAAA,IACN,SAAA,EAAW,IAAA;AAAA,IACX,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa,IAAA;AAAA,IACb,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACA,SAAS,eAAe,MAAA,EAAQ;AAC5B,EAAA,IAAI,kBAAkB,SAAA,EAAW;AAC7B,IAAA,MAAM,WAAW,EAAC;AAClB,IAAA,KAAA,MAAW,GAAA,IAAO,OAAO,KAAA,EAAO;AAC5B,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AACpC,MAAA,QAAA,CAAS,GAAG,CAAA,GAAI,WAAA,CAAY,MAAA,CAAO,cAAA,CAAe,WAAW,CAAC,CAAA;AAAA,IAClE;AACA,IAAA,OAAO,IAAI,SAAA,CAAU;AAAA,MACjB,GAAG,MAAA,CAAO,IAAA;AAAA,MACV,KAAA,+BAAa,QAAA,EAAN,OAAA;AAAA,KACV,CAAA;AAAA,EACL,CAAA,MAAA,IACS,kBAAkB,QAAA,EAAU;AACjC,IAAA,OAAO,IAAI,QAAA,CAAS;AAAA,MAChB,GAAG,MAAA,CAAO,IAAA;AAAA,MACV,IAAA,EAAM,cAAA,CAAe,MAAA,CAAO,OAAO;AAAA,KACtC,CAAA;AAAA,EACL,CAAA,MAAA,IACS,kBAAkB,WAAA,EAAa;AACpC,IAAA,OAAO,YAAY,MAAA,CAAO,cAAA,CAAe,MAAA,CAAO,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7D,CAAA,MAAA,IACS,kBAAkB,WAAA,EAAa;AACpC,IAAA,OAAO,YAAY,MAAA,CAAO,cAAA,CAAe,MAAA,CAAO,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7D,CAAA,MAAA,IACS,kBAAkB,QAAA,EAAU;AACjC,IAAA,OAAO,QAAA,CAAS,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,cAAA,CAAe,IAAI,CAAC,CAAC,CAAA;AAAA,EAC3E,CAAA,MACK;AACD,IAAA,OAAO,MAAA;AAAA,EACX;AACJ;AA9BS,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AA+BF,IAAM,SAAA,GAAN,MAAM,UAAA,SAAkB,OAAA,CAAQ;AAAA,EAt1DvC;AAs1DuC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAClB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAKf,IAAA,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA;AAqCtB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,MAAA;AAAA,EACxB;AAAA,EACA,UAAA,GAAa;AACT,IAAA,IAAI,KAAK,OAAA,KAAY,IAAA;AACjB,MAAA,OAAO,IAAA,CAAK,OAAA;AAChB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,KAAA,EAAM;AAC9B,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA;AAClC,IAAA,IAAA,CAAK,OAAA,GAAU,EAAE,KAAA,EAAO,IAAA,EAAK;AAC7B,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EAChB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACrC,MAAA,MAAMD,IAAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkBA,IAAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAUA,IAAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU,GAAI,KAAK,UAAA,EAAW;AACnD,IAAA,MAAM,YAAY,EAAC;AACnB,IAAA,IAAI,EAAE,KAAK,IAAA,CAAK,QAAA,YAAoB,YAAY,IAAA,CAAK,IAAA,CAAK,gBAAgB,OAAA,CAAA,EAAU;AAChF,MAAA,KAAA,MAAW,GAAA,IAAO,IAAI,IAAA,EAAM;AACxB,QAAA,IAAI,CAAC,SAAA,CAAU,QAAA,CAAS,GAAG,CAAA,EAAG;AAC1B,UAAA,SAAA,CAAU,KAAK,GAAG,CAAA;AAAA,QACtB;AAAA,MACJ;AAAA,IACJ;AACA,IAAA,MAAM,QAAQ,EAAC;AACf,IAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AACzB,MAAA,MAAM,YAAA,GAAe,MAAM,GAAG,CAAA;AAC9B,MAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC1B,MAAA,KAAA,CAAM,IAAA,CAAK;AAAA,QACP,GAAA,EAAK,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAO,GAAA,EAAI;AAAA,QACnC,KAAA,EAAO,YAAA,CAAa,MAAA,CAAO,IAAI,kBAAA,CAAmB,KAAK,KAAA,EAAO,GAAA,CAAI,IAAA,EAAM,GAAG,CAAC,CAAA;AAAA,QAC5E,SAAA,EAAW,OAAO,GAAA,CAAI;AAAA,OACzB,CAAA;AAAA,IACL;AACA,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,QAAA,YAAoB,QAAA,EAAU;AACxC,MAAA,MAAM,WAAA,GAAc,KAAK,IAAA,CAAK,WAAA;AAC9B,MAAA,IAAI,gBAAgB,aAAA,EAAe;AAC/B,QAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AACzB,UAAA,KAAA,CAAM,IAAA,CAAK;AAAA,YACP,GAAA,EAAK,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAO,GAAA,EAAI;AAAA,YACnC,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAO,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAAE,WAClD,CAAA;AAAA,QACL;AAAA,MACJ,CAAA,MAAA,IACS,gBAAgB,QAAA,EAAU;AAC/B,QAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACtB,UAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,YACnB,MAAM,YAAA,CAAa,iBAAA;AAAA,YACnB,IAAA,EAAM;AAAA,WACT,CAAA;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,MAAA,IACS,gBAAgB,OAAA,EAAS,CAClC,MACK;AACD,QAAA,MAAM,IAAI,MAAM,CAAA,oDAAA,CAAsD,CAAA;AAAA,MAC1E;AAAA,IACJ,CAAA,MACK;AAED,MAAA,MAAM,QAAA,GAAW,KAAK,IAAA,CAAK,QAAA;AAC3B,MAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AACzB,QAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC1B,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACP,GAAA,EAAK,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAO,GAAA,EAAI;AAAA,UACnC,OAAO,QAAA,CAAS,MAAA;AAAA,YAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,KAAA,EAAO,GAAA,CAAI,MAAM,GAAG;AAAA;AAAA,WACvE;AAAA,UACA,SAAA,EAAW,OAAO,GAAA,CAAI;AAAA,SACzB,CAAA;AAAA,MACL;AAAA,IACJ;AACA,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,OAAA,CAAQ,OAAA,EAAQ,CAClB,IAAA,CAAK,YAAY;AAClB,QAAA,MAAM,YAAY,EAAC;AACnB,QAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,UAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA;AACvB,UAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA;AACzB,UAAA,SAAA,CAAU,IAAA,CAAK;AAAA,YACX,GAAA;AAAA,YACA,KAAA;AAAA,YACA,WAAW,IAAA,CAAK;AAAA,WACnB,CAAA;AAAA,QACL;AACA,QAAA,OAAO,SAAA;AAAA,MACX,CAAC,CAAA,CACI,IAAA,CAAK,CAAC,SAAA,KAAc;AACrB,QAAA,OAAO,WAAA,CAAY,eAAA,CAAgB,MAAA,EAAQ,SAAS,CAAA;AAAA,MACxD,CAAC,CAAA;AAAA,IACL,CAAA,MACK;AACD,MAAA,OAAO,WAAA,CAAY,eAAA,CAAgB,MAAA,EAAQ,KAAK,CAAA;AAAA,IACpD;AAAA,EACJ;AAAA,EACA,IAAI,KAAA,GAAQ;AACR,IAAA,OAAO,IAAA,CAAK,KAAK,KAAA,EAAM;AAAA,EAC3B;AAAA,EACA,OAAO,OAAA,EAAS;AACZ,IAAA,SAAA,CAAU,QAAA;AACV,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,WAAA,EAAa,QAAA;AAAA,MACb,GAAI,YAAY,MAAA,GACV;AAAA,QACE,QAAA,kBAAU,MAAA,CAAA,CAAC,KAAA,EAAO,GAAA,KAAQ;AACtB,UAAA,MAAM,YAAA,GAAe,KAAK,IAAA,CAAK,QAAA,GAAW,OAAO,GAAG,CAAA,CAAE,WAAW,GAAA,CAAI,YAAA;AACrE,UAAA,IAAI,MAAM,IAAA,KAAS,mBAAA;AACf,YAAA,OAAO;AAAA,cACH,OAAA,EAAS,SAAA,CAAU,QAAA,CAAS,OAAO,EAAE,OAAA,IAAW;AAAA,aACpD;AACJ,UAAA,OAAO;AAAA,YACH,OAAA,EAAS;AAAA,WACb;AAAA,QACJ,CAAA,EATU,UAAA;AAAA,UAWZ;AAAC,KACV,CAAA;AAAA,EACL;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,WAAA,EAAa;AAAA,KAChB,CAAA;AAAA,EACL;AAAA,EACA,WAAA,GAAc;AACV,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,WAAA,EAAa;AAAA,KAChB,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,OAAO,YAAA,EAAc;AACjB,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,uBAAO,MAAA,CAAA,OAAO;AAAA,QACV,GAAG,IAAA,CAAK,IAAA,CAAK,KAAA,EAAM;AAAA,QACnB,GAAG;AAAA,OACP,CAAA,EAHO,OAAA;AAAA,KAIV,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAA,EAAS;AACX,IAAA,MAAM,MAAA,GAAS,IAAI,UAAA,CAAU;AAAA,MACzB,WAAA,EAAa,QAAQ,IAAA,CAAK,WAAA;AAAA,MAC1B,QAAA,EAAU,QAAQ,IAAA,CAAK,QAAA;AAAA,MACvB,uBAAO,MAAA,CAAA,OAAO;AAAA,QACV,GAAG,IAAA,CAAK,IAAA,CAAK,KAAA,EAAM;AAAA,QACnB,GAAG,OAAA,CAAQ,IAAA,CAAK,KAAA;AAAM,OAC1B,CAAA,EAHO,OAAA,CAAA;AAAA,MAIP,UAAU,qBAAA,CAAsB;AAAA,KACnC,CAAA;AACD,IAAA,OAAO,MAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoCA,MAAA,CAAO,KAAK,MAAA,EAAQ;AAChB,IAAA,OAAO,KAAK,OAAA,CAAQ,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAA;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,SAAS,KAAA,EAAO;AACZ,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,QAAA,EAAU;AAAA,KACb,CAAA;AAAA,EACL;AAAA,EACA,KAAK,IAAA,EAAM;AACP,IAAA,MAAM,QAAQ,EAAC;AACf,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,UAAA,CAAW,IAAI,CAAA,EAAG;AACrC,MAAA,IAAI,KAAK,GAAG,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,EAAG;AAC9B,QAAA,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAAA,MAC/B;AAAA,IACJ;AACA,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,KAAA,+BAAa,KAAA,EAAN,OAAA;AAAA,KACV,CAAA;AAAA,EACL;AAAA,EACA,KAAK,IAAA,EAAM;AACP,IAAA,MAAM,QAAQ,EAAC;AACf,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA,EAAG;AAC3C,MAAA,IAAI,CAAC,IAAA,CAAK,GAAG,CAAA,EAAG;AACZ,QAAA,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAAA,MAC/B;AAAA,IACJ;AACA,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,KAAA,+BAAa,KAAA,EAAN,OAAA;AAAA,KACV,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,GAAc;AACV,IAAA,OAAO,eAAe,IAAI,CAAA;AAAA,EAC9B;AAAA,EACA,QAAQ,IAAA,EAAM;AACV,IAAA,MAAM,WAAW,EAAC;AAClB,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA,EAAG;AAC3C,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAClC,MAAA,IAAI,IAAA,IAAQ,CAAC,IAAA,CAAK,GAAG,CAAA,EAAG;AACpB,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,WAAA;AAAA,MACpB,CAAA,MACK;AACD,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,WAAA,CAAY,QAAA,EAAS;AAAA,MACzC;AAAA,IACJ;AACA,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,KAAA,+BAAa,QAAA,EAAN,OAAA;AAAA,KACV,CAAA;AAAA,EACL;AAAA,EACA,SAAS,IAAA,EAAM;AACX,IAAA,MAAM,WAAW,EAAC;AAClB,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA,EAAG;AAC3C,MAAA,IAAI,IAAA,IAAQ,CAAC,IAAA,CAAK,GAAG,CAAA,EAAG;AACpB,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAAA,MAClC,CAAA,MACK;AACD,QAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAClC,QAAA,IAAI,QAAA,GAAW,WAAA;AACf,QAAA,OAAO,oBAAoB,WAAA,EAAa;AACpC,UAAA,QAAA,GAAW,SAAS,IAAA,CAAK,SAAA;AAAA,QAC7B;AACA,QAAA,QAAA,CAAS,GAAG,CAAA,GAAI,QAAA;AAAA,MACpB;AAAA,IACJ;AACA,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,KAAA,+BAAa,QAAA,EAAN,OAAA;AAAA,KACV,CAAA;AAAA,EACL;AAAA,EACA,KAAA,GAAQ;AACJ,IAAA,OAAO,aAAA,CAAc,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,EACpD;AACJ,CAAA;AACA,SAAA,CAAU,MAAA,GAAS,CAAC,KAAA,EAAO,MAAA,KAAW;AAClC,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,KAAA,+BAAa,KAAA,EAAN,OAAA,CAAA;AAAA,IACP,WAAA,EAAa,OAAA;AAAA,IACb,QAAA,EAAU,SAAS,MAAA,EAAO;AAAA,IAC1B,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACA,SAAA,CAAU,YAAA,GAAe,CAAC,KAAA,EAAO,MAAA,KAAW;AACxC,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,KAAA,+BAAa,KAAA,EAAN,OAAA,CAAA;AAAA,IACP,WAAA,EAAa,QAAA;AAAA,IACb,QAAA,EAAU,SAAS,MAAA,EAAO;AAAA,IAC1B,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACA,SAAA,CAAU,UAAA,GAAa,CAAC,KAAA,EAAO,MAAA,KAAW;AACtC,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACjB,KAAA;AAAA,IACA,WAAA,EAAa,OAAA;AAAA,IACb,QAAA,EAAU,SAAS,MAAA,EAAO;AAAA,IAC1B,UAAU,qBAAA,CAAsB,SAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,QAAA,GAAN,cAAuB,OAAA,CAAQ;AAAA,EA1tEtC;AA0tEsC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,CAAK,OAAA;AAC1B,IAAA,SAAS,cAAc,OAAA,EAAS;AAE5B,MAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC1B,QAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,KAAW,OAAA,EAAS;AAClC,UAAA,OAAO,MAAA,CAAO,MAAA;AAAA,QAClB;AAAA,MACJ;AACA,MAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC1B,QAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,KAAW,OAAA,EAAS;AAElC,UAAA,GAAA,CAAI,OAAO,MAAA,CAAO,IAAA,CAAK,GAAG,MAAA,CAAO,GAAA,CAAI,OAAO,MAAM,CAAA;AAClD,UAAA,OAAO,MAAA,CAAO,MAAA;AAAA,QAClB;AAAA,MACJ;AAEA,MAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,IAAI,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,MAAA,CAAO,MAAM,CAAC,CAAA;AAClF,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,aAAA;AAAA,QACnB;AAAA,OACH,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AArBS,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAsBT,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,OAAO,MAAA,KAAW;AAC7C,QAAA,MAAM,QAAA,GAAW;AAAA,UACb,GAAG,GAAA;AAAA,UACH,MAAA,EAAQ;AAAA,YACJ,GAAG,GAAA,CAAI,MAAA;AAAA,YACP,QAAQ;AAAC,WACb;AAAA,UACA,MAAA,EAAQ;AAAA,SACZ;AACA,QAAA,OAAO;AAAA,UACH,MAAA,EAAQ,MAAM,MAAA,CAAO,WAAA,CAAY;AAAA,YAC7B,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,MAAA,EAAQ;AAAA,WACX,CAAA;AAAA,UACD,GAAA,EAAK;AAAA,SACT;AAAA,MACJ,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,aAAa,CAAA;AAAA,IAC1B,CAAA,MACK;AACD,MAAA,IAAI,KAAA,GAAQ,MAAA;AACZ,MAAA,MAAM,SAAS,EAAC;AAChB,MAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC1B,QAAA,MAAM,QAAA,GAAW;AAAA,UACb,GAAG,GAAA;AAAA,UACH,MAAA,EAAQ;AAAA,YACJ,GAAG,GAAA,CAAI,MAAA;AAAA,YACP,QAAQ;AAAC,WACb;AAAA,UACA,MAAA,EAAQ;AAAA,SACZ;AACA,QAAA,MAAM,MAAA,GAAS,OAAO,UAAA,CAAW;AAAA,UAC7B,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AACD,QAAA,IAAI,MAAA,CAAO,WAAW,OAAA,EAAS;AAC3B,UAAA,OAAO,MAAA;AAAA,QACX,CAAA,MAAA,IACS,MAAA,CAAO,MAAA,KAAW,OAAA,IAAW,CAAC,KAAA,EAAO;AAC1C,UAAA,KAAA,GAAQ,EAAE,MAAA,EAAQ,GAAA,EAAK,QAAA,EAAS;AAAA,QACpC;AACA,QAAA,IAAI,QAAA,CAAS,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ;AAC/B,UAAA,MAAA,CAAO,IAAA,CAAK,QAAA,CAAS,MAAA,CAAO,MAAM,CAAA;AAAA,QACtC;AAAA,MACJ;AACA,MAAA,IAAI,KAAA,EAAO;AACP,QAAA,GAAA,CAAI,OAAO,MAAA,CAAO,IAAA,CAAK,GAAG,KAAA,CAAM,GAAA,CAAI,OAAO,MAAM,CAAA;AACjD,QAAA,OAAO,KAAA,CAAM,MAAA;AAAA,MACjB;AACA,MAAA,MAAM,WAAA,GAAc,OAAO,GAAA,CAAI,CAACE,YAAW,IAAI,QAAA,CAASA,OAAM,CAAC,CAAA;AAC/D,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,aAAA;AAAA,QACnB;AAAA,OACH,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AAAA,EACJ;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,OAAA;AAAA,EACrB;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,KAAA,EAAO,MAAA,KAAW;AACjC,EAAA,OAAO,IAAI,QAAA,CAAS;AAAA,IAChB,OAAA,EAAS,KAAA;AAAA,IACT,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AAQA,IAAM,gBAAA,2BAAoB,IAAA,KAAS;AAC/B,EAAA,IAAI,gBAAgB,OAAA,EAAS;AACzB,IAAA,OAAO,gBAAA,CAAiB,KAAK,MAAM,CAAA;AAAA,EACvC,CAAA,MAAA,IACS,gBAAgB,UAAA,EAAY;AACjC,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,SAAA,EAAW,CAAA;AAAA,EAC5C,CAAA,MAAA,IACS,gBAAgB,UAAA,EAAY;AACjC,IAAA,OAAO,CAAC,KAAK,KAAK,CAAA;AAAA,EACtB,CAAA,MAAA,IACS,gBAAgB,OAAA,EAAS;AAC9B,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EAChB,CAAA,MAAA,IACS,gBAAgB,aAAA,EAAe;AAEpC,IAAA,OAAO,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,EACtC,CAAA,MAAA,IACS,gBAAgB,UAAA,EAAY;AACjC,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,IAAA,CAAK,SAAS,CAAA;AAAA,EAC/C,CAAA,MAAA,IACS,gBAAgB,YAAA,EAAc;AACnC,IAAA,OAAO,CAAC,MAAS,CAAA;AAAA,EACrB,CAAA,MAAA,IACS,gBAAgB,OAAA,EAAS;AAC9B,IAAA,OAAO,CAAC,IAAI,CAAA;AAAA,EAChB,CAAA,MAAA,IACS,gBAAgB,WAAA,EAAa;AAClC,IAAA,OAAO,CAAC,MAAA,EAAW,GAAG,iBAAiB,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzD,CAAA,MAAA,IACS,gBAAgB,WAAA,EAAa;AAClC,IAAA,OAAO,CAAC,IAAA,EAAM,GAAG,iBAAiB,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,EACpD,CAAA,MAAA,IACS,gBAAgB,UAAA,EAAY;AACjC,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,MAAA,EAAQ,CAAA;AAAA,EACzC,CAAA,MAAA,IACS,gBAAgB,WAAA,EAAa;AAClC,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,MAAA,EAAQ,CAAA;AAAA,EACzC,CAAA,MAAA,IACS,gBAAgB,QAAA,EAAU;AAC/B,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,IAAA,CAAK,SAAS,CAAA;AAAA,EAC/C,CAAA,MACK;AACD,IAAA,OAAO,EAAC;AAAA,EACZ;AACJ,CAAA,EA5CyB,kBAAA,CAAA;AA6ClB,IAAM,qBAAA,GAAN,MAAM,sBAAA,SAA8B,OAAA,CAAQ;AAAA,EA92EnD;AA82EmD,IAAA,MAAA,CAAA,IAAA,EAAA,uBAAA,CAAA;AAAA;AAAA,EAC/C,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,MAAA,EAAQ;AACzC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,gBAAgB,IAAA,CAAK,aAAA;AAC3B,IAAA,MAAM,kBAAA,GAAqB,GAAA,CAAI,IAAA,CAAK,aAAa,CAAA;AACjD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,kBAAkB,CAAA;AACrD,IAAA,IAAI,CAAC,MAAA,EAAQ;AACT,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,2BAAA;AAAA,QACnB,SAAS,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,MAAM,CAAA;AAAA,QAC1C,IAAA,EAAM,CAAC,aAAa;AAAA,OACvB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,OAAO,WAAA,CAAY;AAAA,QACtB,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAA;AAAA,IACL,CAAA,MACK;AACD,MAAA,OAAO,OAAO,UAAA,CAAW;AAAA,QACrB,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAA;AAAA,IACL;AAAA,EACJ;AAAA,EACA,IAAI,aAAA,GAAgB;AAChB,IAAA,OAAO,KAAK,IAAA,CAAK,aAAA;AAAA,EACrB;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,OAAA;AAAA,EACrB;AAAA,EACA,IAAI,UAAA,GAAa;AACb,IAAA,OAAO,KAAK,IAAA,CAAK,UAAA;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,MAAA,CAAO,aAAA,EAAe,OAAA,EAAS,MAAA,EAAQ;AAE1C,IAAA,MAAM,UAAA,uBAAiB,GAAA,EAAI;AAE3B,IAAA,KAAA,MAAW,QAAQ,OAAA,EAAS;AACxB,MAAA,MAAM,mBAAA,GAAsB,gBAAA,CAAiB,IAAA,CAAK,KAAA,CAAM,aAAa,CAAC,CAAA;AACtE,MAAA,IAAI,CAAC,oBAAoB,MAAA,EAAQ;AAC7B,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gCAAA,EAAmC,aAAa,CAAA,iDAAA,CAAmD,CAAA;AAAA,MACvH;AACA,MAAA,KAAA,MAAW,SAAS,mBAAA,EAAqB;AACrC,QAAA,IAAI,UAAA,CAAW,GAAA,CAAI,KAAK,CAAA,EAAG;AACvB,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,MAAA,CAAO,aAAa,CAAC,CAAA,qBAAA,EAAwB,MAAA,CAAO,KAAK,CAAC,CAAA,CAAE,CAAA;AAAA,QAC1G;AACA,QAAA,UAAA,CAAW,GAAA,CAAI,OAAO,IAAI,CAAA;AAAA,MAC9B;AAAA,IACJ;AACA,IAAA,OAAO,IAAI,sBAAA,CAAsB;AAAA,MAC7B,UAAU,qBAAA,CAAsB,qBAAA;AAAA,MAChC,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,GAAG,oBAAoB,MAAM;AAAA,KAChC,CAAA;AAAA,EACL;AACJ,CAAA;AACA,SAAS,WAAA,CAAY,GAAG,CAAA,EAAG;AACvB,EAAA,MAAM,KAAA,GAAQ,cAAc,CAAC,CAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,cAAc,CAAC,CAAA;AAC7B,EAAA,IAAI,MAAM,CAAA,EAAG;AACT,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,CAAA,EAAE;AAAA,EAClC,WACS,KAAA,KAAU,aAAA,CAAc,MAAA,IAAU,KAAA,KAAU,cAAc,MAAA,EAAQ;AACvE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,UAAA,CAAW,CAAC,CAAA;AAC/B,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,KAAM,EAAE,CAAA;AAC/E,IAAA,MAAM,MAAA,GAAS,EAAE,GAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAC5B,IAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC1B,MAAA,MAAM,cAAc,WAAA,CAAY,CAAA,CAAE,GAAG,CAAA,EAAG,CAAA,CAAE,GAAG,CAAC,CAAA;AAC9C,MAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACpB,QAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AAAA,MAC1B;AACA,MAAA,MAAA,CAAO,GAAG,IAAI,WAAA,CAAY,IAAA;AAAA,IAC9B;AACA,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EACvC,WACS,KAAA,KAAU,aAAA,CAAc,KAAA,IAAS,KAAA,KAAU,cAAc,KAAA,EAAO;AACrE,IAAA,IAAI,CAAA,CAAE,MAAA,KAAW,CAAA,CAAE,MAAA,EAAQ;AACvB,MAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AAAA,IAC1B;AACA,IAAA,MAAM,WAAW,EAAC;AAClB,IAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,CAAA,CAAE,QAAQ,KAAA,EAAA,EAAS;AAC3C,MAAA,MAAM,KAAA,GAAQ,EAAE,KAAK,CAAA;AACrB,MAAA,MAAM,KAAA,GAAQ,EAAE,KAAK,CAAA;AACrB,MAAA,MAAM,WAAA,GAAc,WAAA,CAAY,KAAA,EAAO,KAAK,CAAA;AAC5C,MAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACpB,QAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AAAA,MAC1B;AACA,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,IAClC;AACA,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EACzC,CAAA,MAAA,IACS,KAAA,KAAU,aAAA,CAAc,IAAA,IAAQ,KAAA,KAAU,cAAc,IAAA,IAAQ,CAAC,CAAA,KAAM,CAAC,CAAA,EAAG;AAChF,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,CAAA,EAAE;AAAA,EAClC,CAAA,MACK;AACD,IAAA,OAAO,EAAE,OAAO,KAAA,EAAM;AAAA,EAC1B;AACJ;AAzCS,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AA0CF,IAAM,eAAA,GAAN,cAA8B,OAAA,CAAQ;AAAA,EAv+E7C;AAu+E6C,IAAA,MAAA,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AAAA,EACzC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,MAAM,YAAA,mBAAe,MAAA,CAAA,CAAC,UAAA,EAAY,WAAA,KAAgB;AAC9C,MAAA,IAAI,SAAA,CAAU,UAAU,CAAA,IAAK,SAAA,CAAU,WAAW,CAAA,EAAG;AACjD,QAAA,OAAO,OAAA;AAAA,MACX;AACA,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,YAAY,KAAK,CAAA;AAC9D,MAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACf,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,MAAM,YAAA,CAAa;AAAA,SACtB,CAAA;AACD,QAAA,OAAO,OAAA;AAAA,MACX;AACA,MAAA,IAAI,OAAA,CAAQ,UAAU,CAAA,IAAK,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC7C,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,OAAO,IAAA,EAAK;AAAA,IACtD,CAAA,EAfqB,cAAA,CAAA;AAgBrB,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,QAAQ,GAAA,CAAI;AAAA,QACf,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY;AAAA,UACvB,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AAAA,QACD,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY;AAAA,UACxB,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX;AAAA,OACJ,CAAA,CAAE,IAAA,CAAK,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,YAAA,CAAa,IAAA,EAAM,KAAK,CAAC,CAAA;AAAA,IACxD,CAAA,MACK;AACD,MAAA,OAAO,YAAA,CAAa,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW;AAAA,QAC1C,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,MAAM,UAAA,CAAW;AAAA,QAC3B,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAC,CAAA;AAAA,IACN;AAAA,EACJ;AACJ,CAAA;AACA,eAAA,CAAgB,MAAA,GAAS,CAAC,IAAA,EAAM,KAAA,EAAO,MAAA,KAAW;AAC9C,EAAA,OAAO,IAAI,eAAA,CAAgB;AAAA,IACvB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,eAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AAEO,IAAM,QAAA,GAAN,MAAM,SAAA,SAAiB,OAAA,CAAQ;AAAA,EA9hFtC;AA8hFsC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,KAAA,EAAO;AACxC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,KAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,IAAI,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,MAAM,MAAA,EAAQ;AAC1C,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,SAAA;AAAA,QACnB,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,QACzB,SAAA,EAAW,IAAA;AAAA,QACX,KAAA,EAAO,KAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACT,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,IAAA,GAAO,KAAK,IAAA,CAAK,IAAA;AACvB,IAAA,IAAI,CAAC,QAAQ,GAAA,CAAI,IAAA,CAAK,SAAS,IAAA,CAAK,IAAA,CAAK,MAAM,MAAA,EAAQ;AACnD,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,OAAA;AAAA,QACnB,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,QACzB,SAAA,EAAW,IAAA;AAAA,QACX,KAAA,EAAO,KAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACT,CAAA;AACD,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACjB;AACA,IAAA,MAAM,KAAA,GAAQ,CAAC,GAAG,GAAA,CAAI,IAAI,CAAA,CACrB,GAAA,CAAI,CAAC,IAAA,EAAM,SAAA,KAAc;AAC1B,MAAA,MAAM,SAAS,IAAA,CAAK,IAAA,CAAK,MAAM,SAAS,CAAA,IAAK,KAAK,IAAA,CAAK,IAAA;AACvD,MAAA,IAAI,CAAC,MAAA;AACD,QAAA,OAAO,IAAA;AACX,MAAA,OAAO,MAAA,CAAO,OAAO,IAAI,kBAAA,CAAmB,KAAK,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,SAAS,CAAC,CAAA;AAAA,IAC/E,CAAC,CAAA,CACI,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAA;AACtB,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,QAAQ,GAAA,CAAI,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,OAAA,KAAY;AACxC,QAAA,OAAO,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,MACjD,CAAC,CAAA;AAAA,IACL,CAAA,MACK;AACD,MAAA,OAAO,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQ,KAAK,CAAA;AAAA,IAC/C;AAAA,EACJ;AAAA,EACA,IAAI,KAAA,GAAQ;AACR,IAAA,OAAO,KAAK,IAAA,CAAK,KAAA;AAAA,EACrB;AAAA,EACA,KAAK,IAAA,EAAM;AACP,IAAA,OAAO,IAAI,SAAA,CAAS;AAAA,MAChB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR;AAAA,KACH,CAAA;AAAA,EACL;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,OAAA,EAAS,MAAA,KAAW;AACnC,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,IAAI,QAAA,CAAS;AAAA,IAChB,KAAA,EAAO,OAAA;AAAA,IACP,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,IAAA,EAAM,IAAA;AAAA,IACN,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,SAAA,GAAN,MAAM,UAAA,SAAkB,OAAA,CAAQ;AAAA,EApmFvC;AAomFuC,IAAA,MAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAAA;AAAA,EACnC,IAAI,SAAA,GAAY;AACZ,IAAA,OAAO,KAAK,IAAA,CAAK,OAAA;AAAA,EACrB;AAAA,EACA,IAAI,WAAA,GAAc;AACd,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,MAAA,EAAQ;AACzC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,MAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,QAAQ,EAAC;AACf,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,CAAK,OAAA;AAC1B,IAAA,MAAM,SAAA,GAAY,KAAK,IAAA,CAAK,SAAA;AAC5B,IAAA,KAAA,MAAW,GAAA,IAAO,IAAI,IAAA,EAAM;AACxB,MAAA,KAAA,CAAM,IAAA,CAAK;AAAA,QACP,GAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,IAAI,kBAAA,CAAmB,KAAK,GAAA,EAAK,GAAA,CAAI,IAAA,EAAM,GAAG,CAAC,CAAA;AAAA,QACnE,KAAA,EAAO,SAAA,CAAU,MAAA,CAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA,EAAG,GAAA,CAAI,IAAA,EAAM,GAAG,CAAC,CAAA;AAAA,QACjF,SAAA,EAAW,OAAO,GAAA,CAAI;AAAA,OACzB,CAAA;AAAA,IACL;AACA,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,WAAA,CAAY,gBAAA,CAAiB,MAAA,EAAQ,KAAK,CAAA;AAAA,IACrD,CAAA,MACK;AACD,MAAA,OAAO,WAAA,CAAY,eAAA,CAAgB,MAAA,EAAQ,KAAK,CAAA;AAAA,IACpD;AAAA,EACJ;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AAAA,EACA,OAAO,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO;AAChC,IAAA,IAAI,kBAAkB,OAAA,EAAS;AAC3B,MAAA,OAAO,IAAI,UAAA,CAAU;AAAA,QACjB,OAAA,EAAS,KAAA;AAAA,QACT,SAAA,EAAW,MAAA;AAAA,QACX,UAAU,qBAAA,CAAsB,SAAA;AAAA,QAChC,GAAG,oBAAoB,KAAK;AAAA,OAC/B,CAAA;AAAA,IACL;AACA,IAAA,OAAO,IAAI,UAAA,CAAU;AAAA,MACjB,OAAA,EAAS,UAAU,MAAA,EAAO;AAAA,MAC1B,SAAA,EAAW,KAAA;AAAA,MACX,UAAU,qBAAA,CAAsB,SAAA;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,KAChC,CAAA;AAAA,EACL;AACJ,CAAA;AACO,IAAM,MAAA,GAAN,cAAqB,OAAA,CAAQ;AAAA,EA1pFpC;AA0pFoC,IAAA,MAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AAAA,EAChC,IAAI,SAAA,GAAY;AACZ,IAAA,OAAO,KAAK,IAAA,CAAK,OAAA;AAAA,EACrB;AAAA,EACA,IAAI,WAAA,GAAc;AACd,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,GAAA,EAAK;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,GAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,CAAK,OAAA;AAC1B,IAAA,MAAM,SAAA,GAAY,KAAK,IAAA,CAAK,SAAA;AAC5B,IAAA,MAAM,KAAA,GAAQ,CAAC,GAAG,GAAA,CAAI,KAAK,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,GAAG,KAAA,KAAU;AAC/D,MAAA,OAAO;AAAA,QACH,GAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,GAAA,EAAK,GAAA,CAAI,IAAA,EAAM,CAAC,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA;AAAA,QAC9E,KAAA,EAAO,SAAA,CAAU,MAAA,CAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,KAAA,EAAO,GAAA,CAAI,IAAA,EAAM,CAAC,KAAA,EAAO,OAAO,CAAC,CAAC;AAAA,OAC1F;AAAA,IACJ,CAAC,CAAA;AACD,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,MAAM,QAAA,uBAAe,GAAA,EAAI;AACzB,MAAA,OAAO,OAAA,CAAQ,OAAA,EAAQ,CAAE,IAAA,CAAK,YAAY;AACtC,QAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,UAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA;AACvB,UAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA;AACzB,UAAA,IAAI,GAAA,CAAI,MAAA,KAAW,SAAA,IAAa,KAAA,CAAM,WAAW,SAAA,EAAW;AACxD,YAAA,OAAO,OAAA;AAAA,UACX;AACA,UAAA,IAAI,GAAA,CAAI,MAAA,KAAW,OAAA,IAAW,KAAA,CAAM,WAAW,OAAA,EAAS;AACpD,YAAA,MAAA,CAAO,KAAA,EAAM;AAAA,UACjB;AACA,UAAA,QAAA,CAAS,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,KAAK,CAAA;AAAA,QACvC;AACA,QAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,QAAA,EAAS;AAAA,MACnD,CAAC,CAAA;AAAA,IACL,CAAA,MACK;AACD,MAAA,MAAM,QAAA,uBAAe,GAAA,EAAI;AACzB,MAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,QAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AACjB,QAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,QAAA,IAAI,GAAA,CAAI,MAAA,KAAW,SAAA,IAAa,KAAA,CAAM,WAAW,SAAA,EAAW;AACxD,UAAA,OAAO,OAAA;AAAA,QACX;AACA,QAAA,IAAI,GAAA,CAAI,MAAA,KAAW,OAAA,IAAW,KAAA,CAAM,WAAW,OAAA,EAAS;AACpD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AACA,QAAA,QAAA,CAAS,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,KAAK,CAAA;AAAA,MACvC;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,QAAA,EAAS;AAAA,IACnD;AAAA,EACJ;AACJ,CAAA;AACA,MAAA,CAAO,MAAA,GAAS,CAAC,OAAA,EAAS,SAAA,EAAW,MAAA,KAAW;AAC5C,EAAA,OAAO,IAAI,MAAA,CAAO;AAAA,IACd,SAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,MAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,MAAA,GAAN,MAAM,OAAA,SAAe,OAAA,CAAQ;AAAA,EA7tFpC;AA6tFoC,IAAA,MAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AAAA,EAChC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,GAAA,EAAK;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,GAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,MAAM,IAAA,CAAK,IAAA;AACjB,IAAA,IAAI,GAAA,CAAI,YAAY,IAAA,EAAM;AACtB,MAAA,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,GAAO,GAAA,CAAI,QAAQ,KAAA,EAAO;AACnC,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,MAAM,YAAA,CAAa,SAAA;AAAA,UACnB,OAAA,EAAS,IAAI,OAAA,CAAQ,KAAA;AAAA,UACrB,IAAA,EAAM,KAAA;AAAA,UACN,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAO,KAAA;AAAA,UACP,OAAA,EAAS,IAAI,OAAA,CAAQ;AAAA,SACxB,CAAA;AACD,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,IAAI,GAAA,CAAI,YAAY,IAAA,EAAM;AACtB,MAAA,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,GAAO,GAAA,CAAI,QAAQ,KAAA,EAAO;AACnC,QAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,UACnB,MAAM,YAAA,CAAa,OAAA;AAAA,UACnB,OAAA,EAAS,IAAI,OAAA,CAAQ,KAAA;AAAA,UACrB,IAAA,EAAM,KAAA;AAAA,UACN,SAAA,EAAW,IAAA;AAAA,UACX,KAAA,EAAO,KAAA;AAAA,UACP,OAAA,EAAS,IAAI,OAAA,CAAQ;AAAA,SACxB,CAAA;AACD,QAAA,MAAA,CAAO,KAAA,EAAM;AAAA,MACjB;AAAA,IACJ;AACA,IAAA,MAAM,SAAA,GAAY,KAAK,IAAA,CAAK,SAAA;AAC5B,IAAA,SAAS,YAAYC,SAAAA,EAAU;AAC3B,MAAA,MAAM,SAAA,uBAAgB,GAAA,EAAI;AAC1B,MAAA,KAAA,MAAW,WAAWA,SAAAA,EAAU;AAC5B,QAAA,IAAI,QAAQ,MAAA,KAAW,SAAA;AACnB,UAAA,OAAO,OAAA;AACX,QAAA,IAAI,QAAQ,MAAA,KAAW,OAAA;AACnB,UAAA,MAAA,CAAO,KAAA,EAAM;AACjB,QAAA,SAAA,CAAU,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,MAC/B;AACA,MAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,SAAA,EAAU;AAAA,IACpD;AAVS,IAAA,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAWT,IAAA,MAAM,QAAA,GAAW,CAAC,GAAG,GAAA,CAAI,KAAK,MAAA,EAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,EAAM,MAAM,SAAA,CAAU,MAAA,CAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,MAAM,GAAA,CAAI,IAAA,EAAM,CAAC,CAAC,CAAC,CAAA;AACzH,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,OAAO,OAAA,CAAQ,IAAI,QAAQ,CAAA,CAAE,KAAK,CAACA,SAAAA,KAAa,WAAA,CAAYA,SAAQ,CAAC,CAAA;AAAA,IACzE,CAAA,MACK;AACD,MAAA,OAAO,YAAY,QAAQ,CAAA;AAAA,IAC/B;AAAA,EACJ;AAAA,EACA,GAAA,CAAI,SAAS,OAAA,EAAS;AAClB,IAAA,OAAO,IAAI,OAAA,CAAO;AAAA,MACd,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,EAAS,SAAS,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAAE,KACnE,CAAA;AAAA,EACL;AAAA,EACA,GAAA,CAAI,SAAS,OAAA,EAAS;AAClB,IAAA,OAAO,IAAI,OAAA,CAAO;AAAA,MACd,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,EAAS,SAAS,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAAE,KACnE,CAAA;AAAA,EACL;AAAA,EACA,IAAA,CAAK,MAAM,OAAA,EAAS;AAChB,IAAA,OAAO,KAAK,GAAA,CAAI,IAAA,EAAM,OAAO,CAAA,CAAE,GAAA,CAAI,MAAM,OAAO,CAAA;AAAA,EACpD;AAAA,EACA,SAAS,OAAA,EAAS;AACd,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAO,CAAA;AAAA,EAC9B;AACJ,CAAA;AACA,MAAA,CAAO,MAAA,GAAS,CAAC,SAAA,EAAW,MAAA,KAAW;AACnC,EAAA,OAAO,IAAI,MAAA,CAAO;AAAA,IACd,SAAA;AAAA,IACA,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,UAAU,qBAAA,CAAsB,MAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,WAAA,GAAN,MAAM,YAAA,SAAoB,OAAA,CAAQ;AAAA,EAnzFzC;AAmzFyC,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrC,WAAA,GAAc;AACV,IAAA,KAAA,CAAM,GAAG,SAAS,CAAA;AAClB,IAAA,IAAA,CAAK,WAAW,IAAA,CAAK,SAAA;AAAA,EACzB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,QAAA,EAAU;AAC3C,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,QAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,SAAS,aAAA,CAAc,MAAM,KAAA,EAAO;AAChC,MAAA,OAAO,SAAA,CAAU;AAAA,QACb,IAAA,EAAM,IAAA;AAAA,QACN,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,WAAW,CAAC,GAAA,CAAI,MAAA,CAAO,kBAAA,EAAoB,IAAI,cAAA,EAAgB,WAAA,EAAY,EAAG,UAAe,EAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAA;AAAA,QAChH,SAAA,EAAW;AAAA,UACP,MAAM,YAAA,CAAa,iBAAA;AAAA,UACnB,cAAA,EAAgB;AAAA;AACpB,OACH,CAAA;AAAA,IACL;AAVS,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAWT,IAAA,SAAS,gBAAA,CAAiB,SAAS,KAAA,EAAO;AACtC,MAAA,OAAO,SAAA,CAAU;AAAA,QACb,IAAA,EAAM,OAAA;AAAA,QACN,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,WAAW,CAAC,GAAA,CAAI,MAAA,CAAO,kBAAA,EAAoB,IAAI,cAAA,EAAgB,WAAA,EAAY,EAAG,UAAe,EAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAA;AAAA,QAChH,SAAA,EAAW;AAAA,UACP,MAAM,YAAA,CAAa,mBAAA;AAAA,UACnB,eAAA,EAAiB;AAAA;AACrB,OACH,CAAA;AAAA,IACL;AAVS,IAAA,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA;AAWT,IAAA,MAAM,MAAA,GAAS,EAAE,QAAA,EAAU,GAAA,CAAI,OAAO,kBAAA,EAAmB;AACzD,IAAA,MAAM,KAAK,GAAA,CAAI,IAAA;AACf,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,OAAA,YAAmB,UAAA,EAAY;AAIzC,MAAA,MAAM,EAAA,GAAK,IAAA;AACX,MAAA,OAAO,EAAA,CAAG,kBAAmB,IAAA,EAAM;AAC/B,QAAA,MAAM,KAAA,GAAQ,IAAI,QAAA,CAAS,EAAE,CAAA;AAC7B,QAAA,MAAM,UAAA,GAAa,MAAM,EAAA,CAAG,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,IAAA,EAAM,MAAM,CAAA,CAAE,KAAA,CAAM,CAAC,CAAA,KAAM;AACxE,UAAA,KAAA,CAAM,QAAA,CAAS,aAAA,CAAc,IAAA,EAAM,CAAC,CAAC,CAAA;AACrC,UAAA,MAAM,KAAA;AAAA,QACV,CAAC,CAAA;AACD,QAAA,MAAM,SAAS,MAAM,OAAA,CAAQ,KAAA,CAAM,EAAA,EAAI,MAAM,UAAU,CAAA;AACvD,QAAA,MAAM,aAAA,GAAgB,MAAM,EAAA,CAAG,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAA,CAC5C,UAAA,CAAW,MAAA,EAAQ,MAAM,CAAA,CACzB,KAAA,CAAM,CAAC,CAAA,KAAM;AACd,UAAA,KAAA,CAAM,QAAA,CAAS,gBAAA,CAAiB,MAAA,EAAQ,CAAC,CAAC,CAAA;AAC1C,UAAA,MAAM,KAAA;AAAA,QACV,CAAC,CAAA;AACD,QAAA,OAAO,aAAA;AAAA,MACX,CAAC,CAAA;AAAA,IACL,CAAA,MACK;AAID,MAAA,MAAM,EAAA,GAAK,IAAA;AACX,MAAA,OAAO,EAAA,CAAG,YAAa,IAAA,EAAM;AACzB,QAAA,MAAM,aAAa,EAAA,CAAG,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAM,MAAM,CAAA;AACtD,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACrB,UAAA,MAAM,IAAI,SAAS,CAAC,aAAA,CAAc,MAAM,UAAA,CAAW,KAAK,CAAC,CAAC,CAAA;AAAA,QAC9D;AACA,QAAA,MAAM,SAAS,OAAA,CAAQ,KAAA,CAAM,EAAA,EAAI,IAAA,EAAM,WAAW,IAAI,CAAA;AACtD,QAAA,MAAM,gBAAgB,EAAA,CAAG,IAAA,CAAK,OAAA,CAAQ,SAAA,CAAU,QAAQ,MAAM,CAAA;AAC9D,QAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AACxB,UAAA,MAAM,IAAI,SAAS,CAAC,gBAAA,CAAiB,QAAQ,aAAA,CAAc,KAAK,CAAC,CAAC,CAAA;AAAA,QACtE;AACA,QAAA,OAAO,aAAA,CAAc,IAAA;AAAA,MACzB,CAAC,CAAA;AAAA,IACL;AAAA,EACJ;AAAA,EACA,UAAA,GAAa;AACT,IAAA,OAAO,KAAK,IAAA,CAAK,IAAA;AAAA,EACrB;AAAA,EACA,UAAA,GAAa;AACT,IAAA,OAAO,KAAK,IAAA,CAAK,OAAA;AAAA,EACrB;AAAA,EACA,QAAQ,KAAA,EAAO;AACX,IAAA,OAAO,IAAI,YAAA,CAAY;AAAA,MACnB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,IAAA,EAAM,SAAS,MAAA,CAAO,KAAK,EAAE,IAAA,CAAK,UAAA,CAAW,QAAQ;AAAA,KACxD,CAAA;AAAA,EACL;AAAA,EACA,QAAQ,UAAA,EAAY;AAChB,IAAA,OAAO,IAAI,YAAA,CAAY;AAAA,MACnB,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,OAAA,EAAS;AAAA,KACZ,CAAA;AAAA,EACL;AAAA,EACA,UAAU,IAAA,EAAM;AACZ,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AACrC,IAAA,OAAO,aAAA;AAAA,EACX;AAAA,EACA,gBAAgB,IAAA,EAAM;AAClB,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AACrC,IAAA,OAAO,aAAA;AAAA,EACX;AAAA,EACA,OAAO,MAAA,CAAO,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ;AACjC,IAAA,OAAO,IAAI,YAAA,CAAY;AAAA,MACnB,IAAA,EAAO,IAAA,GAAO,IAAA,GAAO,QAAA,CAAS,MAAA,CAAO,EAAE,CAAA,CAAE,IAAA,CAAK,UAAA,CAAW,MAAA,EAAQ,CAAA;AAAA,MACjE,OAAA,EAAS,OAAA,IAAW,UAAA,CAAW,MAAA,EAAO;AAAA,MACtC,UAAU,qBAAA,CAAsB,WAAA;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,KAChC,CAAA;AAAA,EACL;AACJ,CAAA;AACO,IAAM,OAAA,GAAN,cAAsB,OAAA,CAAQ;AAAA,EAr6FrC;AAq6FqC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjC,IAAI,MAAA,GAAS;AACT,IAAA,OAAO,IAAA,CAAK,KAAK,MAAA,EAAO;AAAA,EAC5B;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,MAAA,EAAO;AACpC,IAAA,OAAO,UAAA,CAAW,MAAA,CAAO,EAAE,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,EAC5E;AACJ,CAAA;AACA,OAAA,CAAQ,MAAA,GAAS,CAAC,MAAA,EAAQ,MAAA,KAAW;AACjC,EAAA,OAAO,IAAI,OAAA,CAAQ;AAAA,IACf,MAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,OAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EAt7FxC;AAs7FwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,KAAA,CAAM,IAAA,KAAS,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO;AAChC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,UAAU,GAAA,CAAI,IAAA;AAAA,QACd,MAAM,YAAA,CAAa,eAAA;AAAA,QACnB,QAAA,EAAU,KAAK,IAAA,CAAK;AAAA,OACvB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EAChD;AAAA,EACA,IAAI,KAAA,GAAQ;AACR,IAAA,OAAO,KAAK,IAAA,CAAK,KAAA;AAAA,EACrB;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,KAAA,EAAO,MAAA,KAAW;AACnC,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,KAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACA,SAAS,aAAA,CAAc,QAAQ,MAAA,EAAQ;AACnC,EAAA,OAAO,IAAI,OAAA,CAAQ;AAAA,IACf,MAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,OAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL;AANS,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAOF,IAAM,OAAA,GAAN,MAAM,QAAA,SAAgB,OAAA,CAAQ;AAAA,EAr9FrC;AAq9FqC,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AAAA,EACjC,OAAO,KAAA,EAAO;AACV,IAAA,IAAI,OAAO,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAChC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,MAAM,cAAA,GAAiB,KAAK,IAAA,CAAK,MAAA;AACjC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,QAAA,EAAU,IAAA,CAAK,UAAA,CAAW,cAAc,CAAA;AAAA,QACxC,UAAU,GAAA,CAAI,UAAA;AAAA,QACd,MAAM,YAAA,CAAa;AAAA,OACtB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AACd,MAAA,IAAA,CAAK,MAAA,GAAS,IAAI,GAAA,CAAI,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA,IAC1C;AACA,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,MAAM,cAAA,GAAiB,KAAK,IAAA,CAAK,MAAA;AACjC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,UAAU,GAAA,CAAI,IAAA;AAAA,QACd,MAAM,YAAA,CAAa,kBAAA;AAAA,QACnB,OAAA,EAAS;AAAA,OACZ,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA,EACA,IAAI,OAAA,GAAU;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,MAAA;AAAA,EACrB;AAAA,EACA,IAAI,IAAA,GAAO;AACP,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAChC,MAAA,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA;AAAA,IACtB;AACA,IAAA,OAAO,UAAA;AAAA,EACX;AAAA,EACA,IAAI,MAAA,GAAS;AACT,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAChC,MAAA,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA;AAAA,IACtB;AACA,IAAA,OAAO,UAAA;AAAA,EACX;AAAA,EACA,IAAI,IAAA,GAAO;AACP,IAAA,MAAM,aAAa,EAAC;AACpB,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ;AAChC,MAAA,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA;AAAA,IACtB;AACA,IAAA,OAAO,UAAA;AAAA,EACX;AAAA,EACA,OAAA,CAAQ,MAAA,EAAQ,MAAA,GAAS,IAAA,CAAK,IAAA,EAAM;AAChC,IAAA,OAAO,QAAA,CAAQ,OAAO,MAAA,EAAQ;AAAA,MAC1B,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,GAAG;AAAA,KACN,CAAA;AAAA,EACL;AAAA,EACA,OAAA,CAAQ,MAAA,EAAQ,MAAA,GAAS,IAAA,CAAK,IAAA,EAAM;AAChC,IAAA,OAAO,QAAA,CAAQ,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,MAAA,CAAO,QAAA,CAAS,GAAG,CAAC,CAAA,EAAG;AAAA,MACvE,GAAG,IAAA,CAAK,IAAA;AAAA,MACR,GAAG;AAAA,KACN,CAAA;AAAA,EACL;AACJ,CAAA;AACA,OAAA,CAAQ,MAAA,GAAS,aAAA;AACV,IAAM,aAAA,GAAN,cAA4B,OAAA,CAAQ;AAAA,EAthG3C;AAshG2C,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EACvC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,KAAK,MAAM,CAAA;AACjE,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,IAAA,IAAI,IAAI,UAAA,KAAe,aAAA,CAAc,UAAU,GAAA,CAAI,UAAA,KAAe,cAAc,MAAA,EAAQ;AACpF,MAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,gBAAgB,CAAA;AACzD,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,QAAA,EAAU,IAAA,CAAK,UAAA,CAAW,cAAc,CAAA;AAAA,QACxC,UAAU,GAAA,CAAI,UAAA;AAAA,QACd,MAAM,YAAA,CAAa;AAAA,OACtB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AACd,MAAA,IAAA,CAAK,MAAA,GAAS,IAAI,GAAA,CAAI,IAAA,CAAK,mBAAmB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,IACnE;AACA,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AAC9B,MAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,gBAAgB,CAAA;AACzD,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,UAAU,GAAA,CAAI,IAAA;AAAA,QACd,MAAM,YAAA,CAAa,kBAAA;AAAA,QACnB,OAAA,EAAS;AAAA,OACZ,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAA,CAAG,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA,EACA,IAAI,IAAA,GAAO;AACP,IAAA,OAAO,KAAK,IAAA,CAAK,MAAA;AAAA,EACrB;AACJ,CAAA;AACA,aAAA,CAAc,MAAA,GAAS,CAAC,MAAA,EAAQ,MAAA,KAAW;AACvC,EAAA,OAAO,IAAI,aAAA,CAAc;AAAA,IACrB,MAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,aAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EA5jGxC;AA4jGwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,MAAA,GAAS;AACL,IAAA,OAAO,KAAK,IAAA,CAAK,IAAA;AAAA,EACrB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,IAAI,IAAI,UAAA,KAAe,aAAA,CAAc,WAAW,GAAA,CAAI,MAAA,CAAO,UAAU,KAAA,EAAO;AACxE,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,OAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,MAAM,WAAA,GAAc,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,OAAA,GAAU,IAAI,IAAA,GAAO,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA;AAClG,IAAA,OAAO,EAAA,CAAG,WAAA,CAAY,IAAA,CAAK,CAAC,IAAA,KAAS;AACjC,MAAA,OAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,IAAA,EAAM;AAAA,QACnC,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,QAAA,EAAU,IAAI,MAAA,CAAO;AAAA,OACxB,CAAA;AAAA,IACL,CAAC,CAAC,CAAA;AAAA,EACN;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,MAAA,EAAQ,MAAA,KAAW;AACpC,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,IAAA,EAAM,MAAA;AAAA,IACN,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EA1lGxC;AA0lGwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,SAAA,GAAY;AACR,IAAA,OAAO,KAAK,IAAA,CAAK,MAAA;AAAA,EACrB;AAAA,EACA,UAAA,GAAa;AACT,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,QAAA,KAAa,qBAAA,CAAsB,UAAA,GAC1D,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,UAAA,EAAW,GAC5B,KAAK,IAAA,CAAK,MAAA;AAAA,EACpB;AAAA,EACA,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,MAAA,IAAU,IAAA;AACnC,IAAA,MAAM,QAAA,GAAW;AAAA,MACb,QAAA,0BAAW,GAAA,KAAQ;AACf,QAAA,iBAAA,CAAkB,KAAK,GAAG,CAAA;AAC1B,QAAA,IAAI,IAAI,KAAA,EAAO;AACX,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB,CAAA,MACK;AACD,UAAA,MAAA,CAAO,KAAA,EAAM;AAAA,QACjB;AAAA,MACJ,CAAA,EARU,UAAA,CAAA;AAAA,MASV,IAAI,IAAA,GAAO;AACP,QAAA,OAAO,GAAA,CAAI,IAAA;AAAA,MACf;AAAA,KACJ;AACA,IAAA,QAAA,CAAS,QAAA,GAAW,QAAA,CAAS,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA;AACnD,IAAA,IAAI,MAAA,CAAO,SAAS,YAAA,EAAc;AAC9B,MAAA,MAAM,SAAA,GAAY,MAAA,CAAO,SAAA,CAAU,GAAA,CAAI,MAAM,QAAQ,CAAA;AACrD,MAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,QAAA,OAAO,QAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,IAAA,CAAK,OAAOC,UAAAA,KAAc;AACxD,UAAA,IAAI,OAAO,KAAA,KAAU,SAAA;AACjB,YAAA,OAAO,OAAA;AACX,UAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,IAAA,CAAK,OAAO,WAAA,CAAY;AAAA,YAC9C,IAAA,EAAMA,UAAAA;AAAA,YACN,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,MAAA,EAAQ;AAAA,WACX,CAAA;AACD,UAAA,IAAI,OAAO,MAAA,KAAW,SAAA;AAClB,YAAA,OAAO,OAAA;AACX,UAAA,IAAI,OAAO,MAAA,KAAW,OAAA;AAClB,YAAA,OAAO,KAAA,CAAM,OAAO,KAAK,CAAA;AAC7B,UAAA,IAAI,OAAO,KAAA,KAAU,OAAA;AACjB,YAAA,OAAO,KAAA,CAAM,OAAO,KAAK,CAAA;AAC7B,UAAA,OAAO,MAAA;AAAA,QACX,CAAC,CAAA;AAAA,MACL,CAAA,MACK;AACD,QAAA,IAAI,OAAO,KAAA,KAAU,SAAA;AACjB,UAAA,OAAO,OAAA;AACX,QAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW;AAAA,UACvC,IAAA,EAAM,SAAA;AAAA,UACN,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AACD,QAAA,IAAI,OAAO,MAAA,KAAW,SAAA;AAClB,UAAA,OAAO,OAAA;AACX,QAAA,IAAI,OAAO,MAAA,KAAW,OAAA;AAClB,UAAA,OAAO,KAAA,CAAM,OAAO,KAAK,CAAA;AAC7B,QAAA,IAAI,OAAO,KAAA,KAAU,OAAA;AACjB,UAAA,OAAO,KAAA,CAAM,OAAO,KAAK,CAAA;AAC7B,QAAA,OAAO,MAAA;AAAA,MACX;AAAA,IACJ;AACA,IAAA,IAAI,MAAA,CAAO,SAAS,YAAA,EAAc;AAC9B,MAAA,MAAM,iBAAA,2BAAqB,GAAA,KAAQ;AAC/B,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,GAAA,EAAK,QAAQ,CAAA;AAC9C,QAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,UAAA,OAAO,OAAA,CAAQ,QAAQ,MAAM,CAAA;AAAA,QACjC;AACA,QAAA,IAAI,kBAAkB,OAAA,EAAS;AAC3B,UAAA,MAAM,IAAI,MAAM,2FAA2F,CAAA;AAAA,QAC/G;AACA,QAAA,OAAO,GAAA;AAAA,MACX,CAAA,EAT0B,mBAAA,CAAA;AAU1B,MAAA,IAAI,GAAA,CAAI,MAAA,CAAO,KAAA,KAAU,KAAA,EAAO;AAC5B,QAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW;AAAA,UACtC,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AACD,QAAA,IAAI,MAAM,MAAA,KAAW,SAAA;AACjB,UAAA,OAAO,OAAA;AACX,QAAA,IAAI,MAAM,MAAA,KAAW,OAAA;AACjB,UAAA,MAAA,CAAO,KAAA,EAAM;AAEjB,QAAA,iBAAA,CAAkB,MAAM,KAAK,CAAA;AAC7B,QAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,MACtD,CAAA,MACK;AACD,QAAA,OAAO,KAAK,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,EAAE,MAAM,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,GAAA,CAAI,MAAM,MAAA,EAAQ,GAAA,EAAK,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,KAAU;AACjG,UAAA,IAAI,MAAM,MAAA,KAAW,SAAA;AACjB,YAAA,OAAO,OAAA;AACX,UAAA,IAAI,MAAM,MAAA,KAAW,OAAA;AACjB,YAAA,MAAA,CAAO,KAAA,EAAM;AACjB,UAAA,OAAO,iBAAA,CAAkB,KAAA,CAAM,KAAK,CAAA,CAAE,KAAK,MAAM;AAC7C,YAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,UACtD,CAAC,CAAA;AAAA,QACL,CAAC,CAAA;AAAA,MACL;AAAA,IACJ;AACA,IAAA,IAAI,MAAA,CAAO,SAAS,WAAA,EAAa;AAC7B,MAAA,IAAI,GAAA,CAAI,MAAA,CAAO,KAAA,KAAU,KAAA,EAAO;AAC5B,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW;AAAA,UACrC,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AACD,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAA;AACb,UAAA,OAAO,OAAA;AACX,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,IAAA,CAAK,OAAO,QAAQ,CAAA;AACpD,QAAA,IAAI,kBAAkB,OAAA,EAAS;AAC3B,UAAA,MAAM,IAAI,MAAM,CAAA,+FAAA,CAAiG,CAAA;AAAA,QACrH;AACA,QAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,MAAA,EAAO;AAAA,MACjD,CAAA,MACK;AACD,QAAA,OAAO,KAAK,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,EAAE,MAAM,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,GAAA,CAAI,MAAM,MAAA,EAAQ,GAAA,EAAK,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AAChG,UAAA,IAAI,CAAC,QAAQ,IAAI,CAAA;AACb,YAAA,OAAO,OAAA;AACX,UAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,MAAA,CAAO,SAAA,CAAU,IAAA,CAAK,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,MAAY;AAAA,YAC7E,QAAQ,MAAA,CAAO,KAAA;AAAA,YACf,KAAA,EAAO;AAAA,WACX,CAAE,CAAA;AAAA,QACN,CAAC,CAAA;AAAA,MACL;AAAA,IACJ;AACA,IAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,EAC3B;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAA,KAAW;AAC5C,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,MAAA;AAAA,IACA,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,MAAA;AAAA,IACA,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACA,UAAA,CAAW,oBAAA,GAAuB,CAAC,UAAA,EAAY,MAAA,EAAQ,MAAA,KAAW;AAC9D,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,MAAA;AAAA,IACA,MAAA,EAAQ,EAAE,IAAA,EAAM,YAAA,EAAc,WAAW,UAAA,EAAW;AAAA,IACpD,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AAEO,IAAM,WAAA,GAAN,cAA0B,OAAA,CAAQ;AAAA,EA7uGzC;AA6uGyC,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,SAAA,EAAW;AACxC,MAAA,OAAO,GAAG,MAAS,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAK,CAAA;AAAA,EAC3C;AAAA,EACA,MAAA,GAAS;AACL,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AACJ,CAAA;AACA,WAAA,CAAY,MAAA,GAAS,CAAC,IAAA,EAAM,MAAA,KAAW;AACnC,EAAA,OAAO,IAAI,WAAA,CAAY;AAAA,IACnB,SAAA,EAAW,IAAA;AAAA,IACX,UAAU,qBAAA,CAAsB,WAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,WAAA,GAAN,cAA0B,OAAA,CAAQ;AAAA,EAhwGzC;AAgwGyC,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,IAAA,EAAM;AACnC,MAAA,OAAO,GAAG,IAAI,CAAA;AAAA,IAClB;AACA,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAK,CAAA;AAAA,EAC3C;AAAA,EACA,MAAA,GAAS;AACL,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AACJ,CAAA;AACA,WAAA,CAAY,MAAA,GAAS,CAAC,IAAA,EAAM,MAAA,KAAW;AACnC,EAAA,OAAO,IAAI,WAAA,CAAY;AAAA,IACnB,SAAA,EAAW,IAAA;AAAA,IACX,UAAU,qBAAA,CAAsB,WAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EAnxGxC;AAmxGwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,IAAI,OAAO,GAAA,CAAI,IAAA;AACf,IAAA,IAAI,GAAA,CAAI,UAAA,KAAe,aAAA,CAAc,SAAA,EAAW;AAC5C,MAAA,IAAA,GAAO,IAAA,CAAK,KAAK,YAAA,EAAa;AAAA,IAClC;AACA,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO;AAAA,MAC9B,IAAA;AAAA,MACA,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,MAAA,EAAQ;AAAA,KACX,CAAA;AAAA,EACL;AAAA,EACA,aAAA,GAAgB;AACZ,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AACJ,CAAA;AACA,UAAA,CAAW,MAAA,GAAS,CAAC,IAAA,EAAM,MAAA,KAAW;AAClC,EAAA,OAAO,IAAI,UAAA,CAAW;AAAA,IAClB,SAAA,EAAW,IAAA;AAAA,IACX,UAAU,qBAAA,CAAsB,UAAA;AAAA,IAChC,YAAA,EAAc,OAAO,MAAA,CAAO,OAAA,KAAY,aAAa,MAAA,CAAO,OAAA,GAAU,MAAM,MAAA,CAAO,OAAA;AAAA,IACnF,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,QAAA,GAAN,cAAuB,OAAA,CAAQ;AAAA,EA5yGtC;AA4yGsC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAE9C,IAAA,MAAM,MAAA,GAAS;AAAA,MACX,GAAG,GAAA;AAAA,MACH,MAAA,EAAQ;AAAA,QACJ,GAAG,GAAA,CAAI,MAAA;AAAA,QACP,QAAQ;AAAC;AACb,KACJ;AACA,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO;AAAA,MACtC,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAA,EAAQ;AAAA,QACJ,GAAG;AAAA;AACP,KACH,CAAA;AACD,IAAA,IAAI,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjB,MAAA,OAAO,MAAA,CAAO,IAAA,CAAK,CAACH,OAAAA,KAAW;AAC3B,QAAA,OAAO;AAAA,UACH,MAAA,EAAQ,OAAA;AAAA,UACR,KAAA,EAAOA,QAAO,MAAA,KAAW,OAAA,GACnBA,QAAO,KAAA,GACP,IAAA,CAAK,KAAK,UAAA,CAAW;AAAA,YACnB,IAAI,KAAA,GAAQ;AACR,cAAA,OAAO,IAAI,QAAA,CAAS,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAAA,YAC5C,CAAA;AAAA,YACA,OAAO,MAAA,CAAO;AAAA,WACjB;AAAA,SACT;AAAA,MACJ,CAAC,CAAA;AAAA,IACL,CAAA,MACK;AACD,MAAA,OAAO;AAAA,QACH,MAAA,EAAQ,OAAA;AAAA,QACR,KAAA,EAAO,OAAO,MAAA,KAAW,OAAA,GACnB,OAAO,KAAA,GACP,IAAA,CAAK,KAAK,UAAA,CAAW;AAAA,UACnB,IAAI,KAAA,GAAQ;AACR,YAAA,OAAO,IAAI,QAAA,CAAS,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAAA,UAC5C,CAAA;AAAA,UACA,OAAO,MAAA,CAAO;AAAA,SACjB;AAAA,OACT;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,WAAA,GAAc;AACV,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AACJ,CAAA;AACA,QAAA,CAAS,MAAA,GAAS,CAAC,IAAA,EAAM,MAAA,KAAW;AAChC,EAAA,OAAO,IAAI,QAAA,CAAS;AAAA,IAChB,SAAA,EAAW,IAAA;AAAA,IACX,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,UAAA,EAAY,OAAO,MAAA,CAAO,KAAA,KAAU,aAAa,MAAA,CAAO,KAAA,GAAQ,MAAM,MAAA,CAAO,KAAA;AAAA,IAC7E,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,MAAA,GAAN,cAAqB,OAAA,CAAQ;AAAA,EAv2GpC;AAu2GoC,IAAA,MAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AAAA,EAChC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA;AACtC,IAAA,IAAI,UAAA,KAAe,cAAc,GAAA,EAAK;AAClC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA;AACtC,MAAA,iBAAA,CAAkB,GAAA,EAAK;AAAA,QACnB,MAAM,YAAA,CAAa,YAAA;AAAA,QACnB,UAAU,aAAA,CAAc,GAAA;AAAA,QACxB,UAAU,GAAA,CAAI;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,KAAA,EAAO,MAAM,IAAA,EAAK;AAAA,EAChD;AACJ,CAAA;AACA,MAAA,CAAO,MAAA,GAAS,CAAC,MAAA,KAAW;AACxB,EAAA,OAAO,IAAI,MAAA,CAAO;AAAA,IACd,UAAU,qBAAA,CAAsB,MAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AACO,IAAM,KAAA,GAAQ,OAAO,WAAW,CAAA;AAChC,IAAM,UAAA,GAAN,cAAyB,OAAA,CAAQ;AAAA,EA73GxC;AA63GwC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EACpC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAC9C,IAAA,MAAM,OAAO,GAAA,CAAI,IAAA;AACjB,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO;AAAA,MACzB,IAAA;AAAA,MACA,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,MAAA,EAAQ;AAAA,KACX,CAAA;AAAA,EACL;AAAA,EACA,MAAA,GAAS;AACL,IAAA,OAAO,KAAK,IAAA,CAAK,IAAA;AAAA,EACrB;AACJ,CAAA;AACO,IAAM,WAAA,GAAN,MAAM,YAAA,SAAoB,OAAA,CAAQ;AAAA,EA34GzC;AA24GyC,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAI,GAAI,IAAA,CAAK,oBAAoB,KAAK,CAAA;AACtD,IAAA,IAAI,GAAA,CAAI,OAAO,KAAA,EAAO;AAClB,MAAA,MAAM,8BAAc,MAAA,CAAA,YAAY;AAC5B,QAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,GAAG,WAAA,CAAY;AAAA,UAC5C,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AACD,QAAA,IAAI,SAAS,MAAA,KAAW,SAAA;AACpB,UAAA,OAAO,OAAA;AACX,QAAA,IAAI,QAAA,CAAS,WAAW,OAAA,EAAS;AAC7B,UAAA,MAAA,CAAO,KAAA,EAAM;AACb,UAAA,OAAO,KAAA,CAAM,SAAS,KAAK,CAAA;AAAA,QAC/B,CAAA,MACK;AACD,UAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY;AAAA,YAC7B,MAAM,QAAA,CAAS,KAAA;AAAA,YACf,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,MAAA,EAAQ;AAAA,WACX,CAAA;AAAA,QACL;AAAA,MACJ,CAAA,EAnBoB,aAAA,CAAA;AAoBpB,MAAA,OAAO,WAAA,EAAY;AAAA,IACvB,CAAA,MACK;AACD,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,CAAK,EAAA,CAAG,UAAA,CAAW;AAAA,QACrC,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAA;AACD,MAAA,IAAI,SAAS,MAAA,KAAW,SAAA;AACpB,QAAA,OAAO,OAAA;AACX,MAAA,IAAI,QAAA,CAAS,WAAW,OAAA,EAAS;AAC7B,QAAA,MAAA,CAAO,KAAA,EAAM;AACb,QAAA,OAAO;AAAA,UACH,MAAA,EAAQ,OAAA;AAAA,UACR,OAAO,QAAA,CAAS;AAAA,SACpB;AAAA,MACJ,CAAA,MACK;AACD,QAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW;AAAA,UAC5B,MAAM,QAAA,CAAS,KAAA;AAAA,UACf,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,MAAA,EAAQ;AAAA,SACX,CAAA;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,OAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG;AAChB,IAAA,OAAO,IAAI,YAAA,CAAY;AAAA,MACnB,EAAA,EAAI,CAAA;AAAA,MACJ,GAAA,EAAK,CAAA;AAAA,MACL,UAAU,qBAAA,CAAsB;AAAA,KACnC,CAAA;AAAA,EACL;AACJ,CAAA;AACO,IAAM,WAAA,GAAN,cAA0B,OAAA,CAAQ;AAAA,EAr8GzC;AAq8GyC,IAAA,MAAA,CAAA,IAAA,EAAA,aAAA,CAAA;AAAA;AAAA,EACrC,OAAO,KAAA,EAAO;AACV,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,OAAO,KAAK,CAAA;AAC/C,IAAA,MAAM,MAAA,2BAAU,IAAA,KAAS;AACrB,MAAA,IAAI,OAAA,CAAQ,IAAI,CAAA,EAAG;AACf,QAAA,IAAA,CAAK,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,MACzC;AACA,MAAA,OAAO,IAAA;AAAA,IACX,CAAA,EALe,QAAA,CAAA;AAMf,IAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,GAAI,MAAA,CAAO,IAAA,CAAK,CAAC,IAAA,KAAS,MAAA,CAAO,IAAI,CAAC,CAAA,GAAI,MAAA,CAAO,MAAM,CAAA;AAAA,EAChF;AAAA,EACA,MAAA,GAAS;AACL,IAAA,OAAO,KAAK,IAAA,CAAK,SAAA;AAAA,EACrB;AACJ,CAAA;AACA,WAAA,CAAY,MAAA,GAAS,CAAC,IAAA,EAAM,MAAA,KAAW;AACnC,EAAA,OAAO,IAAI,WAAA,CAAY;AAAA,IACnB,SAAA,EAAW,IAAA;AAAA,IACX,UAAU,qBAAA,CAAsB,WAAA;AAAA,IAChC,GAAG,oBAAoB,MAAM;AAAA,GAChC,CAAA;AACL,CAAA;AAQA,SAAS,WAAA,CAAY,QAAQ,IAAA,EAAM;AAC/B,EAAA,MAAM,CAAA,GAAI,OAAO,MAAA,KAAW,UAAA,GAAa,MAAA,CAAO,IAAI,CAAA,GAAI,OAAO,MAAA,KAAW,QAAA,GAAW,EAAE,OAAA,EAAS,QAAO,GAAI,MAAA;AAC3G,EAAA,MAAM,KAAK,OAAO,CAAA,KAAM,WAAW,EAAE,OAAA,EAAS,GAAE,GAAI,CAAA;AACpD,EAAA,OAAO,EAAA;AACX;AAJS,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAKF,SAAS,MAAA,CAAO,KAAA,EAAO,OAAA,GAAU,IAWxC,KAAA,EAAO;AACH,EAAA,IAAI,KAAA;AACA,IAAA,OAAO,OAAO,MAAA,EAAO,CAAE,WAAA,CAAY,CAAC,MAAM,GAAA,KAAQ;AAC9C,MAAA,MAAM,CAAA,GAAI,MAAM,IAAI,CAAA;AACpB,MAAA,IAAI,aAAa,OAAA,EAAS;AACtB,QAAA,OAAO,CAAA,CAAE,IAAA,CAAK,CAACI,EAAAA,KAAM;AACjB,UAAA,IAAI,CAACA,EAAAA,EAAG;AACJ,YAAA,MAAM,MAAA,GAAS,WAAA,CAAY,OAAA,EAAS,IAAI,CAAA;AACxC,YAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,IAAS,KAAA,IAAS,IAAA;AACxC,YAAA,GAAA,CAAI,QAAA,CAAS,EAAE,IAAA,EAAM,QAAA,EAAU,GAAG,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA;AAAA,UAC7D;AAAA,QACJ,CAAC,CAAA;AAAA,MACL;AACA,MAAA,IAAI,CAAC,CAAA,EAAG;AACJ,QAAA,MAAM,MAAA,GAAS,WAAA,CAAY,OAAA,EAAS,IAAI,CAAA;AACxC,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,IAAS,KAAA,IAAS,IAAA;AACxC,QAAA,GAAA,CAAI,QAAA,CAAS,EAAE,IAAA,EAAM,QAAA,EAAU,GAAG,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA;AAAA,MAC7D;AACA,MAAA;AAAA,IACJ,CAAC,CAAA;AACL,EAAA,OAAO,OAAO,MAAA,EAAO;AACzB;AAhCgB,MAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAkCT,IAAM,IAAA,GAAO;AAAA,EAChB,QAAQ,SAAA,CAAU;AACtB,CAAA;AACO,IAAI,qBAAA;AAAA,CACV,SAAUC,sBAAAA,EAAuB;AAC9B,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,QAAQ,CAAA,GAAI,QAAA;AAClC,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,SAAS,CAAA,GAAI,SAAA;AACnC,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,cAAc,CAAA,GAAI,cAAA;AACxC,EAAAA,sBAAAA,CAAsB,SAAS,CAAA,GAAI,SAAA;AACnC,EAAAA,sBAAAA,CAAsB,QAAQ,CAAA,GAAI,QAAA;AAClC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,UAAU,CAAA,GAAI,UAAA;AACpC,EAAAA,sBAAAA,CAAsB,SAAS,CAAA,GAAI,SAAA;AACnC,EAAAA,sBAAAA,CAAsB,UAAU,CAAA,GAAI,UAAA;AACpC,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,UAAU,CAAA,GAAI,UAAA;AACpC,EAAAA,sBAAAA,CAAsB,uBAAuB,CAAA,GAAI,uBAAA;AACjD,EAAAA,sBAAAA,CAAsB,iBAAiB,CAAA,GAAI,iBAAA;AAC3C,EAAAA,sBAAAA,CAAsB,UAAU,CAAA,GAAI,UAAA;AACpC,EAAAA,sBAAAA,CAAsB,WAAW,CAAA,GAAI,WAAA;AACrC,EAAAA,sBAAAA,CAAsB,QAAQ,CAAA,GAAI,QAAA;AAClC,EAAAA,sBAAAA,CAAsB,QAAQ,CAAA,GAAI,QAAA;AAClC,EAAAA,sBAAAA,CAAsB,aAAa,CAAA,GAAI,aAAA;AACvC,EAAAA,sBAAAA,CAAsB,SAAS,CAAA,GAAI,SAAA;AACnC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,SAAS,CAAA,GAAI,SAAA;AACnC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,eAAe,CAAA,GAAI,eAAA;AACzC,EAAAA,sBAAAA,CAAsB,aAAa,CAAA,GAAI,aAAA;AACvC,EAAAA,sBAAAA,CAAsB,aAAa,CAAA,GAAI,aAAA;AACvC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,UAAU,CAAA,GAAI,UAAA;AACpC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,YAAY,CAAA,GAAI,YAAA;AACtC,EAAAA,sBAAAA,CAAsB,aAAa,CAAA,GAAI,aAAA;AACvC,EAAAA,sBAAAA,CAAsB,aAAa,CAAA,GAAI,aAAA;AAC3C,CAAA,EAAG,qBAAA,KAA0B,qBAAA,GAAwB,EAAC,CAAE,CAAA;AAKxD,IAAM,cAAA,mBAAiB,MAAA,CAAA,CAEvB,GAAA,EAAK,MAAA,GAAS;AAAA,EACV,OAAA,EAAS,CAAA,sBAAA,EAAyB,GAAA,CAAI,IAAI,CAAA;AAC9C,CAAA,KAAM,OAAO,CAAC,IAAA,KAAS,IAAA,YAAgB,GAAA,EAAK,MAAM,CAAA,EAJ3B,gBAAA,CAAA;AAKvB,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,UAAU,MAAA,CAAO,MAAA;AACvB,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,cAAc,UAAA,CAAW,MAAA;AAC/B,IAAM,WAAW,OAAA,CAAQ,MAAA;AACzB,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,gBAAgB,YAAA,CAAa,MAAA;AACnC,IAAM,WAAW,OAAA,CAAQ,MAAA;AACzB,IAAM,UAAU,MAAA,CAAO,MAAA;AACvB,IAAM,cAAc,UAAA,CAAW,MAAA;AAC/B,IAAM,YAAY,QAAA,CAAS,MAAA;AAC3B,IAAM,WAAW,OAAA,CAAQ,MAAA;AACzB,IAAM,YAAY,QAAA,CAAS,MAAA;AAC3B,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,mBAAmB,SAAA,CAAU,YAAA;AACnC,IAAM,YAAY,QAAA,CAAS,MAAA;AAC3B,IAAM,yBAAyB,qBAAA,CAAsB,MAAA;AACrD,IAAM,mBAAmB,eAAA,CAAgB,MAAA;AACzC,IAAM,YAAY,QAAA,CAAS,MAAA;AAC3B,IAAM,aAAa,SAAA,CAAU,MAAA;AAC7B,IAAM,UAAU,MAAA,CAAO,MAAA;AACvB,IAAM,UAAU,MAAA,CAAO,MAAA;AACvB,IAAM,eAAe,WAAA,CAAY,MAAA;AACjC,IAAM,WAAW,OAAA,CAAQ,MAAA;AACzB,IAAM,cAAc,UAAA,CAAW,MAAA;AAC/B,IAAM,WAAW,OAAA,CAAQ,MAAA;AACzB,IAAM,iBAAiB,aAAA,CAAc,MAAA;AACrC,IAAM,cAAc,UAAA,CAAW,MAAA;AAC/B,IAAM,cAAc,UAAA,CAAW,MAAA;AAC/B,IAAM,eAAe,WAAA,CAAY,MAAA;AACjC,IAAM,eAAe,WAAA,CAAY,MAAA;AACjC,IAAM,iBAAiB,UAAA,CAAW,oBAAA;AAClC,IAAM,eAAe,WAAA,CAAY,MAAA;AACjC,IAAM,OAAA,mBAAU,MAAA,CAAA,MAAM,UAAA,EAAW,CAAE,UAAS,EAA5B,SAAA,CAAA;AAChB,IAAM,OAAA,mBAAU,MAAA,CAAA,MAAM,UAAA,EAAW,CAAE,UAAS,EAA5B,SAAA,CAAA;AAChB,IAAM,QAAA,mBAAW,MAAA,CAAA,MAAM,WAAA,EAAY,CAAE,UAAS,EAA7B,UAAA,CAAA;AACV,IAAM,MAAA,GAAS;AAAA,EAClB,MAAA,kBAAS,MAAA,EAAA,CAAC,GAAA,KAAQ,SAAA,CAAU,MAAA,CAAO,EAAE,GAAG,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,CAAA,GAAlD,QAAA,CAAA;AAAA,EACT,MAAA,kBAAS,MAAA,EAAA,CAAC,GAAA,KAAQ,SAAA,CAAU,MAAA,CAAO,EAAE,GAAG,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,CAAA,GAAlD,QAAA,CAAA;AAAA,EACT,OAAA,kBAAU,MAAA,EAAA,CAAC,GAAA,KAAQ,UAAA,CAAW,MAAA,CAAO;AAAA,IACjC,GAAG,GAAA;AAAA,IACH,MAAA,EAAQ;AAAA,GACX,CAAA,GAHS,SAAA,CAAA;AAAA,EAIV,MAAA,kBAAS,MAAA,EAAA,CAAC,GAAA,KAAQ,SAAA,CAAU,MAAA,CAAO,EAAE,GAAG,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,CAAA,GAAlD,QAAA,CAAA;AAAA,EACT,IAAA,kBAAO,MAAA,EAAA,CAAC,GAAA,KAAQ,OAAA,CAAQ,MAAA,CAAO,EAAE,GAAG,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,CAAA,GAAhD,MAAA;AACX,CAAA;AAEO,IAAM,KAAA,GAAQ,OAAA;;;AC/lHd,IAAM,sBAAA,GAAyB,iBAAE,MAAA,CAAO;AAAA;AAAA,EAE7C,KAAA,EAAO,gBAAA,CAAE,MAAA,EAAO,CAAE,MAAM,sBAAsB,CAAA;AAAA;AAAA,EAG9C,QAAA,EAAU,iBAAE,MAAA;AACd,CAAC;;;ACHM,IAAM,UAAA,GAAa;AAAA;AAAA,EAExB,eAAA,EAAiB,kBAAA;AAAA;AAAA,EAGjB,qBAAA,EAAuB,yBAAA;AAAA;AAAA,EAGvB,aAAA,EAAe,uBAAA;AAAA;AAAA,EAGf,kBAAA,EAAoB,4BAAA;AAAA;AAAA,EAGpB,YAAA,EAAc,gBAAA;AAAA;AAAA,EAGd,iBAAA,EAAmB;AACrB;AAcO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,GAAA,EAAK,KAAA;AAAA;AAAA,EAGL,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,IAAA,EAAM,MAAA;AAAA;AAAA,EAGN,QAAA,EAAU;AACZ;AAcO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,UAAA,EAAY,YAAA;AAAA;AAAA,EAGZ,UAAA,EAAY,YAAA;AAAA;AAAA,EAGZ,cAAA,EAAgB,gBAAA;AAAA;AAAA,EAGhB,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,QAAA,EAAU,WAAA;AAAA;AAAA,EAGV,SAAA,EAAW,YAAA;AAAA;AAAA,EAGX,eAAA,EAAiB,kBAAA;AAAA;AAAA,EAGjB,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,OAAA,EAAS;AACX;AAiBO,IAAM,qBAAA,GAAwB;AAAA;AAAA,EAEnC,qBAAA,EAAuB,IAAA;AAAA,EACvB,qBAAA,EAAuB,IAAA;AAAA,EACvB,sBAAA,EAAwB,IAAA;AAAA,EACxB,6BAAA,EAA+B,IAAA;AAAA,EAC/B,qBAAA,EAAuB,IAAA;AAAA;AAAA,EAGvB,kBAAA,EAAoB,IAAA;AAAA,EACpB,uBAAA,EAAyB,IAAA;AAAA,EACzB,oBAAA,EAAsB,IAAA;AAAA;AAAA,EAGtB,iBAAA,EAAmB,IAAA;AAAA,EACnB,iBAAA,EAAmB,IAAA;AAAA,EACnB,sBAAA,EAAwB,IAAA;AAAA;AAAA,EAGxB,kBAAA,EAAoB,IAAA;AAAA,EACpB,gBAAA,EAAkB,IAAA;AAAA,EAClB,gBAAA,EAAkB,IAAA;AAAA;AAAA,EAGlB,cAAA,EAAgB,IAAA;AAAA;AAAA,EAGhB,qBAAA,EAAuB,IAAA;AAAA,EACvB,gBAAA,EAAkB,IAAA;AAAA,EAClB,gBAAA,EAAkB,IAAA;AAAA,EAClB,oBAAA,EAAsB,IAAA;AAAA,EACtB,sBAAA,EAAwB,IAAA;AAAA,EACxB,qBAAA,EAAuB,IAAA;AAAA,EACvB,uBAAA,EAAyB,IAAA;AAAA,EACzB,sBAAA,EAAwB,IAAA;AAAA,EACxB,sBAAA,EAAwB;AAC1B;AAiBO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,CAAC,cAAA,CAAe,OAAO,GAAG,SAAA;AAAA,EAC1B,CAAC,cAAA,CAAe,UAAU,GAAG,YAAA;AAAA,EAC7B,CAAC,cAAA,CAAe,cAAc,GAAG,gBAAA;AAAA,EACjC,CAAC,cAAA,CAAe,aAAa,GAAG,eAAA;AAAA,EAChC,CAAC,cAAA,CAAe,SAAS,GAAG,WAAA;AAAA,EAC5B,CAAC,cAAA,CAAe,MAAM,GAAG,QAAA;AAAA,EACzB,CAAC,cAAA,CAAe,OAAO,GAAG,SAAA;AAAA,EAC1B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,MAAM,GAAG,QAAA;AAAA,EACzB,CAAC,cAAA,CAAe,eAAe,GAAG,iBAAA;AAAA,EAClC,CAAC,cAAA,CAAe,KAAK,GAAG,OAAA;AAAA,EACxB,CAAC,cAAA,CAAe,OAAO,GAAG,SAAA;AAAA,EAC1B,CAAC,cAAA,CAAe,KAAK,GAAG,OAAA;AAAA,EACxB,CAAC,cAAA,CAAe,UAAU,GAAG,YAAA;AAAA,EAC7B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,KAAK,GAAG,OAAA;AAAA,EACxB,CAAC,cAAA,CAAe,OAAO,GAAG,SAAA;AAAA,EAC1B,CAAC,cAAA,CAAe,QAAQ,GAAG,UAAA;AAAA,EAC3B,CAAC,cAAA,CAAe,aAAa,GAAG,eAAA;AAAA,EAChC,CAAC,cAAA,CAAe,OAAO,GAAG;AAC5B;AAeO,IAAM,iBAAA,GAAoB;AAAA;AAAA,EAE/B,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,WAAA;AAAA,EACX,YAAA,EAAc,cAAA;AAAA,EACd,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,UAAA,EAAY,YAAA;AAAA,EACZ,UAAA,EAAY,YAAA;AAAA,EACZ,aAAA,EAAe,eAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA;AAAA,EAGjB,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,OAAA;AAAA,EACP,YAAA,EAAc,cAAA;AAAA,EACd,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,cAAA,EAAgB,gBAAA;AAAA,EAChB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,eAAA;AAAA,EACf,kBAAA,EAAoB,oBAAA;AAAA;AAAA,EAGpB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,YAAA,EAAc,cAAA;AAAA,EACd,WAAA,EAAa,aAAA;AAAA,EACb,cAAA,EAAgB,gBAAA;AAAA;AAAA,EAGhB,KAAA,EAAO,OAAA;AAAA,EACP,cAAA,EAAgB,gBAAA;AAAA,EAChB,QAAA,EAAU,UAAA;AAAA,EACV,UAAA,EAAY,YAAA;AAAA;AAAA,EAGZ,aAAA,EAAe,eAAA;AAAA,EACf,cAAA,EAAgB,gBAAA;AAAA,EAChB,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS;AACX;AAeO,IAAM,aAAA,GAAgB;AAAA;AAAA,EAE3B,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,YAAA;AAAA,EACb,SAAA,EAAW,UAAA;AAAA;AAAA,EAGX,OAAA,EAAS,SAAA;AAAA,EACT,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,WAAA,EAAa,YAAA;AAAA,EACb,WAAA,EAAa,YAAA;AAAA;AAAA,EAGb,gBAAA,EAAkB,iBAAA;AAAA;AAAA,EAGlB,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,YAAA,EAAc,aAAA;AAAA,EACd,aAAA,EAAe,cAAA;AAAA;AAAA,EAGf,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,aAAA;AAAA,EACP,SAAA,EAAW,WAAA;AAAA,EACX,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU;AACZ;AAeO,IAAM,oBAAA,GAAuB;AAAA,EAClC,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AACZ;AC9WO,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA,EAGzB,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,qBAAA,EAAuB,uBAAA;AAAA,EACvB,uBAAA,EAAyB,yBAAA;AAAA,EACzB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,0BAAA,EAA4B,4BAAA;AAAA;AAAA,EAG5B,uBAAA,EAAyB,yBAAA;AAAA,EACzB,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,cAAA,EAAgB,gBAAA;AAAA,EAChB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,wBAAA,EAA0B,0BAAA;AAAA;AAAA,EAG1B,mBAAA,EAAqB,qBAAA;AAAA;AAAA,EAGrB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,iBAAA,EAAmB,mBAAA;AAAA;AAAA,EAGnB,qBAAA,EAAuB,uBAAA;AAAA,EACvB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,cAAA,EAAgB,gBAAA;AAAA,EAChB,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,gBAAA,EAAkB,kBAAA;AAAA,EAClB,eAAA,EAAiB,iBAAA;AAAA;AAAA,EAGjB,aAAA,EAAe,eAAA;AAAA,EACf,iBAAA,EAAmB,mBAAA;AAAA,EACnB,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,eAAA,EAAiB,iBAAA;AAAA,EACjB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,eAAA,EAAiB,iBAAA;AAAA,EACjB,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,6BAAA,EAA+B,+BAAA;AAAA;AAAA,EAG/B,YAAA,EAAc,cAAA;AAAA,EACd,qBAAA,EAAuB,uBAAA;AAAA,EACvB,mBAAA,EAAqB,qBAAA;AAAA;AAAA,EAGrB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,oBAAA,EAAsB,sBAAA;AAAA,EACtB,sBAAA,EAAwB,wBAAA;AAAA;AAAA,EAGxB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,YAAA,EAAc,cAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,sBAAA,EAAwB,wBAAA;AAAA;AAAA,EAGxB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,yBAAA,EAA2B,2BAAA;AAAA;AAAA,EAG3B,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,sBAAA,EAAwB,wBAAA;AAAA;AAAA,EAGxB,uBAAA,EAAyB,yBAAA;AAAA,EACzB,yBAAA,EAA2B,2BAAA;AAAA;AAAA,EAG3B,sBAAA,EAAwB,wBAAA;AAAA;AAAA,EAGxB,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,qBAAA,EAAuB,uBAAA;AAAA;AAAA,EAGvB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,eAAA,EAAiB,iBAAA;AAAA,EACjB,sBAAA,EAAwB,wBAAA;AAAA;AAAA,EAGxB,0BAAA,EAA4B,4BAAA;AAAA,EAC5B,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,oBAAA,EAAsB,sBAAA;AAAA,EACtB,oBAAA,EAAsB,sBAAA;AAAA;AAAA,EAGtB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,wBAAA,EAA0B,0BAAA;AAAA;AAAA,EAG1B,qBAAA,EAAuB,uBAAA;AAAA,EACvB,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,qBAAA,EAAuB,uBAAA;AAAA,EACvB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,uBAAA,EAAyB,yBAAA;AAAA;AAAA,EAGzB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,qBAAA,EAAuB,uBAAA;AAAA,EACvB,iBAAA,EAAmB,mBAAA;AAAA;AAAA,EAGnB,wBAAA,EAA0B,0BAAA;AAAA;AAAA,EAG1B,YAAA,EAAc,cAAA;AAAA,EACd,aAAA,EAAe,eAAA;AAAA;AAAA;AAAA,EAIf,iCAAA,EAAmC,mCAAA;AAAA,EACnC,2CAAA,EAA6C,6CAAA;AAAA,EAC7C,gCAAA,EAAkC,kCAAA;AAAA,EAClC,iCAAA,EAAmC,mCAAA;AAAA,EACnC,6BAAA,EAA+B,+BAAA;AAAA,EAC/B,iCAAA,EAAmC,mCAAA;AAAA,EACnC,2CAAA,EAA6C,6CAAA;AAAA,EAC7C,iCAAA,EAAmC,mCAAA;AAAA;AAAA,EAGnC,0BAAA,EAA4B,uCAAA;AAAA,EAC5B,8BAAA,EAAgC,2CAAA;AAAA,EAChC,6BAAA,EAA+B,0CAAA;AAAA,EAC/B,4BAAA,EAA8B,yCAAA;AAAA,EAC9B,mCAAA,EAAqC,wCAAA;AAAA,EACrC,8BAAA,EAAgC,gCAAA;AAAA;AAAA,EAGhC,2BAAA,EAA6B,6BAAA;AAAA;AAAA,EAG7B,uBAAA,EAAyB,yBAAA;AAAA,EACzB,oCAAA,EAAsC,sCAAA;AAAA;AAAA,EAGtC,sCAAA,EAAwC,wCAAA;AAAA,EACxC,sCAAA,EAAwC,wCAAA;AAAA,EACxC,sCAAA,EAAwC,wCAAA;AAAA;AAAA,EAGxC,+BAAA,EAAiC,iCAAA;AAAA,EACjC,mCAAA,EAAqC,qCAAA;AAAA;AAAA,EAGrC,0BAAA,EAA4B,4BAAA;AAAA,EAC5B,kCAAA,EAAoC,oCAAA;AAAA;AAAA,EAGpC,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,4BAAA,EAA8B,oCAAA;AAAA,EAC9B,cAAA,EAAgB;AAClB;AAcO,IAAM,eAAA,GAAkB;AAAA,EAC7B,8BAA8B,WAAA,CAAY,4BAAA;AAAA,EAC1C,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,kBAAkB,WAAA,CAAY,gBAAA;AAAA,EAC9B,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,4BAA4B,WAAA,CAAY,0BAAA;AAAA,EACxC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,gBAAgB,WAAA,CAAY,cAAA;AAAA,EAC5B,oBAAoB,WAAA,CAAY,kBAAA;AAAA,EAChC,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,qBAAqB,WAAA,CAAY,mBAAA;AAAA,EACjC,oBAAoB,WAAA,CAAY,kBAAA;AAAA,EAChC,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,mBAAmB,WAAA,CAAY,qBAAA;AAAA,EAC/B,eAAe,WAAA,CAAY,iBAAA;AAAA,EAC3B,kBAAkB,WAAA,CAAY,gBAAA;AAAA,EAC9B,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,gBAAgB,WAAA,CAAY,cAAA;AAAA,EAC5B,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,kBAAkB,WAAA,CAAY,gBAAA;AAAA,EAC9B,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,eAAe,WAAA,CAAY,aAAA;AAAA,EAC3B,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,oBAAoB,WAAA,CAAY,kBAAA;AAAA,EAChC,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,+BAA+B,WAAA,CAAY,6BAAA;AAAA,EAC3C,cAAc,WAAA,CAAY,YAAA;AAAA,EAC1B,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,qBAAqB,WAAA,CAAY,mBAAA;AAAA,EACjC,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,oBAAoB,WAAA,CAAY,kBAAA;AAAA,EAChC,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,sBAAsB,WAAA,CAAY,oBAAA;AAAA,EAClC,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,sBAAsB,WAAA,CAAY,oBAAA;AAAA,EAClC,cAAc,WAAA,CAAY,YAAA;AAAA,EAC1B,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,kBAAkB,WAAA,CAAY,gBAAA;AAAA,EAC9B,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,SAAS,WAAA,CAAY,OAAA;AAAA,EACrB,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,iBAAiB,WAAA,CAAY,eAAA;AAAA,EAC7B,wBAAwB,WAAA,CAAY,sBAAA;AAAA,EACpC,4BAA4B,WAAA,CAAY,0BAAA;AAAA,EACxC,2BAA2B,WAAA,CAAY,yBAAA;AAAA,EACvC,sBAAsB,WAAA,CAAY,oBAAA;AAAA,EAClC,sBAAsB,WAAA,CAAY,oBAAA;AAAA,EAClC,qBAAqB,WAAA,CAAY,mBAAA;AAAA,EACjC,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,oBAAoB,WAAA,CAAY,kBAAA;AAAA,EAChC,yBAAyB,WAAA,CAAY,uBAAA;AAAA,EACrC,sBAAsB,WAAA,CAAY,oBAAA;AAAA,EAClC,uBAAuB,WAAA,CAAY,qBAAA;AAAA,EACnC,mBAAmB,WAAA,CAAY,iBAAA;AAAA,EAC/B,0BAA0B,WAAA,CAAY,wBAAA;AAAA,EACtC,cAAc,WAAA,CAAY,YAAA;AAAA,EAC1B,eAAe,WAAA,CAAY;AAC7B;AAMO,IAAM,wBAAA,GAA2B;AAAA,EACtC,sBAAsB,WAAA,CAAY,iCAAA;AAAA,EAClC,gCAAgC,WAAA,CAAY,2CAAA;AAAA,EAC5C,qBAAqB,WAAA,CAAY,gCAAA;AAAA,EACjC,sBAAsB,WAAA,CAAY,iCAAA;AAAA,EAClC,kBAAkB,WAAA,CAAY,6BAAA;AAAA,EAC9B,sBAAsB,WAAA,CAAY,iCAAA;AAAA,EAClC,gCAAgC,WAAA,CAAY,2CAAA;AAAA,EAC5C,sBAAsB,WAAA,CAAY,iCAAA;AAAA,EAClC,eAAe,WAAA,CAAY,0BAAA;AAAA,EAC3B,mBAAmB,WAAA,CAAY,8BAAA;AAAA,EAC/B,kBAAkB,WAAA,CAAY,6BAAA;AAAA,EAC9B,iBAAiB,WAAA,CAAY,4BAAA;AAAA,EAC7B,wBAAwB,WAAA,CAAY,mCAAA;AAAA,EACpC,mBAAmB,WAAA,CAAY,8BAAA;AAAA,EAC/B,gBAAgB,WAAA,CAAY,2BAAA;AAAA,EAC5B,YAAY,WAAA,CAAY,uBAAA;AAAA,EACxB,yBAAyB,WAAA,CAAY,oCAAA;AAAA,EACrC,2BAA2B,WAAA,CAAY,sCAAA;AAAA,EACvC,2BAA2B,WAAA,CAAY,sCAAA;AAAA,EACvC,2BAA2B,WAAA,CAAY,sCAAA;AAAA,EACvC,oBAAoB,WAAA,CAAY,+BAAA;AAAA,EAChC,wBAAwB,WAAA,CAAY,mCAAA;AAAA,EACpC,eAAe,WAAA,CAAY,0BAAA;AAAA,EAC3B,uBAAuB,WAAA,CAAY;AACrC;AAkBO,IAAM,iBAAA,GAAsC;AAAA;AAAA;AAAA,EAIjD,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQC,kBAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,cAAc,GAAG;AAAA,IAC5B,MAAM,WAAA,CAAY,cAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,uBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,cAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,mBAAmB,GAAG;AAAA,IACjC,MAAM,WAAA,CAAY,mBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,iBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,SAAA;AAAA,IACzB,WAAA,EAAa,4BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,QAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,gBAAgB,GAAG;AAAA,IAC9B,MAAM,WAAA,CAAY,gBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,yBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,0CAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,cAAc,GAAG;AAAA,IAC5B,MAAM,WAAA,CAAY,cAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,gBAAgB,GAAG;AAAA,IAC9B,MAAM,WAAA,CAAY,gBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,oCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,mCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,sBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,6BAA6B,GAAG;AAAA,IAC3C,MAAM,WAAA,CAAY,6BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,sCAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,YAAY,GAAG;AAAA,IAC1B,MAAM,WAAA,CAAY,YAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,qBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,mBAAmB,GAAG;AAAA,IACjC,MAAM,WAAA,CAAY,mBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,mCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,oBAAoB,GAAG;AAAA,IAClC,MAAM,WAAA,CAAY,oBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,oBAAoB,GAAG;AAAA,IAClC,MAAM,WAAA,CAAY,oBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,YAAY,GAAG;AAAA,IAC1B,MAAM,WAAA,CAAY,YAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,qBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,gBAAgB,GAAG;AAAA,IAC9B,MAAM,WAAA,CAAY,gBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,yBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,QAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,QAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,OAAO,GAAG;AAAA,IACrB,MAAM,WAAA,CAAY,OAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,eAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,QAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,kBAAkB,GAAG;AAAA,IAChC,MAAM,WAAA,CAAY,kBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,WAAA,EAAa,2BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,oBAAoB,GAAG;AAAA,IAClC,MAAM,WAAA,CAAY,oBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,iBAAiB,GAAG;AAAA,IAC/B,MAAM,WAAA,CAAY,iBAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,0BAAA;AAAA,IACb,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,eAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,0BAA0B,GAAG;AAAA,IACxC,MAAM,WAAA,CAAY,0BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,mCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,yBAAyB,GAAG;AAAA,IACvC,MAAM,WAAA,CAAY,yBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,oBAAoB,GAAG;AAAA,IAClC,MAAM,WAAA,CAAY,oBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,oBAAoB,GAAG;AAAA,IAClC,MAAM,WAAA,CAAY,oBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,6BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,mBAAmB,GAAG;AAAA,IACjC,MAAM,WAAA,CAAY,mBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,4BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,QAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,eAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,eAAe,GAAG;AAAA,IAC7B,MAAM,WAAA,CAAY,eAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,wBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,sBAAsB,GAAG;AAAA,IACpC,MAAM,WAAA,CAAY,sBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,WAAA,EAAa,+BAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,0BAA0B,GAAG;AAAA,IACxC,MAAM,WAAA,CAAY,0BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,mCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,YAAY,GAAG;AAAA,IAC1B,MAAM,WAAA,CAAY,YAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,qBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,4BAA4B,GAAG;AAAA,IAC1C,MAAM,WAAA,CAAY,4BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,qCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,qBAAqB,GAAG;AAAA,IACnC,MAAM,WAAA,CAAY,qBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,8BAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,gBAAgB,GAAG;AAAA,IAC9B,MAAM,WAAA,CAAY,gBAAA;AAAA,IAClB,MAAA,EAAQ,CAAA;AAAA,IACR,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,WAAA,EAAa,yBAAA;AAAA,IACb,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,WAAA,EAAa,iCAAA;AAAA,IACb,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,wBAAwB,GAAG;AAAA,IACtC,MAAM,WAAA,CAAY,wBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,kCAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,gCAAA;AAAA,IACb,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,aAAa,GAAG;AAAA,IAC3B,MAAM,WAAA,CAAY,aAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,WAAA,EAAa,gBAAA;AAAA,IACb,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACb;AAAA;AAAA;AAAA,EAKA,CAAC,WAAA,CAAY,iCAAiC,GAAG;AAAA,IAC/C,MAAM,WAAA,CAAY,iCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,2CAA2C,GAAG;AAAA,IACzD,MAAM,WAAA,CAAY,2CAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,gCAAgC,GAAG;AAAA,IAC9C,MAAM,WAAA,CAAY,gCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,iBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,SAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,iCAAiC,GAAG;AAAA,IAC/C,MAAM,WAAA,CAAY,iCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,6BAA6B,GAAG;AAAA,IAC3C,MAAM,WAAA,CAAY,6BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,eAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,iCAAiC,GAAG;AAAA,IAC/C,MAAM,WAAA,CAAY,iCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,2CAA2C,GAAG;AAAA,IACzD,MAAM,WAAA,CAAY,2CAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,eAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,iCAAiC,GAAG;AAAA,IAC/C,MAAM,WAAA,CAAY,iCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,0BAA0B,GAAG;AAAA,IACxC,MAAM,WAAA,CAAY,0BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,8BAA8B,GAAG;AAAA,IAC5C,MAAM,WAAA,CAAY,8BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,6BAA6B,GAAG;AAAA,IAC3C,MAAM,WAAA,CAAY,6BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,4BAA4B,GAAG;AAAA,IAC1C,MAAM,WAAA,CAAY,4BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,mCAAmC,GAAG;AAAA,IACjD,MAAM,WAAA,CAAY,mCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,8BAA8B,GAAG;AAAA,IAC5C,MAAM,WAAA,CAAY,8BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,2BAA2B,GAAG;AAAA,IACzC,MAAM,WAAA,CAAY,2BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,EAAA;AAAA,IACpB,UAAU,cAAA,CAAe,UAAA;AAAA,IACzB,UAAU,cAAA,CAAe,GAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,uBAAuB,GAAG;AAAA,IACrC,MAAM,WAAA,CAAY,uBAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,mBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,oCAAoC,GAAG;AAAA,IAClD,MAAM,WAAA,CAAY,oCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,KAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,sCAAsC,GAAG;AAAA,IACpD,MAAM,WAAA,CAAY,sCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,YAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,sCAAsC,GAAG;AAAA,IACpD,MAAM,WAAA,CAAY,sCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,WAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,sCAAsC,GAAG;AAAA,IACpD,MAAM,WAAA,CAAY,sCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,+BAA+B,GAAG;AAAA,IAC7C,MAAM,WAAA,CAAY,+BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,SAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,mCAAmC,GAAG;AAAA,IACjD,MAAM,WAAA,CAAY,mCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,0BAA0B,GAAG;AAAA,IACxC,MAAM,WAAA,CAAY,0BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,OAAA;AAAA,IACzB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,kCAAkC,GAAG;AAAA,IAChD,MAAM,WAAA,CAAY,kCAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,CAAC,WAAA,CAAY,4BAA4B,GAAG;AAAA,IAC1C,MAAM,WAAA,CAAY,4BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,UAAU,cAAA,CAAe,QAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,4BAA4B,GAAG;AAAA,IAC1C,MAAM,WAAA,CAAY,4BAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,aAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACf;AAAA,EACA,CAAC,WAAA,CAAY,cAAc,GAAG;AAAA,IAC5B,MAAM,WAAA,CAAY,cAAA;AAAA,IAClB,QAAQA,kBAAA,CAAY,qBAAA;AAAA,IACpB,UAAU,cAAA,CAAe,MAAA;AAAA,IACzB,UAAU,cAAA,CAAe,IAAA;AAAA,IACzB,SAAA,EAAW,KAAA;AAAA,IACX,WAAA,EAAa;AAAA;AAEjB;;;AC1tCO,IAAM,UAAA,GAAa;AAAA;AAAA,EAExB,OAAA,EAAS;AACX;AAaO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,GAAA,EAAK,KAAA;AAAA;AAAA,EAEL,MAAA,EAAQ,QAAA;AAAA;AAAA,EAER,IAAA,EAAM,MAAA;AAAA;AAAA,EAEN,QAAA,EAAU;AACZ;AAkBO,IAAM,YAAA,GAAe;AAAA;AAAA,EAE1B,OAAA,EAAS,SAAA;AAAA;AAAA,EAET,UAAA,EAAY,YAAA;AAAA;AAAA,EAEZ,SAAA,EAAW,WAAA;AAAA;AAAA,EAEX,MAAA,EAAQ,QAAA;AAAA;AAAA,EAER,QAAA,EAAU;AACZ;;;ACpDO,IAAM,QAAA,GAAW;AAAA;AAAA,EAEtB,eAAA,EAAiB,CAAA;AAAA;AAAA,EAGjB,eAAA,EAAiB,QAAA;AAAA;AAAA,EAGjB,QAAA,EAAU,EAAA;AAAA;AAAA,EAGV,eAAA,EAAiB,QAAA;AAAA;AAAA,EAGjB,QAAA,EAAU,KAAA;AAAA;AAAA,EAGV,eAAA,EAAiB,MAAA;AAAA;AAAA,EAGjB,OAAA,EAAS,GAAA;AAAA;AAAA,EAGT,WAAA,EAAa,KAAA;AAAA;AAAA,EAGb,IAAA,EAAM,IAAA;AAAA;AAAA,EAGN,WAAA,EAAa;AACf;;;ACjCO,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,kBAAA,yBAAA,CAAA,GAA0B,2BAAA;AAC1B,EAAAA,kBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAC3B,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,kBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,kBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,kBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,kBAAA,oBAAA,CAAA,GAAqB,sBAAA;AACrB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,wBAAA;AAGvB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,wBAAA;AACxB,EAAAA,kBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,kBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,kBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAC3B,EAAAA,kBAAA,wBAAA,CAAA,GAAyB,0BAAA;AAGzB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,wBAAA;AACvB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,4BAAA,CAAA,GAA6B,8BAAA;AAC7B,EAAAA,kBAAA,0BAAA,CAAA,GAA2B,4BAAA;AAG3B,EAAAA,kBAAA,yBAAA,CAAA,GAA0B,2BAAA;AAC1B,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,uBAAA,CAAA,GAAwB,yBAAA;AACxB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,kBAAA,2BAAA,CAAA,GAA4B,6BAAA;AAxFlB,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AA8FL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,sBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,sBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,sBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,sBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,OAAA,CAAA,GAAQ,OAAA;AATE,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAeL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,sBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,sBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,sBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,sBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,sBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,sBAAA,oBAAA,CAAA,GAAqB,qBAAA;AACrB,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,sBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAVR,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;;;ACpHL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AATA,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;;;ACAL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AAEL,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,qBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,qBAAA,OAAA,CAAA,GAAQ,OAAA;AAGR,EAAAA,qBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,qBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,qBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,qBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,qBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,qBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,qBAAA,WAAA,CAAA,GAAY,YAAA;AAGZ,EAAAA,qBAAA,cAAA,CAAA,GAAe,eAAA;AAtBL,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AA4BL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,eAAA,mBAAA,CAAA,GAAoB,qBAAA;AAGpB,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,eAAA,iBAAA,CAAA,GAAkB,mBAAA;AAClB,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,eAAA,kBAAA,CAAA,GAAmB,oBAAA;AAGnB,EAAAA,eAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,eAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,eAAA,YAAA,CAAA,GAAa,aAAA;AA5BH,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAkCL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AAEL,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AAGb,EAAAA,eAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,eAAA,sBAAA,CAAA,GAAuB,uBAAA;AACvB,EAAAA,eAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,mBAAA,CAAA,GAAoB,oBAAA;AAGpB,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,oBAAA,CAAA,GAAqB,qBAAA;AAGrB,EAAAA,eAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AAjCD,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAuCL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,iBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,iBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,iBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,iBAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,iBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,iBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,iBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,UAAA,CAAA,GAAW,UAAA;AAbD,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAmBL,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,UAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,UAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,UAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,UAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,UAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,UAAA,QAAA,CAAA,GAAS,QAAA;AAPC,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAaL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,aAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,aAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,aAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,aAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,aAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,aAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,aAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,aAAA,iBAAA,CAAA,GAAkB,kBAAA;AAVR,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;ACrIL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAGlB,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,oBAAA,uBAAA,CAAA,GAAwB,yBAAA;AAGxB,EAAAA,oBAAA,qBAAA,CAAA,GAAsB,sBAAA;AAGtB,EAAAA,oBAAA,oBAAA,CAAA,GAAqB,qBAAA;AAGrB,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,qBAAA;AApBV,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;;;ACAL,IAAK,wBAAA,qBAAAC,yBAAAA,KAAL;AAEL,EAAAA,0BAAA,YAAA,CAAA,GAAa,YAAA;AAGb,EAAAA,0BAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,0BAAA,cAAA,CAAA,GAAe,cAAA;AAGf,EAAAA,0BAAA,UAAA,CAAA,GAAW,UAAA;AAXD,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA;AAiBL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,kBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,kBAAA,cAAA,CAAA,GAAe,eAAA;AAGf,EAAAA,kBAAA,YAAA,CAAA,GAAa,YAAA;AAdH,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAoBL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,qBAAA,QAAA,CAAA,GAAS,SAAA;AACT,EAAAA,qBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,qBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,qBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,qBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,qBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,qBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,qBAAA,cAAA,CAAA,GAAe,eAAA;AARL,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AAcL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AAEL,EAAAA,uBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,uBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,uBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,uBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AAdC,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AAoBL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,aAAA,CAAA,GAAc,cAAA;AACd,EAAAA,uBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,uBAAA,MAAA,CAAA,GAAO,MAAA;AAPG,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AAaL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AAEL,EAAAA,iBAAA,eAAA,CAAA,GAAgB,gBAAA;AAGhB,EAAAA,iBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,iBAAA,kBAAA,CAAA,GAAmB,mBAAA;AAGnB,EAAAA,iBAAA,UAAA,CAAA,GAAW,UAAA;AAGX,EAAAA,iBAAA,gBAAA,CAAA,GAAiB,iBAAA;AAGjB,EAAAA,iBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AApBC,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;;;ACvFL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,oBAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,oBAAA,YAAA,CAAA,GAAa,YAAA;AAHH,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AASL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,QAAA,CAAA,GAAS,SAAA;AACT,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AARL,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAcL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AACL,EAAAA,2BAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,uBAAA;AACtB,EAAAA,2BAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,2BAAA,qBAAA,CAAA,GAAsB,sBAAA;AACtB,EAAAA,2BAAA,uBAAA,CAAA,GAAwB,wBAAA;AANd,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;AAYL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,sBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,sBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,sBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,sBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,sBAAA,cAAA,CAAA,GAAe,eAAA;AANL,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAYL,IAAK,2BAAA,qBAAAC,4BAAAA,KAAL;AACL,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,6BAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,6BAAA,iBAAA,CAAA,GAAkB,kBAAA;AALR,EAAA,OAAAA,4BAAAA;AAAA,CAAA,EAAA,2BAAA,IAAA,EAAA;AAWL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AACL,EAAAA,wBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,wBAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,wBAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,wBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,wBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,wBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,wBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,wBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,wBAAA,UAAA,CAAA,GAAW,UAAA;AAfD,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA;;;AC7CL,IAAM,sBAAA,GAAyB;AAAA;AAAA,EAEpC,OAAA,EAAS,SAAA;AAAA;AAAA,EAGT,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,UAAA,EAAY,WAAA;AAAA;AAAA,EAGZ,QAAA,EAAU,SAAA;AAAA;AAAA,EAGV,SAAA,EAAW;AACb;AAMO,IAAM,qBAAA,GAAwB;AAAA,EACnC,KAAA,EAAO,OAAA;AAAA,EACP,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AACR;AAMO,IAAM,uBAAA,GAA0B;AAAA;AAAA,EAErC,aAAA,EAAe,eAAA;AAAA;AAAA,EAGf,SAAA,EAAW,WAAA;AAAA;AAAA,EAGX,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,WAAA,EAAa;AACf;AAKO,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,kBAAA,UAAA,CAAA,GAAW,WAAA;AACX,EAAAA,kBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAUL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AAEL,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAGV,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,oBAAA,cAAA,CAAA,GAAe,cAAA;AAGf,EAAAA,oBAAA,cAAA,CAAA,GAAe,eAAA;AACf,EAAAA,oBAAA,WAAA,CAAA,GAAY,YAAA;AAGZ,EAAAA,oBAAA,eAAA,CAAA,GAAgB,gBAAA;AAChB,EAAAA,oBAAA,YAAA,CAAA,GAAa,aAAA;AAGb,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AAxBA,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AA8BL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AAEL,EAAAA,2BAAA,YAAA,CAAA,GAAa,aAAA;AAEb,EAAAA,2BAAA,YAAA,CAAA,GAAa,aAAA;AAEb,EAAAA,2BAAA,MAAA,CAAA,GAAO,MAAA;AANG,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA;AAYL,IAAM,UAAA,GAAa;AAAA;AAAA,EAExB,GAAA,EAAK,iBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,IAAA,EAAM,yEAAA;AAAA,EACN,GAAA,EAAK,0BAAA;AAAA,EACL,IAAA,EAAM,mEAAA;AAAA,EACN,GAAA,EAAK,+BAAA;AAAA,EACL,IAAA,EAAM,2EAAA;AAAA,EACN,GAAA,EAAK,YAAA;AAAA,EACL,GAAA,EAAK,UAAA;AAAA;AAAA,EAGL,GAAA,EAAK,WAAA;AAAA,EACL,GAAA,EAAK,YAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA,EACN,GAAA,EAAK,WAAA;AAAA,EACL,GAAA,EAAK,eAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA;AAAA,EAGN,GAAA,EAAK,iBAAA;AAAA,EACL,GAAA,EAAK,8BAAA;AAAA,EACL,GAAA,EAAK,mBAAA;AAAA,EACL,IAAA,EAAM,kBAAA;AAAA;AAAA,EAGN,IAAA,EAAM,kBAAA;AAAA,EACN,GAAA,EAAK;AACP;AAKO,IAAM,eAAA,GAAkB;AAAA;AAAA,EAE7B,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA;AAAA,EAGL,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,IAAA,EAAM,OAAA;AAAA;AAAA,EAGN,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,GAAA,EAAK,MAAA;AAAA,EACL,EAAA,EAAI,KAAA;AAAA,EACJ,IAAA,EAAM,OAAA;AAAA;AAAA,EAGN,IAAA,EAAM,OAAA;AAAA,EACN,GAAA,EAAK;AACP;;;ACvKA,IAAM,gBAAA,GAAmB,GAAA;AACzB,IAAM,kBAAA,GAAqB,GAAA;AAC3B,IAAM,sBAAA,GAAyB,GAAA;AAC/B,IAAM,uBAAA,GAA0B,GAAA;AAQzB,IAAM,cAAc,gBAAA,CACxB,MAAA,EAAO,CACP,KAAA,CAAM,8BAA8B,CAAA,CACpC,GAAA,CAAI,gBAAA,EAAkB,8CAA8C,EACpE,SAAA,CAAU,CAAA,GAAA,KAAO,IAAI,IAAA,EAAK,CAAE,aAAa;AAQrC,IAAM,WAAA,GAAc,iBACxB,MAAA,EAAO,CACP,MAAM,oBAAA,EAAsB,8CAA8C,CAAA,CAC1E,QAAA,CAAS,8BAA8B;AAOnC,IAAM,YAAA,GAAe,gBAAA,CACzB,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,qBAAqB,CAAA,CAC5B,GAAA,CAAI,kBAAA,EAAoB,wCAAwC;AAQ5D,IAAM,mBAAmB,gBAAA,CAC7B,MAAA,GACA,GAAA,CAAI,CAAA,EAAG,yBAAyB,CAAA,CAChC,KAAA;AAAA,EACC,eAAA;AAAA,EACA;AACF,CAAA,CACC,GAAA,CAAI,wBAAwB,4CAA4C;AAQpE,IAAM,YAAA,GAAe,iBACzB,MAAA,EAAO,CACP,MAAM,wBAAA,EAA0B,gDAAgD,CAAA,CAChF,QAAA,CAAS,4BAA4B;AAQjC,IAAM,0BAAA,GAA6B,iBACvC,IAAA,CAAK;AAAA,EACJ,uBAAA,CAAwB,aAAA;AAAA,EACxB,uBAAA,CAAwB,SAAA;AAAA,EACxB,uBAAA,CAAwB,MAAA;AAAA,EACxB,uBAAA,CAAwB,MAAA;AAAA,EACxB,uBAAA,CAAwB;AAC1B,CAAU,EACT,OAAA,CAAQ,uBAAA,CAAwB,aAAa,CAAA,CAC7C,SAAS,2DAA2D;AAKhE,IAAM,sBAAsB,gBAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,QAAA,EAAU,KAAK,CAAC;AAO5D,IAAM,mBAAA,GAAsB,iBAChC,MAAA,EAAO,CACP,KAAK,wCAAwC,CAAA,CAC7C,SAAS,wBAAwB;AAQ7B,IAAM,kBAAA,GAAqB,gBAAA,CAAE,MAAA,CAAO,gBAAA,CAAE,MAAA,IAAU,gBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAO7D,IAAM,iBAAA,GAAoB,gBAAA,CAC9B,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,0BAA0B,CAAA,CACjC,GAAA,CAAI,uBAAA,EAAyB,6CAA6C;;;ACrHtE,IAAM,gBAAA,GAAmB;AAAA,EAC9B,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,YAAA,EAAc,cAAA;AAAA,EACd,aAAA,EAAe;AACjB;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,OAAA,EAAS,iBAAA;AAAA,EACT,QAAA,EAAU,kBAAA;AAAA,EACV,QAAA,EAAU,kBAAA;AAAA,EACV,QAAA,EAAU,kBAAA;AAAA,EACV,OAAA,EAAS,iBAAA;AAAA,EACT,MAAA,EAAQ,gBAAA;AAAA,EACR,QAAA,EAAU,kBAAA;AAAA,EACV,SAAA,EAAW,mBAAA;AAAA,EACX,MAAA,EAAQ,gBAAA;AAAA,EACR,SAAA,EAAW,mBAAA;AAAA,EACX,UAAA,EAAY,oBAAA;AAAA;AAAA,EAEZ,GAAA,EAAK;AACP;AAKO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAA,EAAgB,yBAAA;AAAA,EAChB,WAAA,EAAa,qBAAA;AAAA,EACb,eAAA,EAAiB,yBAAA;AAAA,EACjB,eAAA,EAAiB,yBAAA;AAAA,EACjB,eAAA,EAAiB,yBAAA;AAAA,EACjB,cAAA,EAAgB,wBAAA;AAAA,EAChB,cAAA,EAAgB,wBAAA;AAAA,EAChB,aAAA,EAAe,uBAAA;AAAA,EACf,cAAA,EAAgB,wBAAA;AAAA,EAChB,aAAA,EAAe,uBAAA;AAAA;AAAA,EAEf,GAAA,EAAK;AACP;AAKO,IAAM,YAAA,GAAe;AAAA,EAC1B,aAAA,EAAe,gBAAA;AAAA,EACf,gBAAA,EAAkB,mBAAA;AAAA,EAClB,oBAAA,EAAsB,uBAAA;AAAA,EACtB,mBAAA,EAAqB,sBAAA;AAAA,EACrB,gBAAA,EAAkB,mBAAA;AAAA,EAClB,YAAA,EAAc,eAAA;AAAA,EACd,YAAA,EAAc,eAAA;AAAA,EACd,aAAA,EAAe,gBAAA;AAAA,EACf,cAAA,EAAgB,iBAAA;AAAA,EAChB,WAAA,EAAa,cAAA;AAAA,EACb,aAAA,EAAe,gBAAA;AAAA,EACf,WAAA,EAAa,cAAA;AAAA,EACb,cAAA,EAAgB,iBAAA;AAAA,EAChB,cAAA,EAAgB,iBAAA;AAAA,EAChB,eAAA,EAAiB,kBAAA;AAAA,EACjB,sBAAA,EAAwB,yBAAA;AAAA,EACxB,aAAA,EAAe,gBAAA;AAAA,EACf,aAAA,EAAe,gBAAA;AAAA;AAAA,EAEf,GAAA,EAAK;AACP;AA0BO,IAAM,cAAA,GAAiB;AAAA,EAC5B,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA;AAAA,EACR,SAAA,EAAW,SAAA;AAAA;AAAA,EACX,OAAA,EAAS;AAAA;AACX;AAMO,IAAM,YAAA,GAAe;AAAA,EAC1B,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe,MAAA;AAAA,EACf,cAAA,CAAe;AACjB;AAMO,IAAM,2BAAA,GAA8B,CAAC,GAAG,YAAA,EAAc,WAAoB;AAK1E,IAAM,YAAA,GAAe;AAAA,EAC1B,eAAA,EAAiB,uBAAA;AAAA,EACjB,aAAA,EAAe,qBAAA;AAAA,EACf,eAAA,EAAiB,uBAAA;AAAA,EACjB,gBAAA,EAAkB,wBAAA;AAAA,EAClB,qBAAA,EAAuB,6BAAA;AAAA,EACvB,oBAAA,EAAsB,4BAAA;AAAA,EACtB,UAAA,EAAY,YAAA;AAAA,EACZ,kBAAA,EAAoB,0BAAA;AAAA,EACpB,gBAAA,EAAkB,wBAAA;AAAA,EAClB,cAAA,EAAgB,sBAAA;AAAA,EAChB,eAAA,EAAiB,uBAAA;AAAA,EACjB,eAAA,EAAiB,uBAAA;AAAA;AAAA,EAEjB,GAAA,EAAK;AACP;AAKO,IAAM,qBAAA,GAAwB;AAAA,EACnC,MAAA,EAAQ,QAAA;AAAA,EACR,iBAAA,EAAmB,iBAAA;AAAA,EACnB,aAAA,EAAe,cAAA;AAAA,EACf,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,aAAA,EAAe,cAAA;AAAA,EACf,QAAA,EAAU;AACZ;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,cAAA,EAAgB,uBAAA;AAAA,EAChB,YAAA,EAAc,qBAAA;AAAA,EACd,sBAAA,EAAwB,+BAAA;AAAA,EACxB,cAAA,EAAgB,uBAAA;AAAA;AAAA,EAEhB,GAAA,EAAK;AACP;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,aAAA,EAAe,2BAAA;AAAA,EACf,gBAAA,EAAkB,8BAAA;AAAA,EAClB,KAAA,EAAO,mBAAA;AAAA,EACP,kBAAA,EAAoB,gCAAA;AAAA,EACpB,oBAAA,EAAsB,kCAAA;AAAA,EACtB,eAAA,EAAiB,6BAAA;AAAA;AAAA,EAEjB,GAAA,EAAK;AACP;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAU,iBAAA;AAAA,EACV,KAAA,EAAO,cAAA;AAAA,EACP,OAAA,EAAS,gBAAA;AAAA;AAAA,EAET,GAAA,EAAK;AACP;AAKO,IAAM,YAAA,GAAe;AAAA,EAC1B,GAAA,EAAK,WAAA;AAAA,EACL,IAAA,EAAM,YAAA;AAAA,EACN,UAAA,EAAY,kBAAA;AAAA;AAAA,EAEZ,GAAA,EAAK;AACP;AAKO,IAAM,UAAA,GAAa;AAAA,EACxB,GAAG,aAAA;AAAA,EACH,GAAG,cAAA;AAAA,EACH,GAAG,YAAA;AAAA,EACH,GAAG,YAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG,kBAAA;AAAA,EACH,GAAG,aAAA;AAAA,EACH,GAAG;AACL;;;ACnNO,IAAM,cAAA,GAAiB;AAAA;AAAA,EAE5B,QAAA,EAAU,CAAA;AAAA;AAAA,EAEV,IAAA,EAAM,CAAA;AAAA;AAAA,EAEN,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,GAAA,EAAK,CAAA;AAAA;AAAA,EAEL,IAAA,EAAM;AACR;;;AC1BO,IAAM,kBAAA,GAA0C;AAAA,EACrD,WAAA,EAAa,SAAA;AAAA,EACb,KAAA,EAAO,YAAA;AAAA,EACP,KAAA,EAAO,cAAA;AAAA,EACP,YAAA,EAAc;AAChB;AAKO,IAAM,mBAAA,GAAsB;AAAA,EACjC,SAAA,EAAW,WAAA;AAAA,EACX,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA,EACL,QAAA,EAAU,UAAA;AAAA,EACV,aAAA,EAAe,eAAA;AAAA,EACf,SAAA,EAAW,WAAA;AAAA,EACX,kBAAA,EAAoB;AACtB;AAKO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,GAAA,EAAK,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAM;AAAA;AAAA,EAC1B,QAAA,EAAU,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAM;AAAA;AAAA,EAC/B,aAAA,EAAe,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA;AAAI;AACpC;;;ACzBO,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AANA,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAYL,IAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,KAAA,EAAO,UAAA;AAAA,EACP,cAAA,EAAgB,UAAA;AAAA,EAChB,QAAA,EAAU,UAAA;AAAA;AAAA,EAGV,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU,MAAA;AAAA;AAAA,EAGV,OAAA,EAAS,QAAA;AAAA,EACT,OAAA,EAAS,QAAA;AAAA,EACT,WAAA,EAAa,QAAA;AAAA;AAAA,EAGb,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,QAAA,EAAU;AACZ;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,aAAA,EAAe,eAAA;AAAA,EACf,UAAA,EAAY,YAAA;AAAA,EACZ,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,eAAA,EAAiB,iBAAA;AAAA,EACjB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,QAAA,EAAU,UAAA;AAAA,EACV,eAAA,EAAiB;AACnB;AAKO,IAAM,yBAAA,GAA4B;AAAA;AAAA,EAEvC,SAAA,EAAW,GAAA;AAAA;AAAA,EAEX,IAAA,EAAM,GAAA;AAAA;AAAA,EAEN,MAAA,EAAQ,GAAA;AAAA;AAAA,EAER,GAAA,EAAK,GAAA;AAAA;AAAA,EAEL,cAAA,EAAgB,GAAA;AAAA;AAAA,EAEhB,gBAAA,EAAkB;AACpB;AAeO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM,CAAA;AAAA,EACN,IAAA,EAAM;AACR;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM,GAAA;AAAA,EACN,IAAA,EAAM;AACR;AAEO,IAAM,kBAAA,GAAwC;AAAA,EACnD,cAAc,cAAA,CAAe,SAAA;AAAA,EAC7B,SAAS,cAAA,CAAe,IAAA;AAAA,EACxB,SAAS,cAAA,CAAe,IAAA;AAAA,EACxB,gBAAgB,gBAAA,CAAiB,SAAA;AAAA,EACjC,WAAW,gBAAA,CAAiB,IAAA;AAAA,EAC5B,WAAW,gBAAA,CAAiB;AAC9B;;;AChGO,IAAM,kBAAA,GAAqB;AAAA,EAChC,eAAA,EAAiB,iBAAA;AAAA,EACjB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,eAAA,EAAiB,iBAAA;AAAA,EACjB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,oBAAA,EAAsB,sBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtB,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,uBAAA,EAAyB;AAC3B;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,EAAA,EAAI,IAAA;AAAA,EACJ,IAAA,EAAM,MAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,MAAA;AAAA,EACN,kBAAA,EAAoB,oBAAA;AAAA,EACpB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,eAAA;AAAA,EACf,oBAAA,EAAsB,sBAAA;AAAA,EACtB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,YAAA,EAAc,cAAA;AAAA,EACd,cAAA,EAAgB,gBAAA;AAAA,EAChB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,gBAAA,EAAkB,kBAAA;AAAA,EAClB,wBAAA,EAA0B;AAC5B;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,aAAA,EAAe,eAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA,EACjB,aAAA,EAAe,eAAA;AAAA,EACf,WAAA,EAAa,aAAA;AAAA,EACb,eAAA,EAAiB,iBAAA;AAAA,EACjB,aAAA,EAAe,eAAA;AAAA,EACf,aAAA,EAAe,eAAA;AAAA,EACf,gBAAA,EAAkB;AACpB;AAMO,IAAM,uBAAA,GAA0B;AAAA,EACrC,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,gBAAA,EAAkB,iBAAA;AAAA,EAClB,kBAAA,EAAoB,mBAAA;AAAA,EACpB,YAAA,EAAc,aAAA;AAAA,EACd,cAAA,EAAgB,eAAA;AAAA,EAChB,cAAA,EAAgB,eAAA;AAAA,EAChB,qBAAA,EAAuB,sBAAA;AAAA,EACvB,eAAA,EAAiB,gBAAA;AAAA,EACjB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,cAAA,EAAgB,eAAA;AAAA,EAChB,cAAA,EAAgB,eAAA;AAAA,EAChB,aAAA,EAAe,cAAA;AAAA,EACf,eAAA,EAAiB,gBAAA;AAAA,EACjB,eAAA,EAAiB,gBAAA;AAAA,EACjB,kBAAA,EAAoB,mBAAA;AAAA,EACpB,iBAAA,EAAmB,kBAAA;AAAA,EACnB,oBAAA,EAAsB,oBAAA;AAAA,EACtB,aAAA,EAAe,cAAA;AAAA,EACf,gBAAA,EAAkB,iBAAA;AAAA,EAClB,YAAA,EAAc,aAAA;AAAA,EACd,WAAA,EAAa,aAAA;AAAA,EACb,eAAA,EAAiB,gBAAA;AAAA,EACjB,UAAA,EAAY;AACd;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO,OAAA;AAAA,EACP,eAAA,EAAiB;AACnB;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO;AACT;AAMO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW;AACb;AAMO,IAAM,YAAA,GAAe;AAAA,EAC1B,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,aAAA,EAAe,eAAA;AAAA,EACf,eAAA,EAAiB,iBAAA;AAAA,EACjB,iBAAA,EAAmB;AACrB;AAMO,IAAM,eAAA,GAAkB;AAAA,EAC7B,cAAA,EAAgB,gBAAA;AAAA,EAChB,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ;AACV;AAMO,IAAM,aAAA,GAAgB;AAAA,EAC3B,IAAA,EAAM,MAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU;AACZ;AAMO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AACZ;AAMO,IAAM,WAAA,GAAc;AAAA,EACzB,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,OAAA,EAAS;AACX;AAKO,IAAM,kBAAA,GAAqB;AAAA,EAChC,GAAG,kBAAA;AAAA,EACH,GAAG,gBAAA;AAAA,EACH,GAAG;AACL;AAWO,SAAS,iBAAiB,SAAA,EAAsD;AACrF,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA,CAAE,SAAS,SAAiC,CAAA;AACrF;AAFgB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA;AAOT,SAAS,oBAAoB,MAAA,EAAgD;AAClF,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,uBAAuB,CAAA,CAAE,SAAS,MAA8B,CAAA;AACvF;AAFgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;AAOT,SAAS,mBAAmB,IAAA,EAAmC;AACpE,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,SAAS,IAAmB,CAAA;AAClE;AAFgB,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA;;;ACxNT,IAAM,eAAA,GAAkB;AAAA,EAC7B,8BAAA,EAAgC,CAAA;AAAA,EAChC,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,EAAA;AAAA,IACN,GAAA,EAAK,EAAA;AAAA,IACL,MAAA,EAAQ,EAAA;AAAA,IACR,IAAA,EAAM;AAAA;AAEV;;;ACNO,IAAM,kBAAA,GAAqB;AAK3B,IAAM,0BAAA,GAA6B;AAAA,EACxC,UAAA,EAAY,IAAA;AAAA,EACZ,eAAA,EAAiB,GAAA;AAAA,EACjB,eAAA,EAAiB,GAAA;AAAA,EACjB,IAAA,EAAM,GAAA;AAAA,EACN,aAAA,EAAe,GAAA;AAAA,EACf,MAAA,EAAQ,GAAA;AAAA,EACR,WAAA,EAAa,GAAA;AAAA,EACb,eAAA,EAAiB,GAAA;AAAA,EACjB,GAAA,EAAK,GAAA;AAAA,EACL,eAAA,EAAiB,GAAA;AAAA,EACjB,gBAAA,EAAkB,GAAA;AAAA,EAClB,cAAA,EAAgB;AAClB;AAKO,IAAM,WAAA,GAAc;AAAA,EACzB,EAAA,EAAI;AAAA,IACF,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACF,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,OAAA,EAAS;AAAA;AAEb;AAKA,IAAM,aAAA,GAAgB,EAAA;AACtB,IAAM,gBAAA,GAAmB,EAAA;AACzB,IAAM,kBAAA,GAAqB,EAAA;AAC3B,IAAM,aAAA,GAAgB,GAAA;AAGf,IAAM,iBAAA,GACX,aAAA,GAAgB,gBAAA,GAAmB,kBAAA,GAAqB;AAKnD,IAAM,gBAAA,GAAmB;AAAA,EAC9B,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA;AAAA,EACJ,OAAA,EAAS,MAAA;AAAA,EACT,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA;AAAA,EACJ,MAAA,EAAQ;AACV;;;AClFO,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AAEL,EAAAA,kBAAA,SAAA,CAAA,GAAU,KAAA;AAEV,EAAAA,kBAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAEV,EAAAA,kBAAA,aAAA,CAAA,GAAc,KAAA;AAEd,EAAAA,kBAAA,OAAA,CAAA,GAAQ,KAAA;AAER,EAAAA,kBAAA,OAAA,CAAA,GAAQ,OAAA;AAER,EAAAA,kBAAA,SAAA,CAAA,GAAU,MAAA;AAdA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;;;ACLL,IAAM,aAAA,GAAgB;AAAA,EAC3B,WAAA,EAAa,cAAA;AAAA,EACb,WAAA,EAAa,cAAA;AAAA,EACb,eAAA,EAAiB,kBAAA;AAAA,EACjB,YAAA,EAAc,eAAA;AAAA,EACd,cAAA,EAAgB,iBAAA;AAAA,EAChB,YAAA,EAAc,eAAA;AAAA,EACd,YAAA,EAAc;AAChB","file":"index.cjs","sourcesContent":["/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n/**\n * Enum representing the supported authentication providers for user login.\n * @description Auth Providers allowed such as Email, Wallet, etc.\n *\n * @example\n * ```typescript\n * import { AUTH_PROVIDER } from '@plyaz/types';\n *\n * const provider = AUTH_PROVIDER.Wallet; // 'wallet'\n * const isWeb3Auth = provider === AUTH_PROVIDER.Wallet;\n * ```\n */\nexport const AUTH_PROVIDER = {\n /** Authentication via email and password. */\n Email: 'email',\n\n /** Authentication via connected blockchain wallet. */\n Wallet: 'wallet',\n} as const;\n\nexport enum AUTH_PROVIDER_TYPE {\n ClerkSupabase = 'CLERK_SUPABASE',\n InternalDb = 'INTERNAL_DB',\n}\n","export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { z } from 'zod';\n\n/**\n * Zod schema for validating user login credentials.\n * @description Ensures the input object contains a valid email address and a password string.\n * @example\n * ```ts\n * LoginCredentialsSchema.parse({\n * email: \"user@example.com\",\n * password: \"\"\n * });\n * ```\n */\nexport const loginCredentialsSchema = z.object({\n // The user's email address. Must be a valid email format.\n email: z.string().email('Invalid email format'),\n\n // The user's password. No format constraints applied here.\n password: z.string(),\n});\n\n/**\n * Type inferred from {@link loginCredentialsSchema}.\n * @description Represents the shape of validated login credentials input.\n */\nexport type LoginCredentialsInput = z.infer<typeof loginCredentialsSchema>;\n","/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '@plyaz/config';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n AUTH_TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n AUTH_INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.AUTH_TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.AUTH_INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== API Package Error Definitions =====\n\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_TOKEN_EXPIRED]: {\n code: ERROR_CODES.AUTH_TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_INVALID_CREDENTIALS]: {\n code: ERROR_CODES.AUTH_INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n};\n","/**\n * Enum representing the types of events in the application.\n * Uses dot notation for event naming convention.\n *\n * @example\n * ```typescript\n * import { EVENT_TYPE } from '@plyaz/types';\n *\n * const eventType = EVENT_TYPE.AppInit; // 'app.init'\n * ```\n */\nexport const EVENT_TYPE = {\n /** Application initialization event. */\n AppInit: 'app.init',\n} as const;\n\n/**\n * Const representing the priority levels for events.\n * Used to determine processing order and resource allocation.\n *\n * @example\n * ```typescript\n * import { EVENT_PRIORITY } from '@plyaz/types';\n *\n * const priority = EVENT_PRIORITY.High; // 'high'\n * ```\n */\nexport const EVENT_PRIORITY = {\n /** Low priority event. */\n Low: 'low',\n /** Normal priority event. */\n Normal: 'normal',\n /** High priority event. */\n High: 'high',\n /** Critical priority event. */\n Critical: 'critical',\n} as const;\n\n/**\n * Const representing the status of an event.\n * Tracks the lifecycle of event processing from creation to completion.\n *\n * @example\n * ```typescript\n * import { EVENT_STATUS } from '@plyaz/types';\n *\n * const status = EVENT_STATUS.Processing; // 'processing'\n *\n * // Typical event lifecycle:\n * // Pending -> Processing -> Completed\n * // or\n * // Pending -> Processing -> Failed -> Retrying -> Processing -> Completed\n * ```\n */\nexport const EVENT_STATUS = {\n /** Event is pending and has not started processing. */\n Pending: 'pending',\n /** Event is currently being processed. */\n Processing: 'processing',\n /** Event has been completed successfully. */\n Completed: 'completed',\n /** Event processing failed. */\n Failed: 'failed',\n /** Event is being retried after a failure. */\n Retrying: 'retrying',\n} as const;\n","/**\n * Enum representing supported EVM-compatible blockchain networks by their numeric chain IDs.\n * @description These IDs are used to identify the specific network when interacting with wallets or smart contracts.\n * @see https://chainlist.org for reference chain IDs\n *\n * @example\n * ```typescript\n * import { CHAIN_ID } from '@plyaz/types';\n *\n * const chainId = CHAIN_ID.EthereumMainnet; // 1\n * const isTestnet = chainId === CHAIN_ID.EthereumSepolia || chainId === CHAIN_ID.PolygonAmoy;\n * ```\n */\nexport const CHAIN_ID = {\n /** Ethereum Mainnet (Chain ID: 1). */\n EthereumMainnet: 1,\n\n /** Ethereum Sepolia Testnet (Chain ID: 11155111). */\n EthereumSepolia: 11_155_111,\n\n /** Optimism Mainnet (Chain ID: 10). */\n Optimism: 10,\n\n /** Optimism Sepolia Testnet (Chain ID: 11155420). */\n OptimismSepolia: 11_155_420,\n\n /** Arbitrum One Mainnet (Chain ID: 42161). */\n Arbitrum: 42_161,\n\n /** Arbitrum Sepolia Testnet (Chain ID: 421614). */\n ArbitrumSepolia: 421_614,\n\n /** Polygon Mainnet (Chain ID: 137). */\n Polygon: 137,\n\n /** Polygon Amoy Testnet (Chain ID: 80002). */\n PolygonAmoy: 80_002,\n\n /** Base Mainnet (Chain ID: 8453). */\n Base: 8_453,\n\n /** Base Sepolia Testnet (Chain ID: 84532). */\n BaseSepolia: 84_532,\n} as const;\n","/**\n * Comprehensive enumeration of all payment-related events that can occur\n * in the system. Events are organized by category and follow a hierarchical\n * naming convention for easy filtering and subscription.\n *\n * Naming Convention:\n * - Category.Action (e.g., payment.completed)\n * - Use present tense for ongoing events, past tense for completed events\n * - Include both success and failure events for complete audit trails\n */\nexport enum PAYMENTEVENTTYPE {\n // Payment lifecycle events\n PaymentInitiated = 'payment.initiated',\n PaymentProcessing = 'payment.processing',\n PaymentRequiresAction = 'payment.requires_action',\n PaymentCompleted = 'payment.completed',\n PaymentFailed = 'payment.failed',\n PaymentCancelled = 'payment.cancelled',\n PaymentExpired = 'payment.expired',\n PaymentAuthorized = 'payment.authorized',\n PaymentCaptured = 'payment.captured',\n PaymentHeld = 'payment.held',\n PaymentReleased = 'payment.released',\n\n // Refund lifecycle events\n RefundRequested = 'refund.requested',\n RefundApproved = 'refund.approved',\n RefundRejected = 'refund.rejected',\n RefundProcessing = 'refund.processing',\n RefundCompleted = 'refund.completed',\n RefundFailed = 'refund.failed',\n RefundCancelled = 'refund.cancelled',\n\n // Provider interaction events\n ProviderWebhookReceived = 'provider.webhook.received',\n ProviderWebhookProcessed = 'provider.webhook.processed',\n ProviderWebhookFailed = 'provider.webhook.failed',\n ProviderApiCalled = 'provider.api.called',\n ProviderApiSucceeded = 'provider.api.succeeded',\n ProviderApiFailed = 'provider.api.failed',\n ProviderTimeout = 'provider.timeout',\n ProviderHealthChanged = 'provider.health.changed',\n\n // Financial events\n SettlementInitiated = 'settlement.initiated',\n SettlementCompleted = 'settlement.completed',\n SettlementFailed = 'settlement.failed',\n PayoutRequested = 'payout.requested',\n PayoutProcessed = 'payout.processed',\n PayoutFailed = 'payout.failed',\n\n // Dispute and chargeback events\n ChargebackReceived = 'chargeback.received',\n ChargebackResponded = 'chargeback.responded',\n ChargebackWon = 'chargeback.won',\n ChargebackLost = 'chargeback.lost',\n DisputeCreated = 'dispute.created',\n DisputeUpdated = 'dispute.updated',\n DisputeResolved = 'dispute.resolved',\n DisputeEscalated = 'dispute.escalated',\n\n // Security and fraud events\n FraudDetected = 'fraud.detected',\n FraudReviewRequired = 'fraud.review_required',\n FraudCleared = 'fraud.cleared',\n SuspiciousActivity = 'suspicious.activity',\n PaymentBlocked = 'payment.blocked',\n SecurityCheckFailed = 'security.check_failed',\n VelocityLimitExceeded = 'velocity.limit_exceeded',\n\n // Payment method events\n PaymentMethodAdded = 'payment_method.added',\n PaymentMethodUpdated = 'payment_method.updated',\n PaymentMethodDeleted = 'payment_method.deleted',\n PaymentMethodVerified = 'payment_method.verified',\n PaymentMethodExpired = 'payment_method.expired',\n\n // Subscription events\n SubscriptionCreated = 'subscription.created',\n SubscriptionUpdated = 'subscription.updated',\n SubscriptionCancelled = 'subscription.cancelled',\n SubscriptionRenewed = 'subscription.renewed',\n SubscriptionFailed = 'subscription.failed',\n SubscriptionTrialStarted = 'subscription.trial_started',\n SubscriptionTrialEnded = 'subscription.trial_ended',\n\n // System and operational events\n PaymentLimitsUpdated = 'payment_limits.updated',\n PaymentLimitsExceeded = 'payment_limits.exceeded',\n ProviderConfigUpdated = 'provider.config_updated',\n ProviderMaintenanceStarted = 'provider.maintenance_started',\n ProviderMaintenanceEnded = 'provider.maintenance_ended',\n\n // Compliance and audit events\n ComplianceCheckRequired = 'compliance.check_required',\n ComplianceCheckPassed = 'compliance.check_passed',\n ComplianceCheckFailed = 'compliance.check_failed',\n AuditTrailCreated = 'audit.trail_created',\n RegulatoryReportGenerated = 'regulatory.report_generated',\n}\n\n/**\n * Payment event categories for organization and routing.\n */\nexport enum PAYMENTEVENTCATEGORY {\n TRANSACTION = 'transaction',\n REFUND = 'refund',\n PROVIDER = 'provider',\n SECURITY = 'security',\n COMPLIANCE = 'compliance',\n FINANCIAL = 'financial',\n SUBSCRIPTION = 'subscription',\n SYSTEM = 'system',\n AUDIT = 'audit',\n}\n\n/**\n * Error categories for payment events.\n */\nexport enum PAYMENTERRORCATEGORY {\n UserError = 'user_error', // User input or action errors\n ProviderError = 'provider_error', // Payment provider errors\n SystemError = 'system_error', // Internal system errors\n NetworkError = 'network_error', // Network connectivity errors\n FraudError = 'fraud_error', // Fraud detection errors\n ComplianceError = 'compliance_error', // Regulatory compliance errors\n LimitError = 'limit_error', // Limit exceeded errors\n ConfigurationError = 'configuration_error', // Configuration errors\n TimeoutError = 'timeout_error', // Timeout errors\n ValidationError = 'validation_error', // Data validation errors\n}\n","/**\n * Event processing status enumeration.\n */\nexport enum EVENTPROCESSINGSTATUS {\n Received = 'received', // Event received from provider\n Validating = 'validating', // Signature and format validation\n Normalizing = 'normalizing', // Converting to unified format\n Normalized = 'normalized', // Successfully normalized\n Processing = 'processing', // Business logic processing\n Completed = 'completed', // Processing completed successfully\n Failed = 'failed', // Processing failed\n Retrying = 'retrying', // Retrying after failure\n Skipped = 'skipped', // Skipped due to filters/rules\n}\n","/**\n * Enumeration of all supported payment providers in the Plyaz ecosystem.\n */\nexport enum PAYMENTPROVIDERTYPE {\n // Traditional payment processors\n Stripe = 'stripe',\n Paypal = 'paypal',\n CheckoutCom = 'checkout_com',\n Adyen = 'adyen',\n\n // Cryptocurrency payment providers\n Moonpay = 'moonpay',\n CoinbaseCommerce = 'coinbase_commerce',\n BlockchainBridge = 'blockchain_bridge',\n\n // Regional payment providers\n Pix = 'pix',\n Boleto = 'boleto',\n Sepa = 'sepa',\n Ideal = 'ideal',\n Sofort = 'sofort',\n Alipay = 'alipay',\n WechatPay = 'wechat_pay',\n\n // Mock provider for testing\n MockProvider = 'mock_provider',\n}\n\n/**\n * Enumeration of payment methods supported across all providers.\n */\nexport enum PAYMENTMETHOD {\n // Traditional payment methods\n CreditCard = 'credit_card',\n DebitCard = 'debit_card',\n BankTransfer = 'bank_transfer',\n PaypalAccount = 'paypal_account',\n\n // Cryptocurrency payment methods\n CryptoBitcoin = 'crypto_bitcoin',\n CryptoEthereum = 'crypto_ethereum',\n CryptoPolygon = 'crypto_polygon',\n CryptoOptimism = 'crypto_optimism',\n CryptoUsdc = 'crypto_usdc',\n CryptoUsdt = 'crypto_usdt',\n CryptoNativeToken = 'crypto_native_token',\n\n // Regional payment methods\n PixInstant = 'pix_instant',\n BoletoBancario = 'boleto_bancario',\n SepaDirectDebit = 'sepa_direct_debit',\n IdealBank = 'ideal_bank',\n SofortBanking = 'sofort_banking',\n AlipayDigital = 'alipay_digital',\n WechatPayDigital = 'wechat_pay_digital',\n\n // Digital wallets\n ApplePay = 'apple_pay',\n GooglePay = 'google_pay',\n SamsungPay = 'samsung_pay',\n}\n\n/**\n * Comprehensive payment status enumeration.\n */\nexport enum PAYMENTSTATUS {\n // Initial states\n Initiated = 'initiated',\n Pending = 'pending',\n Processing = 'processing',\n\n // Action required states\n RequiresAction = 'requires_action',\n RequiresConfirmation = 'requires_confirmation',\n RequiresPaymentMethod = 'requires_payment_method',\n\n // Success states\n Completed = 'completed',\n Settled = 'settled',\n\n // Failure states\n Failed = 'failed',\n Declined = 'declined',\n Cancelled = 'cancelled',\n Expired = 'expired',\n\n // Refund states\n Refunded = 'refunded',\n PartiallyRefunded = 'partially_refunded',\n\n // Dispute states\n Disputed = 'disputed',\n Chargeback = 'chargeback',\n ChargebackResolved = 'chargeback_resolved',\n\n // Special states\n Held = 'held',\n Authorized = 'authorized',\n Captured = 'captured',\n}\n\n/**\n * Transaction type enumeration.\n */\nexport enum TRANSACTIONTYPE {\n Payment = 'payment',\n Refund = 'refund',\n PartialRefund = 'partial_refund',\n Withdrawal = 'withdrawal',\n Donation = 'donation',\n Subscription = 'subscription',\n SubscriptionRenewal = 'subscription_renewal',\n Fee = 'fee',\n Chargeback = 'chargeback',\n Adjustment = 'adjustment',\n Reward = 'reward',\n Penalty = 'penalty',\n Transfer = 'transfer',\n}\n\n/**\n * User type enumeration.\n */\nexport enum USERTYPE {\n Fan = 'fan',\n Athlete = 'athlete',\n Club = 'club',\n Agent = 'agent',\n Scout = 'scout',\n Admin = 'admin',\n System = 'system',\n}\n\n/**\n * Product type enumeration.\n */\nexport enum PRODUCTTYPE {\n Campaign = 'campaign',\n Subscription = 'subscription',\n Nft = 'nft',\n Merchandise = 'merchandise',\n EventTicket = 'event_ticket',\n PremiumContent = 'premium_content',\n TrainingSession = 'training_session',\n Consultation = 'consultation',\n DigitalProduct = 'digital_product',\n PhysicalProduct = 'physical_product',\n}\n","/**\n * Enumeration of action types that users might need to complete.\n */\nexport enum REQUIREDACTIONTYPE {\n /** Redirect to external page (3D Secure, bank auth, etc.) */\n Redirect = 'redirect',\n\n /** Enter SMS or email verification code */\n OtpVerification = 'otp_verification',\n\n /** Upload identity or financial documents */\n DocumentUpload = 'document_upload',\n\n /** Provide additional payment information */\n AdditionalPaymentInfo = 'additional_payment_info',\n\n /** Confirm payment via mobile app or email */\n PaymentConfirmation = 'payment_confirmation',\n\n /** Contact customer support for manual verification */\n ManualVerification = 'manual_verification',\n\n /** Wait for bank transfer or other delayed method */\n WaitForCompletion = 'wait_for_completion',\n}\n","/**\n * Cost optimization strategies.\n */\nexport enum COSTOPTIMIZATIONSTRATEGY {\n /** Always use cheapest option */\n Aggressive = 'aggressive',\n\n /** Balance cost with reliability */\n Balanced = 'balanced',\n\n /** Prefer reliability over cost */\n Conservative = 'conservative',\n\n /** Optimize for specific cost components */\n Targeted = 'targeted',\n}\n\n/**\n * Failover strategies.\n */\nexport enum FAILOVERSTRATEGY {\n /** Use predefined provider order */\n PriorityOrder = 'priority_order',\n\n /** Failover to next available provider */\n NextAvailable = 'next_available',\n\n /** Failover based on performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Failover to least loaded provider */\n LoadBalanced = 'load_balanced',\n\n /** Geographic failover preference */\n Geographic = 'geographic',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORYFRAMEWORK {\n PciDss = 'pci_dss',\n Gdpr = 'gdpr',\n Psd2 = 'psd2',\n Sox = 'sox',\n Aml = 'aml',\n Kyc = 'kyc',\n Ccpa = 'ccpa',\n LocalBanking = 'local_banking',\n}\n\n/**\n * Load balancing strategies.\n */\nexport enum LOADBALANCINGSTRATEGY {\n /** Rotate through providers evenly */\n RoundRobin = 'round_robin',\n\n /** Use weighted distribution */\n Weighted = 'weighted',\n\n /** Choose provider with least active traffic */\n LeastConnections = 'least_connections',\n\n /** Choose based on best performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Custom strategy defined by merchant */\n Custom = 'custom',\n}\n\n/**\n * Types of performance metrics.\n */\nexport enum PERFORMANCEMETRICTYPE {\n Latency = 'latency',\n SuccessRate = 'success_rate',\n ErrorRate = 'error_rate',\n Throughput = 'throughput',\n Retries = 'retries',\n Availability = 'availability',\n Cost = 'cost',\n}\n\n/**\n * Primary routing strategies.\n */\nexport enum ROUTINGSTRATEGY {\n /** Optimize for lowest total cost */\n CostOptimized = 'cost_optimized',\n\n /** Optimize for highest reliability */\n ReliabilityFirst = 'reliability_first',\n\n /** Optimize for fastest processing */\n PerformanceFirst = 'performance_first',\n\n /** Balance cost, reliability, and performance */\n Balanced = 'balanced',\n\n /** Use user or region preferences */\n UserPreference = 'user_preference',\n\n /** Distribute load evenly */\n RoundRobin = 'round_robin',\n\n /** Custom routing logic */\n Custom = 'custom',\n}\n","export enum REFUND_ERROR_TYPES {\n NotAllowed = 'not_allowed',\n Authorization = 'authorization',\n Processing = 'processing',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORY_FRAMEWORK {\n PCIDSS = 'pci_dss',\n GDPR = 'gdpr',\n PSD2 = 'psd2',\n SOX = 'sox',\n AML = 'aml',\n KYC = 'kyc',\n CCPA = 'ccpa',\n LOCALBANKING = 'local_banking',\n}\n\n/**\n * Refund not allowed reasons.\n */\nexport enum REFUND_NOT_ALLOWED_REASON {\n AlreadyRefunded = 'already_refunded',\n PartialNotSupported = 'partial_not_supported',\n TimeLimitExceeded = 'time_limit_exceeded',\n InsufficientBalance = 'insufficient_balance',\n ProviderRestriction = 'provider_restriction',\n ComplianceRestriction = 'compliance_restriction',\n}\n\n/**\n * Security threat types.\n */\nexport enum SECURITY_THREAT_TYPE {\n FraudSuspected = 'fraud_suspected',\n VelocityExceeded = 'velocity_exceeded',\n SuspiciousPattern = 'suspicious_pattern',\n BlockedRegion = 'blocked_region',\n BlacklistedMethod = 'blacklisted_method',\n SystemThreat = 'system_threat',\n}\n\n/**\n * Webhook verification failure reasons.\n */\nexport enum WEBHOOK_VERIFICATION_REASON {\n InvalidSignature = 'invalid_signature',\n MissingSignature = 'missing_signature',\n ExpiredTimestamp = 'expired_timestamp',\n InvalidPayload = 'invalid_payload',\n UnknownEndpoint = 'unknown_endpoint',\n}\n\n/**\n * Payment error categories for organizing and handling different types of errors.\n */\nexport enum PAYMENT_ERROR_CATEGORY {\n Validation = 'validation',\n Authentication = 'authentication',\n Authorization = 'authorization',\n Processing = 'processing',\n Provider = 'provider',\n Network = 'network',\n Fraud = 'fraud',\n Compliance = 'compliance',\n Limits = 'limits',\n Configuration = 'configuration',\n Timeout = 'timeout',\n System = 'system',\n Webhook = 'webhook',\n Refund = 'refund',\n Security = 'security',\n}\n","/**\n * Notification Constants and Enums\n *\n * Type-level constants and enum values for the notifications system.\n * Configuration defaults have been moved to @plyaz/config/notifications.\n *\n * @module notifications/enums\n */\n\n/**\n * Notification Providers\n * Standard provider names to ensure consistency across the package\n */\nexport const NOTIFICATION_PROVIDERS = {\n /** Infobip omnichannel provider (Email, SMS, WhatsApp) - PRIMARY */\n INFOBIP: 'Infobip',\n\n /** SendGrid email provider - FALLBACK */\n SENDGRID: 'SendGrid',\n\n /** Mock email provider for testing */\n MOCK_EMAIL: 'MockEmail',\n\n /** Mock SMS provider for testing */\n MOCK_SMS: 'MockSMS',\n\n /** Mock push provider for testing */\n MOCK_PUSH: 'MockPush',\n} as const;\n\n/**\n * Notification Channels\n * Available notification delivery channels\n */\nexport const NOTIFICATION_CHANNELS = {\n EMAIL: 'email',\n SMS: 'sms',\n PUSH: 'push',\n} as const;\n\n/**\n * Notification Categories (FR-4.3)\n * Determines opt-out behavior for compliance\n */\nexport const NOTIFICATION_CATEGORIES = {\n /** Cannot be opted out - compliance requirement (password resets, order confirmations) */\n TRANSACTIONAL: 'transactional',\n\n /** User can opt-out (newsletters, promotions) */\n MARKETING: 'marketing',\n\n /** User can opt-out (likes, comments, follows) */\n SOCIAL: 'social',\n\n /** System alerts and notifications (security alerts, system status) */\n SYSTEM: 'system',\n\n /** Promotional offers and campaigns */\n PROMOTIONAL: 'promotional',\n} as const;\n\n/**\n * Signature verification method for webhooks\n */\nexport enum SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha1 = 'hmac-sha1',\n HmacSha512 = 'hmac-sha512',\n Custom = 'custom',\n}\n\n/**\n * Webhook event types mapped to internal notification events\n */\nexport enum WEBHOOK_EVENT_TYPE {\n // Delivery events\n Delivered = 'delivered',\n Bounced = 'bounced',\n Deferred = 'deferred',\n Dropped = 'dropped',\n\n // Engagement events\n Opened = 'opened',\n Clicked = 'clicked',\n\n // Spam/unsubscribe events\n SpamReport = 'spam_report',\n Unsubscribed = 'unsubscribed',\n\n // SMS-specific\n SmsDelivered = 'sms_delivered',\n SmsFailed = 'sms_failed',\n\n // Push-specific\n PushDelivered = 'push_delivered',\n PushFailed = 'push_failed',\n\n // Generic\n Unknown = 'unknown',\n}\n\n/**\n * Webhook encryption method for PII-safe IDs\n */\nexport enum WEBHOOK_ENCRYPTION_METHOD {\n /** HMAC-SHA256 hashing (recommended for IDs) */\n HmacSha256 = 'hmac-sha256',\n /** HMAC-SHA512 hashing (stronger) */\n HmacSha512 = 'hmac-sha512',\n /** No encryption (not recommended) */\n None = 'none',\n}\n\n/**\n * Common MIME types for attachments\n */\nexport const MIME_TYPES = {\n // Documents\n PDF: 'application/pdf',\n DOC: 'application/msword',\n DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n XLS: 'application/vnd.ms-excel',\n XLSX: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n PPT: 'application/vnd.ms-powerpoint',\n PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n TXT: 'text/plain',\n CSV: 'text/csv',\n\n // Images\n PNG: 'image/png',\n JPG: 'image/jpeg',\n JPEG: 'image/jpeg',\n GIF: 'image/gif',\n SVG: 'image/svg+xml',\n WEBP: 'image/webp',\n\n // Archives\n ZIP: 'application/zip',\n RAR: 'application/x-rar-compressed',\n TAR: 'application/x-tar',\n GZIP: 'application/gzip',\n\n // Other\n JSON: 'application/json',\n XML: 'application/xml',\n} as const;\n\n/**\n * Common file extensions for attachments\n */\nexport const FILE_EXTENSIONS = {\n // Documents\n PDF: '.pdf',\n DOC: '.doc',\n DOCX: '.docx',\n XLS: '.xls',\n XLSX: '.xlsx',\n PPT: '.ppt',\n PPTX: '.pptx',\n TXT: '.txt',\n CSV: '.csv',\n\n // Images\n PNG: '.png',\n JPG: '.jpg',\n JPEG: '.jpeg',\n GIF: '.gif',\n SVG: '.svg',\n WEBP: '.webp',\n\n // Archives\n ZIP: '.zip',\n RAR: '.rar',\n TAR: '.tar',\n GZ: '.gz',\n GZIP: '.gzip',\n\n // Other\n JSON: '.json',\n XML: '.xml',\n} as const;\n","/**\n * Notification Validation Schemas\n *\n * Zod schemas for validating notification inputs\n * Ensures type safety and prevents invalid data from entering the system\n *\n * @module notifications/schemas\n */\n\nimport { z } from 'zod';\nimport { NOTIFICATION_CATEGORIES } from './enums';\n\n// Validation length constants\nconst MAX_EMAIL_LENGTH = 255;\nconst MAX_USER_ID_LENGTH = 255;\nconst MAX_TEMPLATE_ID_LENGTH = 255;\nconst MAX_DEVICE_TOKEN_LENGTH = 512;\n\n/**\n * Email address validation\n * - Must be valid email format\n * - Max 255 characters\n * - Automatically lowercased and trimmed\n */\nexport const EmailSchema = z\n .string()\n .email('Invalid email address format')\n .max(MAX_EMAIL_LENGTH, 'Email address must be 255 characters or less')\n .transform(val => val.trim().toLowerCase());\n\n/**\n * Phone number validation (E.164 format)\n * - Must start with optional + followed by country code\n * - 1-15 digits total (E.164 standard)\n * - Examples: +14155552671, +442071838750, +8613800000000\n */\nexport const PhoneSchema = z\n .string()\n .regex(/^\\+?[1-9]\\d{1,14}$/, 'Invalid phone number format (E.164 expected)')\n .describe('Phone number in E.164 format');\n\n/**\n * User ID validation\n * - Required, non-empty string\n * - Max 255 characters\n */\nexport const UserIdSchema = z\n .string()\n .min(1, 'User ID is required')\n .max(MAX_USER_ID_LENGTH, 'User ID must be 255 characters or less');\n\n/**\n * Template ID validation\n * - Only lowercase letters, numbers, hyphens, and slashes\n * - Used for file path construction, must be safe\n * - Examples: welcome, password-reset, order/confirmation\n */\nexport const TemplateIdSchema = z\n .string()\n .min(1, 'Template ID is required')\n .regex(\n /^[a-z0-9-/]+$/,\n 'Template ID must contain only lowercase letters, numbers, hyphens, and slashes'\n )\n .max(MAX_TEMPLATE_ID_LENGTH, 'Template ID must be 255 characters or less');\n\n/**\n * Locale validation\n * - ISO 639-1 language code (2 lowercase letters)\n * - Optional ISO 3166-1 country code (2 uppercase letters)\n * - Examples: en, en-US, es, es-MX, fr-FR\n */\nexport const LocaleSchema = z\n .string()\n .regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'Locale must be in format: en, en-US, es, es-MX')\n .describe('Locale in ISO 639-1 format');\n\n/**\n * Notification category validation (FR-4.3)\n * - transactional: Cannot be opted out (compliance requirement)\n * - marketing: User can opt-out\n * - social: User can opt-out\n */\nexport const NotificationCategorySchema = z\n .enum([\n NOTIFICATION_CATEGORIES.TRANSACTIONAL,\n NOTIFICATION_CATEGORIES.MARKETING,\n NOTIFICATION_CATEGORIES.SOCIAL,\n NOTIFICATION_CATEGORIES.SYSTEM,\n NOTIFICATION_CATEGORIES.PROMOTIONAL,\n ] as const)\n .default(NOTIFICATION_CATEGORIES.TRANSACTIONAL)\n .describe('Notification category for compliance and user preferences');\n\n/**\n * Queue priority validation\n */\nexport const QueuePrioritySchema = z.enum(['high', 'normal', 'low']);\n\n/**\n * Correlation ID validation\n * - UUID v4 format\n * - Used for tracing across systems\n */\nexport const CorrelationIdSchema = z\n .string()\n .uuid('Correlation ID must be a valid UUID v4')\n .describe('UUID v4 correlation ID');\n\n/**\n * Template data validation\n * - Must be a valid object\n * - Can contain strings, numbers, booleans, or nested objects\n * - Arrays are allowed\n */\nexport const TemplateDataSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * Device token validation (for push notifications)\n * - Non-empty string\n * - Max 512 characters (FCM tokens can be quite long)\n */\nexport const DeviceTokenSchema = z\n .string()\n .min(1, 'Device token is required')\n .max(MAX_DEVICE_TOKEN_LENGTH, 'Device token must be 512 characters or less');\n","/**\n * Event Namespace Constants\n * Centralized constants for all event namespaces in the API package\n */\n\n/**\n * Main event namespaces for the API package\n */\nexport const EVENT_NAMESPACES = {\n HEADERS: 'headers',\n NETWORK: 'network',\n ERRORS: 'errors',\n DEBUG: 'debug',\n CONFIG: 'config',\n PERFORMANCE: 'performance',\n CLIENT: 'client',\n CACHE: 'cache',\n POLLING: 'polling',\n REQUEST: 'request',\n REVALIDATION: 'revalidation',\n EVENT_MANAGER: 'eventManager',\n} as const;\n\n/**\n * Header-specific event keys\n */\nexport const HEADER_EVENTS = {\n CHANGED: 'headers:changed',\n ENRICHED: 'headers:enriched',\n CONFLICT: 'headers:conflict',\n OVERRIDE: 'headers:override',\n TRACKED: 'headers:tracked',\n MERGED: 'headers:merged',\n FILTERED: 'headers:filtered',\n VALIDATED: 'headers:validated',\n CACHED: 'headers:cached',\n CACHE_HIT: 'headers:cache:hit',\n CACHE_MISS: 'headers:cache:miss',\n // Wildcard for all header events\n ANY: 'headers:*',\n} as const;\n\n/**\n * Network-specific event keys\n */\nexport const NETWORK_EVENTS = {\n QUALITY_CHANGE: 'network:quality:changed',\n INFO_UPDATE: 'network:info-update',\n CONFIG_OVERRIDE: 'network:config:override',\n CONFIG_RESTORED: 'network:config:restored',\n OVERRIDE_CHANGE: 'network:override-change',\n PRESET_APPLIED: 'network:preset-applied',\n PRESET_CHANGED: 'network:preset:changed',\n HINTS_UPDATED: 'network:hints:updated',\n AUTO_DETECTION: 'network:auto:detection',\n MANUAL_UPDATE: 'network:manual:update',\n // Wildcard for all network events\n ANY: 'network:*',\n} as const;\n\n/**\n * Error-specific event keys\n */\nexport const ERROR_EVENTS = {\n NETWORK_ERROR: 'errors:network',\n VALIDATION_ERROR: 'errors:validation',\n AUTHENTICATION_ERROR: 'errors:authentication',\n AUTHORIZATION_ERROR: 'errors:authorization',\n RATE_LIMIT_ERROR: 'errors:rate-limit',\n SERVER_ERROR: 'errors:server',\n CLIENT_ERROR: 'errors:client',\n TIMEOUT_ERROR: 'errors:timeout',\n CONFLICT_ERROR: 'errors:conflict',\n CACHE_ERROR: 'errors:cache',\n HEADERS_ERROR: 'errors:headers',\n RETRY_ERROR: 'errors:retry',\n STRATEGY_ERROR: 'errors:strategy',\n REGIONAL_ERROR: 'errors:regional',\n NOT_FOUND_ERROR: 'errors:not-found',\n EXTERNAL_SERVICE_ERROR: 'errors:external-service',\n UNKNOWN_ERROR: 'errors:unknown',\n GENERIC_ERROR: 'errors:generic',\n // Wildcard for all error events\n ANY: 'errors:*',\n} as const;\n\n/**\n * Handler scopes for different levels of event handlers\n * These prefixes are used for registering handlers at different priority levels\n * Can be used for any type of handler (error, request, response, debug, etc.)\n *\n * Priority order (lowest to highest):\n * 1. GLOBAL - Set via setGlobalErrorHandlers(), persists across all instances\n * 2. CONFIG - Set via setGlobalConfig({ errorHandlers }), global configuration\n * 3. CLIENT - Set via createApiClient({ errorHandlers }), instance-specific\n * 4. REQUEST/TEMPORARY - Set per-request or via updateConfig(), highest priority\n *\n * Usage:\n * - GLOBAL: For app-wide handlers that should always run (e.g., logging)\n * - CONFIG: For environment-specific handlers (e.g., dev vs prod)\n * - CLIENT: For instance-specific handlers (e.g., per-service client)\n * - REQUEST/TEMPORARY: For request-specific or runtime updates\n *\n * Note: REQUEST and TEMPORARY are aliases - both use 'request' scope\n *\n * Examples of namespaced handlers:\n * - Error handlers: 'global:error', 'config:error', 'client:error'\n * - Debug handlers: 'global:debug', 'config:debug', 'client:debug'\n * - Request handlers: 'global:request', 'config:request', 'client:request'\n */\nexport const HANDLER_SCOPES = {\n GLOBAL: 'global', // Global handlers (lowest priority, persists across all instances)\n CONFIG: 'config', // Config-level handlers (middle priority, from setGlobalConfig)\n CLIENT: 'client', // Client instance handlers (high priority, instance-specific)\n TEMPORARY: 'request', // Temporary handlers (alias for REQUEST, highest priority)\n REQUEST: 'request', // Request-level handlers (highest priority, per-request)\n} as const;\n\n/**\n * Core event scopes (excluding aliases)\n * These are the actual scope values used by the event system\n */\nexport const EVENT_SCOPES = [\n HANDLER_SCOPES.GLOBAL,\n HANDLER_SCOPES.CONFIG,\n HANDLER_SCOPES.CLIENT,\n HANDLER_SCOPES.REQUEST,\n] as const;\n\n/**\n * All event scopes including 'temporary' alias\n * Used in APIs where 'temporary' provides semantic clarity\n */\nexport const EVENT_SCOPES_WITH_TEMPORARY = [...EVENT_SCOPES, 'temporary' as const] as const;\n\n/**\n * Debug-specific event keys\n */\nexport const DEBUG_EVENTS = {\n CONFIG_CONFLICT: 'debug:config-conflict',\n CONFIG_CHANGE: 'debug:config-change',\n HEADERS_TRACKED: 'debug:headers-tracked',\n NETWORK_OVERRIDE: 'debug:network-override',\n NETWORK_STATE_CHANGED: 'debug:network-state-changed',\n NETWORK_DATA_CLEARED: 'debug:network-data-cleared',\n DEBUG_INFO: 'debug:info',\n PERFORMANCE_IMPACT: 'debug:performance-impact',\n MONITORING_ALERT: 'debug:monitoring-alert',\n CONFIG_TRACKED: 'debug:config-tracked',\n CONFLICTS_BATCH: 'debug:conflicts-batch',\n EVENT_OPERATION: 'debug:event-operation',\n // Wildcard for all debug events\n ANY: 'debug:*',\n} as const;\n\n/**\n * Configuration sources - where config updates originate from\n */\nexport const EVENTS_CONFIG_SOURCES = {\n GLOBAL: 'global',\n CREATE_API_CLIENT: 'createApiClient',\n UPDATE_CONFIG: 'updateConfig',\n MANUAL: 'manual',\n ENVIRONMENT: 'environment',\n PRESET: 'preset',\n NETWORK_AWARE: 'networkAware',\n ADAPTIVE: 'adaptive',\n} as const;\n\n/**\n * Configuration-specific event keys\n */\nexport const CONFIG_EVENTS = {\n GLOBAL_UPDATED: 'config:global-updated',\n GLOBAL_RESET: 'config:global-reset',\n ENVIRONMENT_CONFIGURED: 'config:environment-configured',\n PRESET_APPLIED: 'config:preset-applied',\n // Wildcard for all config events\n ANY: 'config:*',\n} as const;\n\n/**\n * Performance-specific event keys\n */\nexport const PERFORMANCE_EVENTS = {\n REQUEST_START: 'performance:request-start',\n REQUEST_COMPLETE: 'performance:request-complete',\n RETRY: 'performance:retry',\n THRESHOLD_EXCEEDED: 'performance:threshold-exceeded',\n OPTIMIZATION_APPLIED: 'performance:optimization-applied',\n METRIC_RECORDED: 'performance:metric-recorded',\n // Wildcard for all performance events\n ANY: 'performance:*',\n} as const;\n\n/**\n * Client-specific event keys\n */\nexport const CLIENT_EVENTS = {\n CONFLICT: 'client:conflict',\n DEBUG: 'client:debug',\n CREATED: 'client:created',\n // Wildcard for all client events\n ANY: 'client:*',\n} as const;\n\n/**\n * Cache-specific event keys\n */\nexport const CACHE_EVENTS = {\n HIT: 'cache:hit',\n MISS: 'cache:miss',\n INVALIDATE: 'cache:invalidate',\n // Wildcard for all cache events\n ANY: 'cache:*',\n} as const;\n\n/**\n * All event keys combined for easy access\n */\nexport const ALL_EVENTS = {\n ...HEADER_EVENTS,\n ...NETWORK_EVENTS,\n ...ERROR_EVENTS,\n ...DEBUG_EVENTS,\n ...CONFIG_EVENTS,\n ...PERFORMANCE_EVENTS,\n ...CLIENT_EVENTS,\n ...CACHE_EVENTS,\n} as const;\n\nexport type EventsConfigSource = (typeof EVENTS_CONFIG_SOURCES)[keyof typeof EVENTS_CONFIG_SOURCES];\n","/**\n * Queue System Enums\n */\n\n/**\n * Priority levels for queue operations\n * @description Defines the priority order for queued operations, from highest (CRITICAL) to lowest (IDLE)\n *\n * @example\n * ```typescript\n * import { PRIORITY_LEVEL } from '@plyaz/types';\n *\n * const priority = PRIORITY_LEVEL.HIGH; // 1\n * if (priority <= PRIORITY_LEVEL.HIGH) {\n * // Handle high-priority request\n * }\n * ```\n */\nexport const PRIORITY_LEVEL = {\n /** Critical priority - highest urgency (0) */\n CRITICAL: 0,\n /** High priority (1) */\n HIGH: 1,\n /** Medium priority (2) */\n MEDIUM: 2,\n /** Normal priority (3) */\n NORMAL: 3,\n /** Low priority (4) */\n LOW: 4,\n /** Idle priority - lowest urgency (5) */\n IDLE: 5,\n} as const;\n","import type { NetworkPresetConfig } from '..';\n\n/**\n * Data saver mode uses offline-optimized presets\n */\nexport const DATA_SAVER_PRESETS: NetworkPresetConfig = {\n performance: 'offline',\n cache: 'aggressive',\n retry: 'conservative',\n revalidation: 'static',\n};\n\n/**\n * Valid Client Hint header names\n */\nexport const CLIENT_HINT_HEADERS = {\n SAVE_DATA: 'save-data',\n ECT: 'ect',\n RTT: 'rtt',\n DOWNLINK: 'downlink',\n DEVICE_MEMORY: 'device-memory',\n ACCEPT_CH: 'Accept-CH',\n ACCEPT_CH_LIFETIME: 'Accept-CH-Lifetime',\n} as const;\n\n/**\n * Validation ranges for header values\n */\nexport const VALIDATION_RANGES = {\n RTT: { MIN: 0, MAX: 10000 }, // 0-10 seconds\n DOWNLINK: { MIN: 0, MAX: 10000 }, // 0-10 Gbps\n DEVICE_MEMORY: { MIN: 0, MAX: 128 }, // 0-128 GB\n} as const;\n","/**\n * Network Quality Enum\n */\n\n/**\n * Network quality levels enum\n */\nexport enum NETWORK_QUALITY {\n EXCELLENT = 'excellent', // 4G, low latency\n GOOD = 'good', // 3G or good 4G\n FAIR = 'fair', // 2G or poor 3G\n POOR = 'poor', // Slow 2G or worse\n OFFLINE = 'offline', // No connection\n UNKNOWN = 'unknown', // Unable to determine\n}\n\n/**\n * Event priority mapping\n */\nexport const EVENT_PRIORITY_MAP = {\n // Critical events\n error: 'critical',\n onNetworkError: 'critical',\n critical: 'critical',\n\n // High priority events\n config: 'high',\n auth: 'high',\n conflict: 'high',\n\n // Normal priority events\n network: 'normal',\n headers: 'normal',\n performance: 'normal',\n\n // Low priority events\n debug: 'low',\n metrics: 'low',\n tracking: 'low',\n} as const;\n\n/**\n * Export preset names for easy access\n */\nexport const NetworkPresetNames = {\n OFFLINE_FIRST: 'offline-first' as const,\n DATA_SAVER: 'data-saver' as const,\n SLOW_CONNECTION: 'slow-connection' as const,\n FAIR_CONNECTION: 'fair-connection' as const,\n GOOD_CONNECTION: 'good-connection' as const,\n EXCELLENT_CONNECTION: 'excellent-connection' as const,\n AGGRESSIVE_CACHE: 'aggressive-cache' as const,\n REALTIME: 'realtime' as const,\n BACKGROUND_SYNC: 'background-sync' as const,\n} as const;\n\n/**\n * Confidence levels for quality detection\n */\nexport const NETWORK_CONFIDENCE_LEVELS = {\n /** Excellent confidence (90%) */\n EXCELLENT: 0.9,\n /** High confidence (80%) */\n HIGH: 0.8,\n /** Medium confidence (70%) */\n MEDIUM: 0.7,\n /** Low confidence (50%) */\n LOW: 0.5,\n /** Threshold for high confidence classification */\n HIGH_THRESHOLD: 0.7,\n /** Threshold for medium confidence classification */\n MEDIUM_THRESHOLD: 0.4,\n} as const;\n\n/**\n * Network quality thresholds\n */\nexport interface QualityThresholds {\n excellentRTT: number; // < 50ms\n goodRTT: number; // < 150ms\n fairRTT: number; // < 400ms\n excellentSpeed: number; // > 10 Mbps\n goodSpeed: number; // > 2 Mbps\n fairSpeed: number; // > 0.5 Mbps\n}\n\n// Speed thresholds in Mbps\nexport const SPEED_THRESHOLDS = {\n EXCELLENT: 10,\n GOOD: 2,\n FAIR: 0.5,\n} as const;\n\n// RTT thresholds in milliseconds\nexport const RTT_THRESHOLDS = {\n EXCELLENT: 50,\n GOOD: 150,\n FAIR: 400,\n} as const;\n\nexport const DEFAULT_THRESHOLDS: QualityThresholds = {\n excellentRTT: RTT_THRESHOLDS.EXCELLENT,\n goodRTT: RTT_THRESHOLDS.GOOD,\n fairRTT: RTT_THRESHOLDS.FAIR,\n excellentSpeed: SPEED_THRESHOLDS.EXCELLENT,\n goodSpeed: SPEED_THRESHOLDS.GOOD,\n fairSpeed: SPEED_THRESHOLDS.FAIR,\n};\n","/**\n * Debugger Event Namespaces and Constants\n * Centralized definition of all debugger tracking operations and event types\n */\n\nimport type { HistoryType, UnifiedOperationType } from '..';\n\n/**\n * Factory operation types for tracking\n * Used when tracking factory-related operations\n */\nexport const FACTORY_OPERATIONS = {\n FACTORY_CREATED: 'factory_created',\n FACTORY_ACCESSED: 'factory_accessed',\n FACTORY_INITIALIZED: 'factory_initialized',\n FACTORIES_RESET: 'factories_reset',\n FACTORY_REGISTER: 'factory_register',\n HANDLER_REGISTERED: 'handler_registered',\n HANDLER_UNREGISTERED: 'handler_unregistered',\n /**\n * Indicates that a specific handler instance has been removed from a factory or scope.\n * Use this when removing a particular handler by reference or ID, as opposed to\n * HANDLER_UNREGISTERED, which refers to unregistering a handler type or all handlers.\n */\n SPECIFIC_HANDLER_REMOVED: 'specific_handler_removed',\n SCOPE_LISTENERS_CLEARED: 'scope_listeners_cleared',\n} as const;\n\n/**\n * Event system operation types\n * Used when tracking event system operations\n */\nexport const EVENT_OPERATIONS = {\n ON: 'on',\n ONCE: 'once',\n OFF: 'off',\n EMIT: 'emit',\n EMIT_ACROSS_SCOPES: 'emit_across_scopes',\n REMOVE_ALL_LISTENERS: 'removeAllListeners',\n ONCE_EXECUTED: 'once_executed',\n CONFIG_UPDATE: 'config_update',\n CONFIG_UPDATE_FAILED: 'config_update_failed',\n GLOBAL_CONFIG_UPDATE: 'global_config_update',\n GLOBAL_CONFIG_RESET: 'global_config_reset',\n SCOPE_CHANGE: 'scope_change',\n FACTORY_CREATE: 'factory_create',\n FACTORY_COORDINATION: 'factory_coordination',\n HANDLER_STRATEGY: 'handler_strategy',\n HANDLER_STRATEGY_APPLIED: 'handler_strategy_applied',\n} as const;\n\n/**\n * Queue operation types\n * Used when tracking queue operations\n */\nexport const QUEUE_OPERATIONS = {\n QUEUE_CREATED: 'queue_created',\n QUEUE_PROCESSED: 'queue_processed',\n QUEUE_CLEARED: 'queue_cleared',\n QUEUE_ERROR: 'queue_error',\n BATCH_PROCESSED: 'batch_processed',\n ITEM_ENQUEUED: 'item_enqueued',\n ITEM_DEQUEUED: 'item_dequeued',\n PRIORITY_CHANGED: 'priority_changed',\n} as const;\n\n/**\n * Config tracking sources\n * Used to identify the source of configuration changes\n */\nexport const DEBUGGER_CONFIG_SOURCES = {\n DEFAULT: 'default',\n DIRECT: 'direct',\n CLIENT: 'client',\n UNIFIED_STRATEGY: 'unifiedStrategy',\n PERFORMANCE_PRESET: 'performancePreset',\n DATA_PATTERN: 'dataPattern',\n CACHE_STRATEGY: 'cacheStrategy',\n RETRY_STRATEGY: 'retryStrategy',\n REVALIDATION_STRATEGY: 'revalidationStrategy',\n ADAPTIVE_CONFIG: 'adaptiveConfig',\n MONITORING_CONFIG: 'monitoringConfig',\n POLLING_CONFIG: 'pollingConfig',\n NETWORK_PRESET: 'networkPreset',\n NETWORK_AWARE: 'networkAware',\n NETWORK_QUALITY: 'networkQuality',\n USER_PREFERENCE: 'userPreference',\n TEMPORARY_OVERRIDE: 'temporaryOverride',\n AUTO_OPTIMIZATION: 'autoOptimization',\n NETWORK_CLIENT_HINTS: 'networkClientHints',\n HEADER_PRESET: 'headerPreset',\n ENRICHED_HEADERS: 'enrichedHeaders',\n USER_HEADERS: 'userHeaders',\n INTERCEPTOR: 'interceptor',\n CONTEXT_HEADERS: 'contextHeaders',\n ENCRYPTION: 'encryption',\n} as const;\n\n/**\n * Debug history entry types\n * Used to categorize history entries\n */\nexport const HISTORY_TYPES = {\n CONFIG: 'config',\n HEADER: 'header',\n NETWORK: 'network',\n PERFORMANCE: 'performance',\n EVENT: 'event',\n EVENT_OPERATION: 'event_operation',\n} as const;\n\n/**\n * Header transformation stages\n * Used to track header changes through the pipeline\n */\nexport const HEADER_STAGES = {\n BASE: 'base',\n ENRICHED: 'enriched',\n INTERCEPTOR: 'interceptor',\n FINAL: 'final',\n} as const;\n\n/**\n * Config update strategies\n * Used when updating configuration\n */\nexport const UPDATE_STRATEGIES = {\n MERGE: 'merge',\n REPLACE: 'replace',\n TEMPORARY: 'temporary',\n} as const;\n\n/**\n * Config change types\n * Used to categorize configuration changes\n */\nexport const CHANGE_TYPES = {\n OVERRIDE: 'override',\n RESTORE: 'restore',\n PRESET_CHANGE: 'preset_change',\n USER_PREFERENCE: 'user_preference',\n AUTO_OPTIMIZATION: 'auto_optimization',\n} as const;\n\n/**\n * Tracking phases\n * Used to identify when tracking occurs\n */\nexport const TRACKING_PHASES = {\n INITIALIZATION: 'initialization',\n RUNTIME: 'runtime',\n UPDATE: 'update',\n} as const;\n\n/**\n * Performance impact levels\n * Used to categorize performance impact\n */\nexport const IMPACT_LEVELS = {\n NONE: 'NONE',\n LOW: 'LOW',\n MEDIUM: 'MEDIUM',\n HIGH: 'HIGH',\n CRITICAL: 'CRITICAL',\n} as const;\n\n/**\n * Monitoring alert severities\n * Used to categorize alert severity\n */\nexport const ALERT_SEVERITIES = {\n INFO: 'info',\n WARNING: 'warning',\n ERROR: 'error',\n CRITICAL: 'critical',\n} as const;\n\n/**\n * Monitoring alert types\n * Used to categorize monitoring alerts\n */\nexport const ALERT_TYPES = {\n CONFLICT: 'conflict',\n PERFORMANCE: 'performance',\n NETWORK: 'network',\n} as const;\n\n/**\n * Combined operation types for unified tracking\n */\nexport const UNIFIED_OPERATIONS = {\n ...FACTORY_OPERATIONS,\n ...EVENT_OPERATIONS,\n ...QUEUE_OPERATIONS,\n} as const;\n\n// Type exports for TypeScript support\nexport type QueueOperationType = (typeof QUEUE_OPERATIONS)[keyof typeof QUEUE_OPERATIONS];\nexport type DebuggerConfigSource =\n (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES];\nexport type ChangeType = (typeof CHANGE_TYPES)[keyof typeof CHANGE_TYPES];\n\n/**\n * Helper to check if a string is a valid operation type\n */\nexport function isValidOperation(operation: string): operation is UnifiedOperationType {\n return Object.values(UNIFIED_OPERATIONS).includes(operation as UnifiedOperationType);\n}\n\n/**\n * Helper to check if a string is a valid config source\n */\nexport function isValidConfigSource(source: string): source is DebuggerConfigSource {\n return Object.values(DEBUGGER_CONFIG_SOURCES).includes(source as DebuggerConfigSource);\n}\n\n/**\n * Helper to check if a string is a valid history type\n */\nexport function isValidHistoryType(type: string): type is HistoryType {\n return Object.values(HISTORY_TYPES).includes(type as HistoryType);\n}\n","/**\n * Event constants\n */\nexport const EVENT_CONSTANTS = {\n DEBUG_INFO_INTERVAL_MULTIPLIER: 5,\n IMPACT_THRESHOLDS: {\n NONE: 90,\n LOW: 70,\n MEDIUM: 50,\n HIGH: 30,\n },\n} as const;\n","/**\n * Regional detection constants\n */\n\n// Storage key for cached region\nexport const REGION_STORAGE_KEY = '@plyaz/api:userRegion';\n\n/**\n * Confidence levels for region detection\n */\nexport const REGIONAL_CONFIDENCE_LEVELS = {\n CDN_HEADER: 0.95,\n TIMEZONE_DIRECT: 0.9,\n TIMEZONE_PREFIX: 0.8,\n HIGH: 0.8,\n LOCALE_DIRECT: 0.7,\n MEDIUM: 0.7,\n GEOLOCATION: 0.6,\n LOCALE_LANGUAGE: 0.5,\n LOW: 0.5,\n GLOBAL_FALLBACK: 0.3,\n UNKNOWN_FALLBACK: 0.2,\n FINAL_FALLBACK: 0.1,\n} as const;\n\n/**\n * Geographic coordinates for region detection\n */\nexport const COORDINATES = {\n EU: {\n MIN_LAT: 35,\n MAX_LAT: 70,\n MIN_LON: -10,\n MAX_LON: 40,\n },\n US: {\n MIN_LAT: 25,\n MAX_LAT: 50,\n MIN_LON: -125,\n MAX_LON: -65,\n },\n US_WEST: {\n MIN_LAT: 32,\n MAX_LAT: 42,\n MIN_LON: -125,\n MAX_LON: -114,\n },\n US_EAST: {\n MIN_LAT: 38,\n MAX_LAT: 45,\n MIN_LON: -80,\n MAX_LON: -70,\n },\n ASIA: {\n MIN_LAT: 18,\n MAX_LAT: 54,\n MIN_LON: 73,\n MAX_LON: 135,\n },\n JAPAN: {\n MIN_LAT: 30,\n MAX_LAT: 46,\n MIN_LON: 129,\n MAX_LON: 146,\n },\n} as const;\n\n/**\n * Cache duration constants\n */\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1000;\n\n// Cache duration: 24 hours in milliseconds\nexport const CACHE_DURATION_MS =\n HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;\n\n/**\n * Map regions to presets\n */\nexport const REGION_TO_PRESET = {\n eu: 'gdpr',\n us: 'ccpa', // Map US to CCPA (California compliance)\n 'us-ca': 'ccpa',\n cn: 'pipl',\n jp: 'appi',\n ca: 'global', // Canada uses global preset\n global: 'global',\n} as const;\n","/**\n * Utility Enums for API Package\n * Enums used across API utilities\n */\n\n/**\n * Correlation ID types for different contexts\n */\nexport enum CORRELATION_TYPE {\n /** Network event correlation */\n NETWORK = 'net',\n /** API request correlation */\n API = 'api',\n /** User session correlation */\n SESSION = 'session',\n /** Transaction correlation */\n TRANSACTION = 'txn',\n /** Event correlation */\n EVENT = 'evt',\n /** Trace correlation */\n TRACE = 'trace',\n /** Generic correlation */\n GENERIC = 'corr',\n}\n","/**\n * Event types for pub/sub system\n */\nexport const PUB_SUB_EVENT = {\n CacheUpdate: 'cache:update',\n CacheDelete: 'cache:delete',\n CacheRevalidate: 'cache:revalidate',\n RequestStart: 'request:start',\n RequestSuccess: 'request:success',\n RequestError: 'request:error',\n RequestAbort: 'request:abort',\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/auth/enums.ts","../src/auth/schemas.ts","../src/errors/enums.ts","../src/http/constants.ts","../src/errors/codes.ts","../src/events/enums.ts","../src/locale/types.ts","../src/web3/enums.ts","../src/payments/events/enums.ts","../src/payments/events/unified-event/enums.ts","../src/payments/provider/provider-capability/enums.ts","../src/payments/request/enums.ts","../src/payments/gateways/routings/enums.ts","../src/payments/base-error/enum.ts","../src/notifications/enums.ts","../src/notifications/schemas.ts","../src/notifications/webhooks.schemas.ts","../src/api/events/enum.ts","../src/api/queue/enums.ts","../src/api/headers/enum.ts","../src/api/network/enums.ts","../src/api/debugger/enums.ts","../src/api/client/enum.ts","../src/api/regional/enum.ts","../src/api/utils/enums.ts","../src/api/pubsub/enum.ts"],"names":["AUTH_PROVIDER_TYPE","z","PAYMENTEVENTTYPE","PAYMENTEVENTCATEGORY","PAYMENTERRORCATEGORY","EVENTPROCESSINGSTATUS","PAYMENTPROVIDERTYPE","PAYMENTMETHOD","PAYMENTSTATUS","TRANSACTIONTYPE","USERTYPE","PRODUCTTYPE","REQUIREDACTIONTYPE","COSTOPTIMIZATIONSTRATEGY","FAILOVERSTRATEGY","REGULATORYFRAMEWORK","LOADBALANCINGSTRATEGY","PERFORMANCEMETRICTYPE","ROUTINGSTRATEGY","REFUND_ERROR_TYPES","REGULATORY_FRAMEWORK","REFUND_NOT_ALLOWED_REASON","SECURITY_THREAT_TYPE","WEBHOOK_VERIFICATION_REASON","PAYMENT_ERROR_CATEGORY","SIGNATURE_METHOD","WEBHOOK_EVENT_TYPE","WEBHOOK_ENCRYPTION_METHOD","NETWORK_QUALITY","CORRELATION_TYPE"],"mappings":"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,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA;AAAA,EAGL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA;AAAA,EACL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","file":"index.cjs","sourcesContent":["/**\n * Enum representing the different roles a user can have within the system.\n * @description Roles are used to determine access levels, permissions, and user-specific experiences.\n *\n * @example\n * ```typescript\n * import { USER_ROLE } from '@plyaz/types';\n *\n * const userRole = USER_ROLE.Athlete; // 'athlete'\n * const isAdmin = userRole === USER_ROLE.Admin || userRole === USER_ROLE.SuperAdmin;\n * ```\n */\nexport const USER_ROLE = {\n /** A user who is an athlete and participates in sports activities. */\n Athlete: 'athlete',\n\n /** A user who scouts and discovers talent. */\n Scout: 'scout',\n\n /** A user who acts as an agent representing athletes or clubs. */\n Agent: 'agent',\n\n /** A user representing a sports club or organization. */\n Club: 'club',\n\n /** A fan or supporter of athletes or clubs. */\n Fan: 'fan',\n\n /** A system administrator with access to management tools. */\n Admin: 'admin',\n\n /** A super admin with the highest level of access and control. */\n SuperAdmin: 'super.admin',\n} as const;\n\n/**\n * Enum representing the current status of a user account.\n * @description Statuses are used to determine login availability, visibility, and user flow.\n *\n * @example\n * ```typescript\n * import { USER_STATUS } from '@plyaz/types';\n *\n * const isAccessible = status === USER_STATUS.Active;\n * const needsReview = status === USER_STATUS.Pending;\n * ```\n */\nexport const USER_STATUS = {\n /** Active user with full access. */\n Active: 'active',\n\n /** Inactive user, typically not currently using the platform. */\n Inactive: 'inactive',\n\n /** User account is awaiting approval or completion of setup. */\n Pending: 'pending',\n\n /** User has been temporarily suspended due to policy violations or manual review. */\n Suspended: 'suspended',\n\n /** User has been permanently banned from the platform. */\n Banned: 'banned',\n} as const;\n\n/**\n * Enum representing the supported authentication providers for user login.\n * @description Auth Providers allowed such as Email, Wallet, etc.\n *\n * @example\n * ```typescript\n * import { AUTH_PROVIDER } from '@plyaz/types';\n *\n * const provider = AUTH_PROVIDER.Wallet; // 'wallet'\n * const isWeb3Auth = provider === AUTH_PROVIDER.Wallet;\n * ```\n */\nexport const AUTH_PROVIDER = {\n /** Authentication via email and password. */\n Email: 'email',\n\n /** Authentication via connected blockchain wallet. */\n Wallet: 'wallet',\n} as const;\n\nexport enum AUTH_PROVIDER_TYPE {\n ClerkSupabase = 'CLERK_SUPABASE',\n InternalDb = 'INTERNAL_DB',\n}\n","import { z } from 'zod';\n\n/**\n * Password minimum character length\n */\nconst DEFAULT_PASSWORD = 8;\n\n/**\n * Contact Us Form Schema\n * Validates contact form submissions\n */\nexport const ContactUsFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n});\n\n/**\n * Contact Us Form Type\n */\nexport type ContactUsForm = z.infer<typeof ContactUsFormSchema>;\n\n/**\n * Signup Form Schema\n * Validates user registration form submissions\n */\nexport const SignupFormSchema = z.object({\n name: z.string({ error: 'errors.form.missingField' }).min(1, 'errors.form.nameMissing'),\n email: z.email({ error: 'errors.form.emailInvalid' }),\n password: z\n .string({ error: 'errors.form.missingField' })\n .min(DEFAULT_PASSWORD, 'errors.form.passwordTooShort'),\n});\n\n/**\n * Signup Form Type\n */\nexport type SignupForm = z.infer<typeof SignupFormSchema>;\n","/**\n * Enum representing standardized error types used across the application.\n * @description These error types help classify different categories of errors such as validation issues and system-level failures.\n *\n * @example\n * ```typescript\n * import { ERROR_TYPE } from '@plyaz/types';\n *\n * const errorType = ERROR_TYPE.ValidationError; // 'validation.error'\n *\n * // Error handling example\n * if (error.type === ERROR_TYPE.RateLimitExceeded) {\n * // Handle rate limiting\n * }\n * ```\n */\nexport const ERROR_TYPE = {\n /** A general validation error (e.g., form or input errors). */\n ValidationError: 'validation.error',\n\n /** Error related to schema validation, such as JSON schema or API payload checks. */\n SchemaValidationError: 'validation.schema.error',\n\n /** Unhandled or unexpected system error. */\n InternalError: 'system.internal.error',\n\n /** System dependency is currently unavailable (e.g., database or external API). */\n ServiceUnavailable: 'system.service.unavailable',\n\n /** The request took too long and timed out. */\n TimeoutError: 'system.timeout',\n\n /** Too many requests made in a short period of time. */\n RateLimitExceeded: 'system.rate.limit.exceeded',\n} as const;\n\n/**\n * Enum representing the severity level of an error.\n * @description This allows categorization of errors by their potential impact on the system or user.\n *\n * @example\n * ```typescript\n * import { ERROR_SEVERITY } from '@plyaz/types';\n *\n * const severity = ERROR_SEVERITY.Critical; // 'critical'\n * const shouldAlert = severity === ERROR_SEVERITY.High || severity === ERROR_SEVERITY.Critical;\n * ```\n */\nexport const ERROR_SEVERITY = {\n /** Low severity - does not impact functionality significantly. */\n Low: 'low',\n\n /** Medium severity - minor disruption or warning. */\n Medium: 'medium',\n\n /** High severity - major issue requiring attention. */\n High: 'high',\n\n /** Critical severity - blocking or crashing issue. */\n Critical: 'critical',\n} as const;\n\n/**\n * Enum representing the category or origin of an error.\n * @description Useful for filtering or logging errors based on their source or nature.\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.Blockchain; // 'blockchain'\n * const isClientError = category === ERROR_CATEGORY.Client;\n * ```\n */\nexport const ERROR_CATEGORY = {\n /** Client-side error (e.g., invalid request). */\n Client: 'client',\n\n /** Server-side error (e.g., logic failure or exception). */\n Server: 'server',\n\n /** Network-related error (e.g., unreachable endpoint). */\n Network: 'network',\n\n /** Blockchain-related error (e.g., transaction failure, gas limit). */\n Blockchain: 'blockchain',\n\n /** Validation-specific error (e.g., failed constraints or field errors). */\n Validation: 'validation',\n\n /** Authentication-related error (e.g., invalid credentials, expired token). */\n Authentication: 'authentication',\n\n /** Authorization-related error (e.g., insufficient permissions). */\n Authorization: 'authorization',\n\n /** Resource not found error. */\n NotFound: 'not.found',\n\n /** Rate limiting error (too many requests). */\n RateLimit: 'rate.limit',\n\n /** External service error (e.g., third-party API failure). */\n ExternalService: 'external.service',\n\n /** Timeout error (request exceeded time limit). */\n Timeout: 'timeout',\n\n /** Conflict error (e.g., resource state conflict). */\n Conflict: 'conflict',\n\n /** Cache-related error. */\n Cache: 'cache',\n\n /** Headers-related error (e.g., missing or invalid headers). */\n Headers: 'headers',\n\n /** Retry-related error (e.g., max retries exceeded). */\n Retry: 'retry',\n\n /** Strategy-related error (e.g., invalid retry or caching strategy). */\n Strategy: 'strategy',\n\n /** Regional-related error (e.g., region detection failure). */\n Regional: 'regional',\n\n /** Provider-related error (e.g., notification service provider failure). */\n Provider: 'provider',\n\n /** Queue-related error (e.g., queue full or processing failed). */\n Queue: 'queue',\n\n /** Webhook-related error (e.g., invalid signature or processing failure). */\n Webhook: 'webhook',\n\n /** Template-related error (e.g., template not found or rendering failed). */\n Template: 'template',\n\n /** Configuration-related error (e.g., invalid or missing configuration). */\n Configuration: 'configuration',\n\n /** Unknown or unclassified error. */\n Unknown: 'unknown',\n} as const;\n\n/**\n * Internal package status codes (non-HTTP)\n * Used for internal configuration and validation errors that aren't HTTP-related\n * These are in the 1xxx range to distinguish from HTTP status codes (which are typically 100-599)\n *\n * @example\n * ```typescript\n * import { INTERNAL_STATUS_CODES } from '@plyaz/types';\n *\n * const statusCode = INTERNAL_STATUS_CODES.INVALID_CONFIGURATION; // 1001\n * if (error.statusCode >= 1000 && error.statusCode < 2000) {\n * // Handle internal package error\n * }\n * ```\n */\nexport const INTERNAL_STATUS_CODES = {\n // Configuration errors (1001-1009)\n INVALID_CONFIGURATION: 1001,\n MISSING_CONFIGURATION: 1002,\n CONFIGURATION_CONFLICT: 1003,\n CONFIGURATION_TRACKING_FAILED: 1004,\n DEBUG_TRACKING_FAILED: 1005,\n\n // Resource errors (1010-1019)\n RESOURCE_NOT_FOUND: 1010,\n RESOURCE_ALREADY_EXISTS: 1011,\n RESOURCE_UNAVAILABLE: 1012,\n\n // Validation errors (1020-1029)\n INVALID_PARAMETER: 1020,\n MISSING_PARAMETER: 1021,\n PARAMETER_OUT_OF_RANGE: 1022,\n\n // Strategy/preset errors (1030-1039)\n STRATEGY_NOT_FOUND: 1030,\n PRESET_NOT_FOUND: 1031,\n INVALID_STRATEGY: 1032,\n\n // Request/Response errors (1035-1039)\n REQUEST_FAILED: 1035,\n\n // Internal system errors (1040-1049)\n INITIALIZATION_FAILED: 1040,\n OPERATION_FAILED: 1041,\n STATE_CORRUPTION: 1042,\n SERIALIZATION_FAILED: 1043,\n DESERIALIZATION_FAILED: 1044,\n CONFIGURATION_INVALID: 1045,\n HEADER_PROCESSING_ERROR: 1046,\n REGION_DETECTION_ERROR: 1047,\n NETWORK_OVERRIDE_ERROR: 1048,\n} as const;\n\n/**\n * Mapping of error category values to camelCase emitter keys\n * Used by event systems to route errors to appropriate handlers\n *\n * @example\n * ```typescript\n * import { ERROR_CATEGORY, ERROR_CATEGORY_TO_EMITTER_KEY } from '@plyaz/types';\n *\n * const category = ERROR_CATEGORY.RateLimit; // 'rate.limit'\n * const emitterKey = ERROR_CATEGORY_TO_EMITTER_KEY[category]; // 'rateLimit'\n *\n * // Use in event emitter\n * eventEmitter.emit(`error:${emitterKey}`, error);\n * ```\n */\nexport const ERROR_CATEGORY_TO_EMITTER_KEY = {\n [ERROR_CATEGORY.Network]: 'network',\n [ERROR_CATEGORY.Validation]: 'validation',\n [ERROR_CATEGORY.Authentication]: 'authentication',\n [ERROR_CATEGORY.Authorization]: 'authorization',\n [ERROR_CATEGORY.RateLimit]: 'rateLimit',\n [ERROR_CATEGORY.Server]: 'server',\n [ERROR_CATEGORY.Timeout]: 'timeout',\n [ERROR_CATEGORY.NotFound]: 'notFound',\n [ERROR_CATEGORY.Conflict]: 'conflict',\n [ERROR_CATEGORY.Client]: 'client',\n [ERROR_CATEGORY.ExternalService]: 'externalService',\n [ERROR_CATEGORY.Cache]: 'cache',\n [ERROR_CATEGORY.Headers]: 'headers',\n [ERROR_CATEGORY.Retry]: 'retry',\n [ERROR_CATEGORY.Blockchain]: 'blockchain',\n [ERROR_CATEGORY.Strategy]: 'strategy',\n [ERROR_CATEGORY.Regional]: 'regional',\n [ERROR_CATEGORY.Provider]: 'provider',\n [ERROR_CATEGORY.Queue]: 'queue',\n [ERROR_CATEGORY.Webhook]: 'webhook',\n [ERROR_CATEGORY.Template]: 'template',\n [ERROR_CATEGORY.Configuration]: 'configuration',\n [ERROR_CATEGORY.Unknown]: 'unknown',\n} as const satisfies Record<(typeof ERROR_CATEGORY)[keyof typeof ERROR_CATEGORY], string>;\n\n/**\n * Common operation names used in error context\n * These are optional helpers - you can use any freeform string in context.operation\n *\n * @example\n * ```typescript\n * import { COMMON_OPERATIONS } from '@plyaz/types';\n *\n * const context = { operation: COMMON_OPERATIONS.STORAGE };\n * // Or just use a string:\n * const context2 = { operation: 'custom-operation' };\n * ```\n */\nexport const COMMON_OPERATIONS = {\n // Data operations\n STORAGE: 'storage',\n RETRIEVAL: 'retrieval',\n INVALIDATION: 'invalidation',\n DELETION: 'deletion',\n\n // Processing operations\n VALIDATION: 'validation',\n ENRICHMENT: 'enrichment',\n SERIALIZATION: 'serialization',\n DESERIALIZATION: 'deserialization',\n\n // API operations\n REQUEST: 'request',\n RESPONSE: 'response',\n RETRY: 'retry',\n REVALIDATION: 'revalidation',\n POLLING: 'polling',\n\n // Configuration operations\n INITIALIZATION: 'initialization',\n CONFIGURATION: 'configuration',\n PRESET_LOOKUP: 'preset-lookup',\n REGIONAL_DETECTION: 'regional-detection',\n\n // Strategy operations\n STRATEGY_EXECUTION: 'strategy-execution',\n FALLBACK: 'fallback',\n\n // Event operations\n SUBSCRIPTION: 'subscription',\n PUBLICATION: 'publication',\n EVENT_HANDLING: 'event-handling',\n\n // Debugging operations\n DEBUG: 'debug',\n DEBUG_TRACKING: 'debug-tracking',\n TRACKING: 'tracking',\n MONITORING: 'monitoring',\n\n // Network operations\n NETWORK_CHECK: 'network-check',\n ENDPOINT_BUILD: 'endpoint-build',\n CONTEXT_SETUP: 'context-setup',\n\n // Notification operations\n SEND: 'send',\n RENDER: 'render',\n QUEUE: 'queue',\n PROCESS: 'process',\n} as const;\n\n/**\n * Common field names used in error context\n * These are optional helpers - you can use any freeform string in context.field\n *\n * @example\n * ```typescript\n * import { COMMON_FIELDS } from '@plyaz/types';\n *\n * const context = { field: COMMON_FIELDS.EMAIL };\n * // Or just use a string:\n * const context2 = { field: 'customField' };\n * ```\n */\nexport const COMMON_FIELDS = {\n // Storage fields\n STORAGE: 'storage',\n CACHE: 'cache',\n\n // Configuration fields\n CONFIG: 'config',\n PRESET_NAME: 'presetName',\n PRESET_ID: 'presetId',\n\n // HTTP fields\n HEADERS: 'headers',\n URL: 'url',\n METHOD: 'method',\n\n // Strategy fields\n STRATEGY: 'strategy',\n\n // Retry fields\n RETRY_COUNT: 'retryCount',\n MAX_RETRIES: 'maxRetries',\n\n // Polling fields\n POLLING_INTERVAL: 'pollingInterval',\n\n // Event fields\n TOPIC: 'topic',\n CHANNEL: 'channel',\n\n // API fields\n ENDPOINT: 'endpoint',\n CLIENT: 'client',\n\n // Network fields\n NETWORK_TYPE: 'networkType',\n TIME_INTERVAL: 'timeInterval',\n\n // Notification fields\n EMAIL: 'email',\n PHONE: 'phoneNumber',\n RECIPIENT: 'recipient',\n TEMPLATE: 'template',\n PROVIDER: 'provider',\n} as const;\n\n/**\n * Common storage type names\n * These are optional helpers - you can use any freeform string in context.storageType\n *\n * @example\n * ```typescript\n * import { COMMON_STORAGE_TYPES } from '@plyaz/types';\n *\n * const context = { storageType: COMMON_STORAGE_TYPES.REDIS };\n * // Or just use a string:\n * const context2 = { storageType: 'custom-storage' };\n * ```\n */\nexport const COMMON_STORAGE_TYPES = {\n PRIMARY: 'primary',\n FALLBACK: 'fallback',\n MEMORY: 'memory',\n SESSION: 'session',\n LOCAL: 'local',\n REDIS: 'redis',\n DATABASE: 'database',\n} as const;\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Unified Error Codes and Definitions\n * Centralized source of truth for ALL error handling across @plyaz packages\n *\n * This file is the single source of truth for:\n * - All error codes\n * - All error definitions\n * - Error code to definition mappings\n */\n\nimport { HTTP_STATUS } from '../http/constants';\nimport { ERROR_CATEGORY, ERROR_SEVERITY } from './enums';\nimport type { ErrorDefinitions } from './types';\n\n/**\n * All Error Codes\n * Combined error codes from all @plyaz packages\n */\nexport const ERROR_CODES = {\n // ===== API Package Errors =====\n // Client Configuration\n CLIENT_INITIALIZATION_FAILED: 'CLIENT_INITIALIZATION_FAILED',\n CLIENT_INVALID_CONFIG: 'CLIENT_INVALID_CONFIG',\n CLIENT_MISSING_BASE_URL: 'CLIENT_MISSING_BASE_URL',\n CLIENT_CANCELLED: 'CLIENT_CANCELLED',\n CONFIG_VALIDATION_FAILED: 'CONFIG_VALIDATION_FAILED',\n HEADER_PROCESSING_FAILED: 'HEADER_PROCESSING_FAILED',\n NETWORK_OVERRIDE_FAILED: 'NETWORK_OVERRIDE_FAILED',\n\n // Request\n REQUEST_TIMEOUT: 'REQUEST_TIMEOUT',\n REQUEST_ABORTED: 'REQUEST_ABORTED',\n REQUEST_INVALID_PARAMS: 'REQUEST_INVALID_PARAMS',\n REQUEST_PREPARATION_FAILED: 'REQUEST_PREPARATION_FAILED',\n\n // Response\n RESPONSE_INVALID_FORMAT: 'RESPONSE_INVALID_FORMAT',\n RESPONSE_PARSING_FAILED: 'RESPONSE_PARSING_FAILED',\n\n // Authentication/Authorization\n AUTH_UNAUTHORIZED: 'AUTH_UNAUTHORIZED',\n AUTH_FORBIDDEN: 'AUTH_FORBIDDEN',\n AUTH_TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n AUTH_INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n\n // Rate Limiting\n RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',\n\n // Resources\n RESOURCE_NOT_FOUND: 'RESOURCE_NOT_FOUND',\n RESOURCE_CONFLICT: 'RESOURCE_CONFLICT',\n\n // Validation\n API_VALIDATION_FAILED: 'API_VALIDATION_FAILED',\n API_INVALID_INPUT: 'API_INVALID_INPUT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n REQUIRED_FIELD_MISSING: 'REQUIRED_FIELD_MISSING',\n INVALID_FORMAT: 'INVALID_FORMAT',\n VALIDATION_INVALID_FORMAT: 'VALIDATION_INVALID_FORMAT',\n STRING_TOO_SHORT: 'STRING_TOO_SHORT',\n STRING_TOO_LONG: 'STRING_TOO_LONG',\n\n // Network\n NETWORK_ERROR: 'NETWORK_ERROR',\n CONNECTION_FAILED: 'CONNECTION_FAILED',\n NETWORK_CONNECTION_FAILED: 'NETWORK_CONNECTION_FAILED',\n NETWORK_OFFLINE: 'NETWORK_OFFLINE',\n NETWORK_DNS_FAILED: 'NETWORK_DNS_FAILED',\n NETWORK_TIMEOUT: 'NETWORK_TIMEOUT',\n NETWORK_PRESET_NOT_FOUND: 'NETWORK_PRESET_NOT_FOUND',\n NETWORK_CONFIGURATION_INVALID: 'NETWORK_CONFIGURATION_INVALID',\n\n // Server\n SERVER_ERROR: 'SERVER_ERROR',\n INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n\n // Cache\n CACHE_READ_FAILED: 'CACHE_READ_FAILED',\n CACHE_WRITE_FAILED: 'CACHE_WRITE_FAILED',\n CACHE_INVALIDATION_FAILED: 'CACHE_INVALIDATION_FAILED',\n CACHE_STORAGE_FAILED: 'CACHE_STORAGE_FAILED',\n CACHE_RETRIEVAL_FAILED: 'CACHE_RETRIEVAL_FAILED',\n\n // Retry\n RETRY_LIMIT_EXCEEDED: 'RETRY_LIMIT_EXCEEDED',\n RETRY_FAILED: 'RETRY_FAILED',\n RETRY_EXHAUSTED: 'RETRY_EXHAUSTED',\n RETRY_STRATEGY_INVALID: 'RETRY_STRATEGY_INVALID',\n\n // Strategy\n STRATEGY_INVALID: 'STRATEGY_INVALID',\n STRATEGY_CONFLICT: 'STRATEGY_CONFLICT',\n STRATEGY_EXECUTION_FAILED: 'STRATEGY_EXECUTION_FAILED',\n\n // Headers\n HEADERS_ENRICHMENT_FAILED: 'HEADERS_ENRICHMENT_FAILED',\n HEADERS_VALIDATION_FAILED: 'HEADERS_VALIDATION_FAILED',\n HEADERS_MERGE_CONFLICT: 'HEADERS_MERGE_CONFLICT',\n\n // Regional\n REGION_DETECTION_FAILED: 'REGION_DETECTION_FAILED',\n REGIONAL_PRESET_NOT_FOUND: 'REGIONAL_PRESET_NOT_FOUND',\n\n // External Services\n EXTERNAL_SERVICE_ERROR: 'EXTERNAL_SERVICE_ERROR',\n\n // Timeout (generic)\n TIMEOUT: 'TIMEOUT',\n\n // Debugging\n DEBUG_TRACKING_FAILED: 'DEBUG_TRACKING_FAILED',\n\n // Polling\n POLLING_CANCELLED: 'POLLING_CANCELLED',\n POLLING_TIMEOUT: 'POLLING_TIMEOUT',\n POLLING_INVALID_CONFIG: 'POLLING_INVALID_CONFIG',\n\n // PubSub\n PUBSUB_SUBSCRIPTION_FAILED: 'PUBSUB_SUBSCRIPTION_FAILED',\n PUBSUB_PUBLICATION_FAILED: 'PUBSUB_PUBLICATION_FAILED',\n PUBSUB_INVALID_TOPIC: 'PUBSUB_INVALID_TOPIC',\n PUBSUB_CHANNEL_ERROR: 'PUBSUB_CHANNEL_ERROR',\n\n // Revalidation\n REVALIDATION_FAILED: 'REVALIDATION_FAILED',\n REVALIDATION_IN_PROGRESS: 'REVALIDATION_IN_PROGRESS',\n\n // Debugging\n DEBUG_OVERRIDE_FAILED: 'DEBUG_OVERRIDE_FAILED',\n DEBUG_CONFLICT_DETECTED: 'DEBUG_CONFLICT_DETECTED',\n\n // Endpoint\n ENDPOINT_BUILD_FAILED: 'ENDPOINT_BUILD_FAILED',\n ENDPOINT_NOT_FOUND: 'ENDPOINT_NOT_FOUND',\n ENDPOINT_INVALID_CONFIG: 'ENDPOINT_INVALID_CONFIG',\n\n // Event\n EVENT_HANDLER_FAILED: 'EVENT_HANDLER_FAILED',\n EVENT_EMISSION_FAILED: 'EVENT_EMISSION_FAILED',\n MONITORING_FAILED: 'MONITORING_FAILED',\n\n // Context\n CONTEXT_OPERATION_FAILED: 'CONTEXT_OPERATION_FAILED',\n\n // Generic\n CLIENT_ERROR: 'CLIENT_ERROR',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n\n // ===== Notification Package Errors =====\n // Provider\n NOTIFICATION_PROVIDER_SEND_FAILED: 'notification.provider.send.failed',\n NOTIFICATION_PROVIDER_CONFIGURATION_INVALID: 'notification.provider.configuration.invalid',\n NOTIFICATION_PROVIDER_RATE_LIMIT: 'notification.provider.rate.limit',\n NOTIFICATION_PROVIDER_AUTH_FAILED: 'notification.provider.auth.failed',\n NOTIFICATION_PROVIDER_TIMEOUT: 'notification.provider.timeout',\n NOTIFICATION_PROVIDER_UNAVAILABLE: 'notification.provider.unavailable',\n NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED: 'notification.provider.feature.not.supported',\n NOTIFICATION_ALL_PROVIDERS_FAILED: 'notification.all.providers.failed',\n\n // Validation\n NOTIFICATION_INVALID_INPUT: 'notification.validation.input.invalid',\n NOTIFICATION_INVALID_RECIPIENT: 'notification.validation.recipient.invalid',\n NOTIFICATION_INVALID_TEMPLATE: 'notification.validation.template.invalid',\n NOTIFICATION_INVALID_PAYLOAD: 'notification.validation.payload.invalid',\n NOTIFICATION_MISSING_REQUIRED_FIELD: 'notification.validation.field.required',\n NOTIFICATION_VALIDATION_FAILED: 'notification.validation.failed',\n\n // User Preferences\n NOTIFICATION_USER_OPTED_OUT: 'notification.user.opted.out',\n\n // Queue\n NOTIFICATION_QUEUE_FULL: 'notification.queue.full',\n NOTIFICATION_QUEUE_PROCESSING_FAILED: 'notification.queue.processing.failed',\n\n // Webhook\n NOTIFICATION_WEBHOOK_SIGNATURE_INVALID: 'notification.webhook.signature.invalid',\n NOTIFICATION_WEBHOOK_VALIDATION_FAILED: 'notification.webhook.validation.failed',\n NOTIFICATION_WEBHOOK_PROCESSING_FAILED: 'notification.webhook.processing.failed',\n\n // Template\n NOTIFICATION_TEMPLATE_NOT_FOUND: 'notification.template.not.found',\n NOTIFICATION_TEMPLATE_RENDER_FAILED: 'notification.template.render.failed',\n\n // General Notification\n NOTIFICATION_UNKNOWN_ERROR: 'notification.unknown.error',\n NOTIFICATION_INITIALIZATION_FAILED: 'notification.initialization.failed',\n\n // ===== Errors Package Errors =====\n ERROR_SYSTEM_NOT_INITIALIZED: 'error.system.not.initialized',\n EVENT_FACTORY_NOT_REGISTERED: 'error.event.factory.not.registered',\n DATABASE_ERROR: 'error.database',\n} as const;\n\n/**\n * Type for all error code values\n */\nexport type ErrorCodeValue = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n// ===== Package-Specific Error Code Subsets =====\n// These are convenience exports for backwards compatibility and easier imports\n\n/**\n * API-specific error codes\n * Subset of ERROR_CODES for @plyaz/api package\n */\nexport const API_ERROR_CODES = {\n CLIENT_INITIALIZATION_FAILED: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n CLIENT_INVALID_CONFIG: ERROR_CODES.CLIENT_INVALID_CONFIG,\n CLIENT_MISSING_BASE_URL: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n CLIENT_CANCELLED: ERROR_CODES.CLIENT_CANCELLED,\n CONFIG_VALIDATION_FAILED: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n HEADER_PROCESSING_FAILED: ERROR_CODES.HEADER_PROCESSING_FAILED,\n NETWORK_OVERRIDE_FAILED: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n REQUEST_TIMEOUT: ERROR_CODES.REQUEST_TIMEOUT,\n REQUEST_ABORTED: ERROR_CODES.REQUEST_ABORTED,\n REQUEST_INVALID_PARAMS: ERROR_CODES.REQUEST_INVALID_PARAMS,\n REQUEST_PREPARATION_FAILED: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n RESPONSE_INVALID_FORMAT: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n RESPONSE_PARSING_FAILED: ERROR_CODES.RESPONSE_PARSING_FAILED,\n AUTH_UNAUTHORIZED: ERROR_CODES.AUTH_UNAUTHORIZED,\n AUTH_FORBIDDEN: ERROR_CODES.AUTH_FORBIDDEN,\n AUTH_TOKEN_EXPIRED: ERROR_CODES.AUTH_TOKEN_EXPIRED,\n AUTH_INVALID_CREDENTIALS: ERROR_CODES.AUTH_INVALID_CREDENTIALS,\n RATE_LIMIT_EXCEEDED: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n RESOURCE_NOT_FOUND: ERROR_CODES.RESOURCE_NOT_FOUND,\n RESOURCE_CONFLICT: ERROR_CODES.RESOURCE_CONFLICT,\n VALIDATION_FAILED: ERROR_CODES.API_VALIDATION_FAILED,\n INVALID_INPUT: ERROR_CODES.API_INVALID_INPUT,\n VALIDATION_ERROR: ERROR_CODES.VALIDATION_ERROR,\n REQUIRED_FIELD_MISSING: ERROR_CODES.REQUIRED_FIELD_MISSING,\n INVALID_FORMAT: ERROR_CODES.INVALID_FORMAT,\n VALIDATION_INVALID_FORMAT: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n STRING_TOO_SHORT: ERROR_CODES.STRING_TOO_SHORT,\n STRING_TOO_LONG: ERROR_CODES.STRING_TOO_LONG,\n NETWORK_ERROR: ERROR_CODES.NETWORK_ERROR,\n CONNECTION_FAILED: ERROR_CODES.CONNECTION_FAILED,\n NETWORK_CONNECTION_FAILED: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n NETWORK_OFFLINE: ERROR_CODES.NETWORK_OFFLINE,\n NETWORK_DNS_FAILED: ERROR_CODES.NETWORK_DNS_FAILED,\n NETWORK_TIMEOUT: ERROR_CODES.NETWORK_TIMEOUT,\n NETWORK_CONFIGURATION_INVALID: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n SERVER_ERROR: ERROR_CODES.SERVER_ERROR,\n INTERNAL_SERVER_ERROR: ERROR_CODES.INTERNAL_SERVER_ERROR,\n SERVICE_UNAVAILABLE: ERROR_CODES.SERVICE_UNAVAILABLE,\n CACHE_READ_FAILED: ERROR_CODES.CACHE_READ_FAILED,\n CACHE_WRITE_FAILED: ERROR_CODES.CACHE_WRITE_FAILED,\n CACHE_INVALIDATION_FAILED: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n CACHE_STORAGE_FAILED: ERROR_CODES.CACHE_STORAGE_FAILED,\n CACHE_RETRIEVAL_FAILED: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n RETRY_LIMIT_EXCEEDED: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n RETRY_FAILED: ERROR_CODES.RETRY_FAILED,\n RETRY_EXHAUSTED: ERROR_CODES.RETRY_EXHAUSTED,\n RETRY_STRATEGY_INVALID: ERROR_CODES.RETRY_STRATEGY_INVALID,\n STRATEGY_INVALID: ERROR_CODES.STRATEGY_INVALID,\n STRATEGY_CONFLICT: ERROR_CODES.STRATEGY_CONFLICT,\n STRATEGY_EXECUTION_FAILED: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n HEADERS_ENRICHMENT_FAILED: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n HEADERS_VALIDATION_FAILED: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n HEADERS_MERGE_CONFLICT: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n REGION_DETECTION_FAILED: ERROR_CODES.REGION_DETECTION_FAILED,\n REGIONAL_PRESET_NOT_FOUND: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n EXTERNAL_SERVICE_ERROR: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n NETWORK_PRESET_NOT_FOUND: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n TIMEOUT: ERROR_CODES.TIMEOUT,\n DEBUG_TRACKING_FAILED: ERROR_CODES.DEBUG_TRACKING_FAILED,\n DEBUG_OVERRIDE_FAILED: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n DEBUG_CONFLICT_DETECTED: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n POLLING_CANCELLED: ERROR_CODES.POLLING_CANCELLED,\n POLLING_TIMEOUT: ERROR_CODES.POLLING_TIMEOUT,\n POLLING_INVALID_CONFIG: ERROR_CODES.POLLING_INVALID_CONFIG,\n PUBSUB_SUBSCRIPTION_FAILED: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n PUBSUB_PUBLICATION_FAILED: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n PUBSUB_INVALID_TOPIC: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n PUBSUB_CHANNEL_ERROR: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n REVALIDATION_FAILED: ERROR_CODES.REVALIDATION_FAILED,\n REVALIDATION_IN_PROGRESS: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n ENDPOINT_BUILD_FAILED: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n ENDPOINT_NOT_FOUND: ERROR_CODES.ENDPOINT_NOT_FOUND,\n ENDPOINT_INVALID_CONFIG: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n EVENT_HANDLER_FAILED: ERROR_CODES.EVENT_HANDLER_FAILED,\n EVENT_EMISSION_FAILED: ERROR_CODES.EVENT_EMISSION_FAILED,\n MONITORING_FAILED: ERROR_CODES.MONITORING_FAILED,\n CONTEXT_OPERATION_FAILED: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n CLIENT_ERROR: ERROR_CODES.CLIENT_ERROR,\n UNKNOWN_ERROR: ERROR_CODES.UNKNOWN_ERROR,\n} as const;\n\n/**\n * Notification-specific error codes\n * Subset of ERROR_CODES for @plyaz/notifications package\n */\nexport const NOTIFICATION_ERROR_CODES = {\n PROVIDER_SEND_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n PROVIDER_CONFIGURATION_INVALID: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n PROVIDER_RATE_LIMIT: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n PROVIDER_AUTH_FAILED: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n PROVIDER_TIMEOUT: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n PROVIDER_UNAVAILABLE: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n PROVIDER_FEATURE_NOT_SUPPORTED: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n ALL_PROVIDERS_FAILED: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n INVALID_INPUT: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n INVALID_RECIPIENT: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n INVALID_TEMPLATE: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n INVALID_PAYLOAD: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n MISSING_REQUIRED_FIELD: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n USER_OPTED_OUT: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n QUEUE_FULL: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n QUEUE_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n WEBHOOK_SIGNATURE_INVALID: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n WEBHOOK_VALIDATION_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n WEBHOOK_PROCESSING_FAILED: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n TEMPLATE_NOT_FOUND: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n TEMPLATE_RENDER_FAILED: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n UNKNOWN_ERROR: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n INITIALIZATION_FAILED: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n} as const;\n\nexport type ApiErrorCodeValue =\n | (typeof API_ERROR_CODES)[keyof typeof API_ERROR_CODES]\n | `HTTP_${number}`;\nexport type NotificationErrorCodeValue =\n (typeof NOTIFICATION_ERROR_CODES)[keyof typeof NOTIFICATION_ERROR_CODES];\n\n/**\n * Unified ERROR_DEFINITIONS\n * Single source of truth for ALL error definitions across all @plyaz packages\n *\n * Combines:\n * - API error definitions (basic: code, status, category, fieldsLeft)\n * - Notification error definitions (extended: includes severity, retryable, userMessage)\n *\n * All packages can access ANY error definition for cross-package error handling\n */\nexport const ERROR_DEFINITIONS: ErrorDefinitions = {\n // ===== API Package Error Definitions =====\n\n // Authentication\n [ERROR_CODES.AUTH_UNAUTHORIZED]: {\n code: ERROR_CODES.AUTH_UNAUTHORIZED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.unauthorized',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_FORBIDDEN]: {\n code: ERROR_CODES.AUTH_FORBIDDEN,\n status: HTTP_STATUS.FORBIDDEN,\n category: ERROR_CATEGORY.Authorization,\n userMessage: 'errors.auth.forbidden',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_TOKEN_EXPIRED]: {\n code: ERROR_CODES.AUTH_TOKEN_EXPIRED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.token_expired',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.AUTH_INVALID_CREDENTIALS]: {\n code: ERROR_CODES.AUTH_INVALID_CREDENTIALS,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Authentication,\n userMessage: 'errors.auth.invalid_credentials',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Rate Limiting\n [ERROR_CODES.RATE_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RATE_LIMIT_EXCEEDED,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n userMessage: 'errors.rate_limit.exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Resources\n [ERROR_CODES.RESOURCE_NOT_FOUND]: {\n code: ERROR_CODES.RESOURCE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.resource.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESOURCE_CONFLICT]: {\n code: ERROR_CODES.RESOURCE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Conflict,\n userMessage: 'errors.resource.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Validation\n [ERROR_CODES.API_VALIDATION_FAILED]: {\n code: ERROR_CODES.API_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.API_INVALID_INPUT]: {\n code: ERROR_CODES.API_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_input',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_ERROR]: {\n code: ERROR_CODES.VALIDATION_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUIRED_FIELD_MISSING]: {\n code: ERROR_CODES.REQUIRED_FIELD_MISSING,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.required_field_missing',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.INVALID_FORMAT]: {\n code: ERROR_CODES.INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.VALIDATION_INVALID_FORMAT]: {\n code: ERROR_CODES.VALIDATION_INVALID_FORMAT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_SHORT]: {\n code: ERROR_CODES.STRING_TOO_SHORT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_short',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRING_TOO_LONG]: {\n code: ERROR_CODES.STRING_TOO_LONG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.validation.string_too_long',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Network\n [ERROR_CODES.NETWORK_ERROR]: {\n code: ERROR_CODES.NETWORK_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.error',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.CONNECTION_FAILED]: {\n code: ERROR_CODES.CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONNECTION_FAILED]: {\n code: ERROR_CODES.NETWORK_CONNECTION_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.connection_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_OFFLINE]: {\n code: ERROR_CODES.NETWORK_OFFLINE,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.offline',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_DNS_FAILED]: {\n code: ERROR_CODES.NETWORK_DNS_FAILED,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.dns_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_TIMEOUT]: {\n code: ERROR_CODES.NETWORK_TIMEOUT,\n status: 0,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NETWORK_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.configuration_invalid',\n severity: ERROR_SEVERITY.Critical,\n retryable: true,\n },\n [ERROR_CODES.NETWORK_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.NETWORK_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.network.preset_not_found',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Server\n [ERROR_CODES.SERVER_ERROR]: {\n code: ERROR_CODES.SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.INTERNAL_SERVER_ERROR]: {\n code: ERROR_CODES.INTERNAL_SERVER_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.internal_error',\n severity: ERROR_SEVERITY.High,\n retryable: false,\n },\n [ERROR_CODES.SERVICE_UNAVAILABLE]: {\n code: ERROR_CODES.SERVICE_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.server.service_unavailable',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Cache\n [ERROR_CODES.CACHE_READ_FAILED]: {\n code: ERROR_CODES.CACHE_READ_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.read_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_WRITE_FAILED]: {\n code: ERROR_CODES.CACHE_WRITE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.write_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_INVALIDATION_FAILED]: {\n code: ERROR_CODES.CACHE_INVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.invalidation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_STORAGE_FAILED]: {\n code: ERROR_CODES.CACHE_STORAGE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.storage_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CACHE_RETRIEVAL_FAILED]: {\n code: ERROR_CODES.CACHE_RETRIEVAL_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.cache.retrieval_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Retry\n [ERROR_CODES.RETRY_LIMIT_EXCEEDED]: {\n code: ERROR_CODES.RETRY_LIMIT_EXCEEDED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.limit_exceeded',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_FAILED]: {\n code: ERROR_CODES.RETRY_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_EXHAUSTED]: {\n code: ERROR_CODES.RETRY_EXHAUSTED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Retry,\n userMessage: 'errors.retry.exhausted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.RETRY_STRATEGY_INVALID]: {\n code: ERROR_CODES.RETRY_STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.retry.strategy_invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n\n // Strategy\n [ERROR_CODES.STRATEGY_INVALID]: {\n code: ERROR_CODES.STRATEGY_INVALID,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.invalid',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_CONFLICT]: {\n code: ERROR_CODES.STRATEGY_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.STRATEGY_EXECUTION_FAILED]: {\n code: ERROR_CODES.STRATEGY_EXECUTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.strategy.execution_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Headers\n [ERROR_CODES.HEADERS_ENRICHMENT_FAILED]: {\n code: ERROR_CODES.HEADERS_ENRICHMENT_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.enrichment_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_VALIDATION_FAILED]: {\n code: ERROR_CODES.HEADERS_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.validation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.HEADERS_MERGE_CONFLICT]: {\n code: ERROR_CODES.HEADERS_MERGE_CONFLICT,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.merge_conflict',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Regional\n [ERROR_CODES.REGION_DETECTION_FAILED]: {\n code: ERROR_CODES.REGION_DETECTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.regional.detection_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REGIONAL_PRESET_NOT_FOUND]: {\n code: ERROR_CODES.REGIONAL_PRESET_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.regional.preset_not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // External Services\n [ERROR_CODES.EXTERNAL_SERVICE_ERROR]: {\n code: ERROR_CODES.EXTERNAL_SERVICE_ERROR,\n status: HTTP_STATUS.BAD_GATEWAY,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.external.service_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Timeout\n [ERROR_CODES.TIMEOUT]: {\n code: ERROR_CODES.TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.timeout.generic',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Debugging\n [ERROR_CODES.DEBUG_TRACKING_FAILED]: {\n code: ERROR_CODES.DEBUG_TRACKING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.debug.tracking_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_OVERRIDE_FAILED]: {\n code: ERROR_CODES.DEBUG_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.override_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.DEBUG_CONFLICT_DETECTED]: {\n code: ERROR_CODES.DEBUG_CONFLICT_DETECTED,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.debug.conflict_detected',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Endpoint\n [ERROR_CODES.ENDPOINT_BUILD_FAILED]: {\n code: ERROR_CODES.ENDPOINT_BUILD_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.build_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_NOT_FOUND]: {\n code: ERROR_CODES.ENDPOINT_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.NotFound,\n userMessage: 'errors.endpoint.not_found',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.ENDPOINT_INVALID_CONFIG]: {\n code: ERROR_CODES.ENDPOINT_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.endpoint.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // Event\n [ERROR_CODES.EVENT_HANDLER_FAILED]: {\n code: ERROR_CODES.EVENT_HANDLER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.handler_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.EVENT_EMISSION_FAILED]: {\n code: ERROR_CODES.EVENT_EMISSION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.event.emission_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.MONITORING_FAILED]: {\n code: ERROR_CODES.MONITORING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.monitoring.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Polling\n [ERROR_CODES.POLLING_CANCELLED]: {\n code: ERROR_CODES.POLLING_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.polling.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n },\n [ERROR_CODES.POLLING_TIMEOUT]: {\n code: ERROR_CODES.POLLING_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.polling.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.POLLING_INVALID_CONFIG]: {\n code: ERROR_CODES.POLLING_INVALID_CONFIG,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.polling.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n\n // PubSub\n [ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED]: {\n code: ERROR_CODES.PUBSUB_SUBSCRIPTION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.subscription_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_PUBLICATION_FAILED]: {\n code: ERROR_CODES.PUBSUB_PUBLICATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.publication_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_INVALID_TOPIC]: {\n code: ERROR_CODES.PUBSUB_INVALID_TOPIC,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.pubsub.invalid_topic',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.PUBSUB_CHANNEL_ERROR]: {\n code: ERROR_CODES.PUBSUB_CHANNEL_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.pubsub.channel_error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Revalidation\n [ERROR_CODES.REVALIDATION_FAILED]: {\n code: ERROR_CODES.REVALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REVALIDATION_IN_PROGRESS]: {\n code: ERROR_CODES.REVALIDATION_IN_PROGRESS,\n status: HTTP_STATUS.CONFLICT,\n category: ERROR_CATEGORY.Cache,\n userMessage: 'errors.revalidation.in_progress',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Context\n [ERROR_CODES.CONTEXT_OPERATION_FAILED]: {\n code: ERROR_CODES.CONTEXT_OPERATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.context.operation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Request\n [ERROR_CODES.REQUEST_TIMEOUT]: {\n code: ERROR_CODES.REQUEST_TIMEOUT,\n status: HTTP_STATUS.REQUEST_TIMEOUT,\n category: ERROR_CATEGORY.Timeout,\n userMessage: 'errors.request.timeout',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_ABORTED]: {\n code: ERROR_CODES.REQUEST_ABORTED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.aborted',\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n },\n [ERROR_CODES.REQUEST_INVALID_PARAMS]: {\n code: ERROR_CODES.REQUEST_INVALID_PARAMS,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n userMessage: 'errors.request.invalid_params',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.REQUEST_PREPARATION_FAILED]: {\n code: ERROR_CODES.REQUEST_PREPARATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.request.preparation_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Response\n [ERROR_CODES.RESPONSE_INVALID_FORMAT]: {\n code: ERROR_CODES.RESPONSE_INVALID_FORMAT,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.invalid_format',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.RESPONSE_PARSING_FAILED]: {\n code: ERROR_CODES.RESPONSE_PARSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n userMessage: 'errors.response.parsing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // Client\n [ERROR_CODES.CLIENT_ERROR]: {\n code: ERROR_CODES.CLIENT_ERROR,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.error',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.CLIENT_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.initialization_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_INVALID_CONFIG]: {\n code: ERROR_CODES.CLIENT_INVALID_CONFIG,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.invalid_config',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_MISSING_BASE_URL]: {\n code: ERROR_CODES.CLIENT_MISSING_BASE_URL,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.client.missing_base_url',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.CLIENT_CANCELLED]: {\n code: ERROR_CODES.CLIENT_CANCELLED,\n status: 0,\n category: ERROR_CATEGORY.Client,\n userMessage: 'errors.client.cancelled',\n severity: ERROR_SEVERITY.Low,\n retryable: true,\n },\n\n // Configuration\n [ERROR_CODES.CONFIG_VALIDATION_FAILED]: {\n code: ERROR_CODES.CONFIG_VALIDATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n userMessage: 'errors.config.validation_failed',\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n },\n [ERROR_CODES.HEADER_PROCESSING_FAILED]: {\n code: ERROR_CODES.HEADER_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Headers,\n userMessage: 'errors.headers.processing_failed',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n [ERROR_CODES.NETWORK_OVERRIDE_FAILED]: {\n code: ERROR_CODES.NETWORK_OVERRIDE_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Network,\n userMessage: 'errors.network.override_failed',\n severity: ERROR_SEVERITY.High,\n retryable: true,\n },\n\n // Generic\n [ERROR_CODES.UNKNOWN_ERROR]: {\n code: ERROR_CODES.UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n userMessage: 'errors.unknown',\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n },\n\n // ===== Notification Package Error Definitions =====\n\n // Provider errors (retryable)\n [ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_SEND_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.send_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_CONFIGURATION_INVALID,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.configuration_invalid',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_RATE_LIMIT,\n status: HTTP_STATUS.TOO_MANY_REQUESTS,\n category: ERROR_CATEGORY.RateLimit,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.rate_limit',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_AUTH_FAILED,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.provider.auth_failed',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_TIMEOUT,\n status: HTTP_STATUS.GATEWAY_TIMEOUT,\n category: ERROR_CATEGORY.Network,\n severity: ERROR_SEVERITY.Medium,\n retryable: true,\n userMessage: 'errors.notification.provider.timeout',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_UNAVAILABLE,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.provider.unavailable',\n },\n [ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED]: {\n code: ERROR_CODES.NOTIFICATION_PROVIDER_FEATURE_NOT_SUPPORTED,\n status: HTTP_STATUS.NOT_IMPLEMENTED,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.provider.feature_not_supported',\n },\n [ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_ALL_PROVIDERS_FAILED,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Provider,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.all_providers_failed',\n },\n\n // Validation errors (non-retryable)\n [ERROR_CODES.NOTIFICATION_INVALID_INPUT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_INPUT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_input',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_RECIPIENT,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_recipient',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_TEMPLATE,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_template',\n },\n [ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD]: {\n code: ERROR_CODES.NOTIFICATION_INVALID_PAYLOAD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.invalid_payload',\n },\n [ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD]: {\n code: ERROR_CODES.NOTIFICATION_MISSING_REQUIRED_FIELD,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.required_field_missing',\n },\n [ERROR_CODES.NOTIFICATION_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.validation.failed',\n },\n\n // User Preferences\n [ERROR_CODES.NOTIFICATION_USER_OPTED_OUT]: {\n code: ERROR_CODES.NOTIFICATION_USER_OPTED_OUT,\n status: HTTP_STATUS.OK,\n category: ERROR_CATEGORY.Validation,\n severity: ERROR_SEVERITY.Low,\n retryable: false,\n userMessage: 'errors.notification.user.opted_out',\n },\n\n // Queue errors (retryable)\n [ERROR_CODES.NOTIFICATION_QUEUE_FULL]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_FULL,\n status: HTTP_STATUS.SERVICE_UNAVAILABLE,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.full',\n },\n [ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_QUEUE_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Queue,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.queue.processing_failed',\n },\n\n // Webhook errors\n [ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_SIGNATURE_INVALID,\n status: HTTP_STATUS.UNAUTHORIZED,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.webhook.signature_invalid',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_VALIDATION_FAILED,\n status: HTTP_STATUS.BAD_REQUEST,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.webhook.validation_failed',\n },\n [ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_WEBHOOK_PROCESSING_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Webhook,\n severity: ERROR_SEVERITY.High,\n retryable: true,\n userMessage: 'errors.notification.webhook.processing_failed',\n },\n\n // Template errors\n [ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_NOT_FOUND,\n status: HTTP_STATUS.NOT_FOUND,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.not_found',\n },\n [ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_TEMPLATE_RENDER_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Template,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.notification.template.render_failed',\n },\n\n // General notification errors\n [ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR]: {\n code: ERROR_CODES.NOTIFICATION_UNKNOWN_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Unknown,\n severity: ERROR_SEVERITY.Medium,\n retryable: false,\n userMessage: 'errors.notification.unknown',\n },\n [ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED]: {\n code: ERROR_CODES.NOTIFICATION_INITIALIZATION_FAILED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.notification.initialization_failed',\n },\n\n // ===== Errors Package Errors =====\n [ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED]: {\n code: ERROR_CODES.ERROR_SYSTEM_NOT_INITIALIZED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.Critical,\n retryable: false,\n userMessage: 'errors.system.not_initialized',\n },\n [ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED]: {\n code: ERROR_CODES.EVENT_FACTORY_NOT_REGISTERED,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Configuration,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.event.factory.not_registered',\n },\n [ERROR_CODES.DATABASE_ERROR]: {\n code: ERROR_CODES.DATABASE_ERROR,\n status: HTTP_STATUS.INTERNAL_SERVER_ERROR,\n category: ERROR_CATEGORY.Server,\n severity: ERROR_SEVERITY.High,\n retryable: false,\n userMessage: 'errors.database',\n },\n};\n","/**\n * Enum representing the types of events in the application.\n * Uses dot notation for event naming convention.\n *\n * @example\n * ```typescript\n * import { EVENT_TYPE } from '@plyaz/types';\n *\n * const eventType = EVENT_TYPE.AppInit; // 'app.init'\n * ```\n */\nexport const EVENT_TYPE = {\n /** Application initialization event. */\n AppInit: 'app.init',\n} as const;\n\n/**\n * Const representing the priority levels for events.\n * Used to determine processing order and resource allocation.\n *\n * @example\n * ```typescript\n * import { EVENT_PRIORITY } from '@plyaz/types';\n *\n * const priority = EVENT_PRIORITY.High; // 'high'\n * ```\n */\nexport const EVENT_PRIORITY = {\n /** Low priority event. */\n Low: 'low',\n /** Normal priority event. */\n Normal: 'normal',\n /** High priority event. */\n High: 'high',\n /** Critical priority event. */\n Critical: 'critical',\n} as const;\n\n/**\n * Const representing the status of an event.\n * Tracks the lifecycle of event processing from creation to completion.\n *\n * @example\n * ```typescript\n * import { EVENT_STATUS } from '@plyaz/types';\n *\n * const status = EVENT_STATUS.Processing; // 'processing'\n *\n * // Typical event lifecycle:\n * // Pending -> Processing -> Completed\n * // or\n * // Pending -> Processing -> Failed -> Retrying -> Processing -> Completed\n * ```\n */\nexport const EVENT_STATUS = {\n /** Event is pending and has not started processing. */\n Pending: 'pending',\n /** Event is currently being processed. */\n Processing: 'processing',\n /** Event has been completed successfully. */\n Completed: 'completed',\n /** Event processing failed. */\n Failed: 'failed',\n /** Event is being retried after a failure. */\n Retrying: 'retrying',\n} as const;\n","/**\n * Locale and Currency Types\n *\n * Type definitions for internationalization and currency handling.\n *\n * @module locale/types\n */\n\n/**\n * Common currency codes (ISO 4217)\n */\nexport const CURRENCY_CODES = {\n // Major currencies\n USD: 'USD', // US Dollar\n EUR: 'EUR', // Euro\n GBP: 'GBP', // British Pound Sterling\n JPY: 'JPY', // Japanese Yen\n CHF: 'CHF', // Swiss Franc\n CAD: 'CAD', // Canadian Dollar\n AUD: 'AUD', // Australian Dollar\n CNY: 'CNY', // Chinese Yuan Renminbi\n\n // Asian currencies\n INR: 'INR', // Indian Rupee\n KRW: 'KRW', // South Korean Won\n SGD: 'SGD', // Singapore Dollar\n HKD: 'HKD', // Hong Kong Dollar\n TWD: 'TWD', // Taiwan New Dollar\n THB: 'THB', // Thai Baht\n IDR: 'IDR', // Indonesian Rupiah\n MYR: 'MYR', // Malaysian Ringgit\n PHP: 'PHP', // Philippine Peso\n VND: 'VND', // Vietnamese Dong\n BDT: 'BDT', // Bangladeshi Taka\n PKR: 'PKR', // Pakistani Rupee\n LKR: 'LKR', // Sri Lankan Rupee\n\n // European currencies\n SEK: 'SEK', // Swedish Krona\n NOK: 'NOK', // Norwegian Krone\n DKK: 'DKK', // Danish Krone\n PLN: 'PLN', // Polish Zloty\n CZK: 'CZK', // Czech Koruna\n HUF: 'HUF', // Hungarian Forint\n RON: 'RON', // Romanian Leu\n BGN: 'BGN', // Bulgarian Lev\n HRK: 'HRK', // Croatian Kuna\n RSD: 'RSD', // Serbian Dinar\n ISK: 'ISK', // Icelandic Króna\n\n // Americas currencies\n BRL: 'BRL', // Brazilian Real\n MXN: 'MXN', // Mexican Peso\n ARS: 'ARS', // Argentine Peso\n CLP: 'CLP', // Chilean Peso\n COP: 'COP', // Colombian Peso\n PEN: 'PEN', // Peruvian Sol\n UYU: 'UYU', // Uruguayan Peso\n VES: 'VES', // Venezuelan Bolívar\n BOB: 'BOB', // Bolivian Boliviano\n PYG: 'PYG', // Paraguayan Guarani\n CRC: 'CRC', // Costa Rican Colón\n GTQ: 'GTQ', // Guatemalan Quetzal\n HNL: 'HNL', // Honduran Lempira\n NIO: 'NIO', // Nicaraguan Córdoba\n PAB: 'PAB', // Panamanian Balboa\n DOP: 'DOP', // Dominican Peso\n JMD: 'JMD', // Jamaican Dollar\n TTD: 'TTD', // Trinidad and Tobago Dollar\n BBD: 'BBD', // Barbadian Dollar\n\n // Middle Eastern currencies\n AED: 'AED', // UAE Dirham\n SAR: 'SAR', // Saudi Riyal\n QAR: 'QAR', // Qatari Riyal\n KWD: 'KWD', // Kuwaiti Dinar\n BHD: 'BHD', // Bahraini Dinar\n OMR: 'OMR', // Omani Rial\n JOD: 'JOD', // Jordanian Dinar\n ILS: 'ILS', // Israeli New Shekel\n TRY: 'TRY', // Turkish Lira\n IQD: 'IQD', // Iraqi Dinar\n IRR: 'IRR', // Iranian Rial\n LBP: 'LBP', // Lebanese Pound\n SYP: 'SYP', // Syrian Pound\n\n // African currencies\n ZAR: 'ZAR', // South African Rand\n NGN: 'NGN', // Nigerian Naira\n EGP: 'EGP', // Egyptian Pound\n KES: 'KES', // Kenyan Shilling\n GHS: 'GHS', // Ghanaian Cedi\n MAD: 'MAD', // Moroccan Dirham\n TND: 'TND', // Tunisian Dinar\n DZD: 'DZD', // Algerian Dinar\n ETB: 'ETB', // Ethiopian Birr\n TZS: 'TZS', // Tanzanian Shilling\n UGX: 'UGX', // Ugandan Shilling\n ZMW: 'ZMW', // Zambian Kwacha\n BWP: 'BWP', // Botswana Pula\n MUR: 'MUR', // Mauritian Rupee\n\n // Pacific currencies\n NZD: 'NZD', // New Zealand Dollar\n FJD: 'FJD', // Fijian Dollar\n PGK: 'PGK', // Papua New Guinean Kina\n\n // Former Soviet Union currencies\n RUB: 'RUB', // Russian Ruble\n UAH: 'UAH', // Ukrainian Hryvnia\n BYN: 'BYN', // Belarusian Ruble\n KZT: 'KZT', // Kazakhstani Tenge\n UZS: 'UZS', // Uzbekistani Som\n AZN: 'AZN', // Azerbaijani Manat\n GEL: 'GEL', // Georgian Lari\n AMD: 'AMD', // Armenian Dram\n\n // Cryptocurrency representations (unofficial)\n BTC: 'BTC', // Bitcoin\n ETH: 'ETH', // Ethereum\n USDT: 'USDT', // Tether\n USDC: 'USDC', // USD Coin\n} as const;\n\n/**\n * ISO 4217 Currency Code type\n */\nexport type CurrencyCode = (typeof CURRENCY_CODES)[keyof typeof CURRENCY_CODES];\n","/**\n * Enum representing supported EVM-compatible blockchain networks by their numeric chain IDs.\n * @description These IDs are used to identify the specific network when interacting with wallets or smart contracts.\n * @see https://chainlist.org for reference chain IDs\n *\n * @example\n * ```typescript\n * import { CHAIN_ID } from '@plyaz/types';\n *\n * const chainId = CHAIN_ID.EthereumMainnet; // 1\n * const isTestnet = chainId === CHAIN_ID.EthereumSepolia || chainId === CHAIN_ID.PolygonAmoy;\n * ```\n */\nexport const CHAIN_ID = {\n /** Ethereum Mainnet (Chain ID: 1). */\n EthereumMainnet: 1,\n\n /** Ethereum Sepolia Testnet (Chain ID: 11155111). */\n EthereumSepolia: 11_155_111,\n\n /** Optimism Mainnet (Chain ID: 10). */\n Optimism: 10,\n\n /** Optimism Sepolia Testnet (Chain ID: 11155420). */\n OptimismSepolia: 11_155_420,\n\n /** Arbitrum One Mainnet (Chain ID: 42161). */\n Arbitrum: 42_161,\n\n /** Arbitrum Sepolia Testnet (Chain ID: 421614). */\n ArbitrumSepolia: 421_614,\n\n /** Polygon Mainnet (Chain ID: 137). */\n Polygon: 137,\n\n /** Polygon Amoy Testnet (Chain ID: 80002). */\n PolygonAmoy: 80_002,\n\n /** Base Mainnet (Chain ID: 8453). */\n Base: 8_453,\n\n /** Base Sepolia Testnet (Chain ID: 84532). */\n BaseSepolia: 84_532,\n} as const;\n","/**\n * Comprehensive enumeration of all payment-related events that can occur\n * in the system. Events are organized by category and follow a hierarchical\n * naming convention for easy filtering and subscription.\n *\n * Naming Convention:\n * - Category.Action (e.g., payment.completed)\n * - Use present tense for ongoing events, past tense for completed events\n * - Include both success and failure events for complete audit trails\n */\nexport enum PAYMENTEVENTTYPE {\n // Payment lifecycle events\n PaymentInitiated = 'payment.initiated',\n PaymentProcessing = 'payment.processing',\n PaymentRequiresAction = 'payment.requires_action',\n PaymentCompleted = 'payment.completed',\n PaymentFailed = 'payment.failed',\n PaymentCancelled = 'payment.cancelled',\n PaymentExpired = 'payment.expired',\n PaymentAuthorized = 'payment.authorized',\n PaymentCaptured = 'payment.captured',\n PaymentHeld = 'payment.held',\n PaymentReleased = 'payment.released',\n\n // Refund lifecycle events\n RefundRequested = 'refund.requested',\n RefundApproved = 'refund.approved',\n RefundRejected = 'refund.rejected',\n RefundProcessing = 'refund.processing',\n RefundCompleted = 'refund.completed',\n RefundFailed = 'refund.failed',\n RefundCancelled = 'refund.cancelled',\n\n // Provider interaction events\n ProviderWebhookReceived = 'provider.webhook.received',\n ProviderWebhookProcessed = 'provider.webhook.processed',\n ProviderWebhookFailed = 'provider.webhook.failed',\n ProviderApiCalled = 'provider.api.called',\n ProviderApiSucceeded = 'provider.api.succeeded',\n ProviderApiFailed = 'provider.api.failed',\n ProviderTimeout = 'provider.timeout',\n ProviderHealthChanged = 'provider.health.changed',\n\n // Financial events\n SettlementInitiated = 'settlement.initiated',\n SettlementCompleted = 'settlement.completed',\n SettlementFailed = 'settlement.failed',\n PayoutRequested = 'payout.requested',\n PayoutProcessed = 'payout.processed',\n PayoutFailed = 'payout.failed',\n\n // Dispute and chargeback events\n ChargebackReceived = 'chargeback.received',\n ChargebackResponded = 'chargeback.responded',\n ChargebackWon = 'chargeback.won',\n ChargebackLost = 'chargeback.lost',\n DisputeCreated = 'dispute.created',\n DisputeUpdated = 'dispute.updated',\n DisputeResolved = 'dispute.resolved',\n DisputeEscalated = 'dispute.escalated',\n\n // Security and fraud events\n FraudDetected = 'fraud.detected',\n FraudReviewRequired = 'fraud.review_required',\n FraudCleared = 'fraud.cleared',\n SuspiciousActivity = 'suspicious.activity',\n PaymentBlocked = 'payment.blocked',\n SecurityCheckFailed = 'security.check_failed',\n VelocityLimitExceeded = 'velocity.limit_exceeded',\n\n // Payment method events\n PaymentMethodAdded = 'payment_method.added',\n PaymentMethodUpdated = 'payment_method.updated',\n PaymentMethodDeleted = 'payment_method.deleted',\n PaymentMethodVerified = 'payment_method.verified',\n PaymentMethodExpired = 'payment_method.expired',\n\n // Subscription events\n SubscriptionCreated = 'subscription.created',\n SubscriptionUpdated = 'subscription.updated',\n SubscriptionCancelled = 'subscription.cancelled',\n SubscriptionRenewed = 'subscription.renewed',\n SubscriptionFailed = 'subscription.failed',\n SubscriptionTrialStarted = 'subscription.trial_started',\n SubscriptionTrialEnded = 'subscription.trial_ended',\n\n // System and operational events\n PaymentLimitsUpdated = 'payment_limits.updated',\n PaymentLimitsExceeded = 'payment_limits.exceeded',\n ProviderConfigUpdated = 'provider.config_updated',\n ProviderMaintenanceStarted = 'provider.maintenance_started',\n ProviderMaintenanceEnded = 'provider.maintenance_ended',\n\n // Compliance and audit events\n ComplianceCheckRequired = 'compliance.check_required',\n ComplianceCheckPassed = 'compliance.check_passed',\n ComplianceCheckFailed = 'compliance.check_failed',\n AuditTrailCreated = 'audit.trail_created',\n RegulatoryReportGenerated = 'regulatory.report_generated',\n}\n\n/**\n * Payment event categories for organization and routing.\n */\nexport enum PAYMENTEVENTCATEGORY {\n TRANSACTION = 'transaction',\n REFUND = 'refund',\n PROVIDER = 'provider',\n SECURITY = 'security',\n COMPLIANCE = 'compliance',\n FINANCIAL = 'financial',\n SUBSCRIPTION = 'subscription',\n SYSTEM = 'system',\n AUDIT = 'audit',\n}\n\n/**\n * Error categories for payment events.\n */\nexport enum PAYMENTERRORCATEGORY {\n UserError = 'user_error', // User input or action errors\n ProviderError = 'provider_error', // Payment provider errors\n SystemError = 'system_error', // Internal system errors\n NetworkError = 'network_error', // Network connectivity errors\n FraudError = 'fraud_error', // Fraud detection errors\n ComplianceError = 'compliance_error', // Regulatory compliance errors\n LimitError = 'limit_error', // Limit exceeded errors\n ConfigurationError = 'configuration_error', // Configuration errors\n TimeoutError = 'timeout_error', // Timeout errors\n ValidationError = 'validation_error', // Data validation errors\n}\n","/**\n * Event processing status enumeration.\n */\nexport enum EVENTPROCESSINGSTATUS {\n Received = 'received', // Event received from provider\n Validating = 'validating', // Signature and format validation\n Normalizing = 'normalizing', // Converting to unified format\n Normalized = 'normalized', // Successfully normalized\n Processing = 'processing', // Business logic processing\n Completed = 'completed', // Processing completed successfully\n Failed = 'failed', // Processing failed\n Retrying = 'retrying', // Retrying after failure\n Skipped = 'skipped', // Skipped due to filters/rules\n}\n","/**\n * Enumeration of all supported payment providers in the Plyaz ecosystem.\n */\nexport enum PAYMENTPROVIDERTYPE {\n // Traditional payment processors\n Stripe = 'stripe',\n Paypal = 'paypal',\n CheckoutCom = 'checkout_com',\n Adyen = 'adyen',\n\n // Cryptocurrency payment providers\n Moonpay = 'moonpay',\n CoinbaseCommerce = 'coinbase_commerce',\n BlockchainBridge = 'blockchain_bridge',\n\n // Regional payment providers\n Pix = 'pix',\n Boleto = 'boleto',\n Sepa = 'sepa',\n Ideal = 'ideal',\n Sofort = 'sofort',\n Alipay = 'alipay',\n WechatPay = 'wechat_pay',\n\n // Mock provider for testing\n MockProvider = 'mock_provider',\n}\n\n/**\n * Enumeration of payment methods supported across all providers.\n */\nexport enum PAYMENTMETHOD {\n // Traditional payment methods\n CreditCard = 'credit_card',\n DebitCard = 'debit_card',\n BankTransfer = 'bank_transfer',\n PaypalAccount = 'paypal_account',\n\n // Cryptocurrency payment methods\n CryptoBitcoin = 'crypto_bitcoin',\n CryptoEthereum = 'crypto_ethereum',\n CryptoPolygon = 'crypto_polygon',\n CryptoOptimism = 'crypto_optimism',\n CryptoUsdc = 'crypto_usdc',\n CryptoUsdt = 'crypto_usdt',\n CryptoNativeToken = 'crypto_native_token',\n\n // Regional payment methods\n PixInstant = 'pix_instant',\n BoletoBancario = 'boleto_bancario',\n SepaDirectDebit = 'sepa_direct_debit',\n IdealBank = 'ideal_bank',\n SofortBanking = 'sofort_banking',\n AlipayDigital = 'alipay_digital',\n WechatPayDigital = 'wechat_pay_digital',\n\n // Digital wallets\n ApplePay = 'apple_pay',\n GooglePay = 'google_pay',\n SamsungPay = 'samsung_pay',\n}\n\n/**\n * Comprehensive payment status enumeration.\n */\nexport enum PAYMENTSTATUS {\n // Initial states\n Initiated = 'initiated',\n Pending = 'pending',\n Processing = 'processing',\n\n // Action required states\n RequiresAction = 'requires_action',\n RequiresConfirmation = 'requires_confirmation',\n RequiresPaymentMethod = 'requires_payment_method',\n\n // Success states\n Completed = 'completed',\n Settled = 'settled',\n\n // Failure states\n Failed = 'failed',\n Declined = 'declined',\n Cancelled = 'cancelled',\n Expired = 'expired',\n\n // Refund states\n Refunded = 'refunded',\n PartiallyRefunded = 'partially_refunded',\n\n // Dispute states\n Disputed = 'disputed',\n Chargeback = 'chargeback',\n ChargebackResolved = 'chargeback_resolved',\n\n // Special states\n Held = 'held',\n Authorized = 'authorized',\n Captured = 'captured',\n}\n\n/**\n * Transaction type enumeration.\n */\nexport enum TRANSACTIONTYPE {\n Payment = 'payment',\n Refund = 'refund',\n PartialRefund = 'partial_refund',\n Withdrawal = 'withdrawal',\n Donation = 'donation',\n Subscription = 'subscription',\n SubscriptionRenewal = 'subscription_renewal',\n Fee = 'fee',\n Chargeback = 'chargeback',\n Adjustment = 'adjustment',\n Reward = 'reward',\n Penalty = 'penalty',\n Transfer = 'transfer',\n}\n\n/**\n * User type enumeration.\n */\nexport enum USERTYPE {\n Fan = 'fan',\n Athlete = 'athlete',\n Club = 'club',\n Agent = 'agent',\n Scout = 'scout',\n Admin = 'admin',\n System = 'system',\n}\n\n/**\n * Product type enumeration.\n */\nexport enum PRODUCTTYPE {\n Campaign = 'campaign',\n Subscription = 'subscription',\n Nft = 'nft',\n Merchandise = 'merchandise',\n EventTicket = 'event_ticket',\n PremiumContent = 'premium_content',\n TrainingSession = 'training_session',\n Consultation = 'consultation',\n DigitalProduct = 'digital_product',\n PhysicalProduct = 'physical_product',\n}\n","/**\n * Enumeration of action types that users might need to complete.\n */\nexport enum REQUIREDACTIONTYPE {\n /** Redirect to external page (3D Secure, bank auth, etc.) */\n Redirect = 'redirect',\n\n /** Enter SMS or email verification code */\n OtpVerification = 'otp_verification',\n\n /** Upload identity or financial documents */\n DocumentUpload = 'document_upload',\n\n /** Provide additional payment information */\n AdditionalPaymentInfo = 'additional_payment_info',\n\n /** Confirm payment via mobile app or email */\n PaymentConfirmation = 'payment_confirmation',\n\n /** Contact customer support for manual verification */\n ManualVerification = 'manual_verification',\n\n /** Wait for bank transfer or other delayed method */\n WaitForCompletion = 'wait_for_completion',\n}\n","/**\n * Cost optimization strategies.\n */\nexport enum COSTOPTIMIZATIONSTRATEGY {\n /** Always use cheapest option */\n Aggressive = 'aggressive',\n\n /** Balance cost with reliability */\n Balanced = 'balanced',\n\n /** Prefer reliability over cost */\n Conservative = 'conservative',\n\n /** Optimize for specific cost components */\n Targeted = 'targeted',\n}\n\n/**\n * Failover strategies.\n */\nexport enum FAILOVERSTRATEGY {\n /** Use predefined provider order */\n PriorityOrder = 'priority_order',\n\n /** Failover to next available provider */\n NextAvailable = 'next_available',\n\n /** Failover based on performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Failover to least loaded provider */\n LoadBalanced = 'load_balanced',\n\n /** Geographic failover preference */\n Geographic = 'geographic',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORYFRAMEWORK {\n PciDss = 'pci_dss',\n Gdpr = 'gdpr',\n Psd2 = 'psd2',\n Sox = 'sox',\n Aml = 'aml',\n Kyc = 'kyc',\n Ccpa = 'ccpa',\n LocalBanking = 'local_banking',\n}\n\n/**\n * Load balancing strategies.\n */\nexport enum LOADBALANCINGSTRATEGY {\n /** Rotate through providers evenly */\n RoundRobin = 'round_robin',\n\n /** Use weighted distribution */\n Weighted = 'weighted',\n\n /** Choose provider with least active traffic */\n LeastConnections = 'least_connections',\n\n /** Choose based on best performance metrics */\n PerformanceBased = 'performance_based',\n\n /** Custom strategy defined by merchant */\n Custom = 'custom',\n}\n\n/**\n * Types of performance metrics.\n */\nexport enum PERFORMANCEMETRICTYPE {\n Latency = 'latency',\n SuccessRate = 'success_rate',\n ErrorRate = 'error_rate',\n Throughput = 'throughput',\n Retries = 'retries',\n Availability = 'availability',\n Cost = 'cost',\n}\n\n/**\n * Primary routing strategies.\n */\nexport enum ROUTINGSTRATEGY {\n /** Optimize for lowest total cost */\n CostOptimized = 'cost_optimized',\n\n /** Optimize for highest reliability */\n ReliabilityFirst = 'reliability_first',\n\n /** Optimize for fastest processing */\n PerformanceFirst = 'performance_first',\n\n /** Balance cost, reliability, and performance */\n Balanced = 'balanced',\n\n /** Use user or region preferences */\n UserPreference = 'user_preference',\n\n /** Distribute load evenly */\n RoundRobin = 'round_robin',\n\n /** Custom routing logic */\n Custom = 'custom',\n}\n","export enum REFUND_ERROR_TYPES {\n NotAllowed = 'not_allowed',\n Authorization = 'authorization',\n Processing = 'processing',\n}\n\n/**\n * Regulatory frameworks.\n */\nexport enum REGULATORY_FRAMEWORK {\n PCIDSS = 'pci_dss',\n GDPR = 'gdpr',\n PSD2 = 'psd2',\n SOX = 'sox',\n AML = 'aml',\n KYC = 'kyc',\n CCPA = 'ccpa',\n LOCALBANKING = 'local_banking',\n}\n\n/**\n * Refund not allowed reasons.\n */\nexport enum REFUND_NOT_ALLOWED_REASON {\n AlreadyRefunded = 'already_refunded',\n PartialNotSupported = 'partial_not_supported',\n TimeLimitExceeded = 'time_limit_exceeded',\n InsufficientBalance = 'insufficient_balance',\n ProviderRestriction = 'provider_restriction',\n ComplianceRestriction = 'compliance_restriction',\n}\n\n/**\n * Security threat types.\n */\nexport enum SECURITY_THREAT_TYPE {\n FraudSuspected = 'fraud_suspected',\n VelocityExceeded = 'velocity_exceeded',\n SuspiciousPattern = 'suspicious_pattern',\n BlockedRegion = 'blocked_region',\n BlacklistedMethod = 'blacklisted_method',\n SystemThreat = 'system_threat',\n}\n\n/**\n * Webhook verification failure reasons.\n */\nexport enum WEBHOOK_VERIFICATION_REASON {\n InvalidSignature = 'invalid_signature',\n MissingSignature = 'missing_signature',\n ExpiredTimestamp = 'expired_timestamp',\n InvalidPayload = 'invalid_payload',\n UnknownEndpoint = 'unknown_endpoint',\n}\n\n/**\n * Payment error categories for organizing and handling different types of errors.\n */\nexport enum PAYMENT_ERROR_CATEGORY {\n Validation = 'validation',\n Authentication = 'authentication',\n Authorization = 'authorization',\n Processing = 'processing',\n Provider = 'provider',\n Network = 'network',\n Fraud = 'fraud',\n Compliance = 'compliance',\n Limits = 'limits',\n Configuration = 'configuration',\n Timeout = 'timeout',\n System = 'system',\n Webhook = 'webhook',\n Refund = 'refund',\n Security = 'security',\n}\n","/**\n * Notification Constants and Enums\n *\n * Type-level constants and enum values for the notifications system.\n *\n * @module notifications/enums\n */\n\n/**\n * Notification Providers\n * Standard provider names to ensure consistency across the package\n */\nexport const NOTIFICATION_PROVIDERS = {\n /** Infobip omnichannel provider (Email, SMS, WhatsApp) - PRIMARY */\n INFOBIP: 'Infobip',\n\n /** SendGrid email provider - FALLBACK */\n SENDGRID: 'SendGrid',\n\n /** Mock email provider for testing */\n MOCK_EMAIL: 'MockEmail',\n\n /** Mock SMS provider for testing */\n MOCK_SMS: 'MockSMS',\n\n /** Mock push provider for testing */\n MOCK_PUSH: 'MockPush',\n} as const;\n\n/**\n * Notification Channels\n * Available notification delivery channels\n */\nexport const NOTIFICATION_CHANNELS = {\n EMAIL: 'email',\n SMS: 'sms',\n PUSH: 'push',\n} as const;\n\n/**\n * Notification Categories (FR-4.3)\n * Determines opt-out behavior for compliance\n */\nexport const NOTIFICATION_CATEGORIES = {\n /** Cannot be opted out - compliance requirement (password resets, order confirmations) */\n TRANSACTIONAL: 'transactional',\n\n /** User can opt-out (newsletters, promotions) */\n MARKETING: 'marketing',\n\n /** User can opt-out (likes, comments, follows) */\n SOCIAL: 'social',\n\n /** System alerts and notifications (security alerts, system status) */\n SYSTEM: 'system',\n\n /** Promotional offers and campaigns */\n PROMOTIONAL: 'promotional',\n} as const;\n\n/**\n * Signature verification method for webhooks\n */\nexport enum SIGNATURE_METHOD {\n HmacSha256 = 'hmac-sha256',\n HmacSha1 = 'hmac-sha1',\n HmacSha512 = 'hmac-sha512',\n Custom = 'custom',\n}\n\n/**\n * Webhook event types mapped to internal notification events\n */\nexport enum WEBHOOK_EVENT_TYPE {\n // Delivery events\n Delivered = 'delivered',\n Bounced = 'bounced',\n Deferred = 'deferred',\n Dropped = 'dropped',\n\n // Engagement events\n Opened = 'opened',\n Clicked = 'clicked',\n\n // Spam/unsubscribe events\n SpamReport = 'spam_report',\n Unsubscribed = 'unsubscribed',\n\n // SMS-specific\n SmsDelivered = 'sms_delivered',\n SmsFailed = 'sms_failed',\n\n // Push-specific\n PushDelivered = 'push_delivered',\n PushFailed = 'push_failed',\n\n // Generic\n Unknown = 'unknown',\n}\n\n/**\n * Webhook encryption method for PII-safe IDs\n */\nexport enum WEBHOOK_ENCRYPTION_METHOD {\n /** HMAC-SHA256 hashing (recommended for IDs) */\n HmacSha256 = 'hmac-sha256',\n /** HMAC-SHA512 hashing (stronger) */\n HmacSha512 = 'hmac-sha512',\n /** No encryption (not recommended) */\n None = 'none',\n}\n\n/**\n * Common MIME types for attachments\n */\nexport const MIME_TYPES = {\n // Documents\n PDF: 'application/pdf',\n DOC: 'application/msword',\n DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n XLS: 'application/vnd.ms-excel',\n XLSX: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n PPT: 'application/vnd.ms-powerpoint',\n PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n TXT: 'text/plain',\n CSV: 'text/csv',\n\n // Images\n PNG: 'image/png',\n JPG: 'image/jpeg',\n JPEG: 'image/jpeg',\n GIF: 'image/gif',\n SVG: 'image/svg+xml',\n WEBP: 'image/webp',\n\n // Archives\n ZIP: 'application/zip',\n RAR: 'application/x-rar-compressed',\n TAR: 'application/x-tar',\n GZIP: 'application/gzip',\n\n // Other\n JSON: 'application/json',\n XML: 'application/xml',\n} as const;\n\n/**\n * Common file extensions for attachments\n */\nexport const FILE_EXTENSIONS = {\n // Documents\n PDF: '.pdf',\n DOC: '.doc',\n DOCX: '.docx',\n XLS: '.xls',\n XLSX: '.xlsx',\n PPT: '.ppt',\n PPTX: '.pptx',\n TXT: '.txt',\n CSV: '.csv',\n\n // Images\n PNG: '.png',\n JPG: '.jpg',\n JPEG: '.jpeg',\n GIF: '.gif',\n SVG: '.svg',\n WEBP: '.webp',\n\n // Archives\n ZIP: '.zip',\n RAR: '.rar',\n TAR: '.tar',\n GZ: '.gz',\n GZIP: '.gzip',\n\n // Other\n JSON: '.json',\n XML: '.xml',\n} as const;\n","/**\n * Notification Validation Schemas\n *\n * Zod schemas for validating notification inputs\n * Ensures type safety and prevents invalid data from entering the system\n *\n * @module notifications/schemas\n */\n\nimport { z } from 'zod';\nimport { NOTIFICATION_CATEGORIES } from './enums';\n\n// Validation length constants\nconst MAX_EMAIL_LENGTH = 255;\nconst MAX_USER_ID_LENGTH = 255;\nconst MAX_TEMPLATE_ID_LENGTH = 255;\nconst MAX_DEVICE_TOKEN_LENGTH = 512;\n\n/**\n * Email address validation\n * - Must be valid email format\n * - Max 255 characters\n * - Automatically lowercased and trimmed\n */\nexport const EmailSchema = z\n .string()\n .email('Invalid email address format')\n .max(MAX_EMAIL_LENGTH, 'Email address must be 255 characters or less')\n .transform(val => val.trim().toLowerCase());\n\n/**\n * Phone number validation (E.164 format)\n * - Must start with optional + followed by country code\n * - 1-15 digits total (E.164 standard)\n * - Examples: +14155552671, +442071838750, +8613800000000\n */\nexport const PhoneSchema = z\n .string()\n .regex(/^\\+?[1-9]\\d{1,14}$/, 'Invalid phone number format (E.164 expected)')\n .describe('Phone number in E.164 format');\n\n/**\n * User ID validation\n * - Required, non-empty string\n * - Max 255 characters\n */\nexport const UserIdSchema = z\n .string()\n .min(1, 'User ID is required')\n .max(MAX_USER_ID_LENGTH, 'User ID must be 255 characters or less');\n\n/**\n * Template ID validation\n * - Only lowercase letters, numbers, hyphens, and slashes\n * - Used for file path construction, must be safe\n * - Examples: welcome, password-reset, order/confirmation\n */\nexport const TemplateIdSchema = z\n .string()\n .min(1, 'Template ID is required')\n .regex(\n /^[a-z0-9-/]+$/,\n 'Template ID must contain only lowercase letters, numbers, hyphens, and slashes'\n )\n .max(MAX_TEMPLATE_ID_LENGTH, 'Template ID must be 255 characters or less');\n\n/**\n * Locale validation\n * - ISO 639-1 language code (2 lowercase letters)\n * - Optional ISO 3166-1 country code (2 uppercase letters)\n * - Examples: en, en-US, es, es-MX, fr-FR\n */\nexport const LocaleSchema = z\n .string()\n .regex(/^[a-z]{2}(-[A-Z]{2})?$/, 'Locale must be in format: en, en-US, es, es-MX')\n .describe('Locale in ISO 639-1 format');\n\n/**\n * Notification category validation (FR-4.3)\n * - transactional: Cannot be opted out (compliance requirement)\n * - marketing: User can opt-out\n * - social: User can opt-out\n */\nexport const NotificationCategorySchema = z\n .enum([\n NOTIFICATION_CATEGORIES.TRANSACTIONAL,\n NOTIFICATION_CATEGORIES.MARKETING,\n NOTIFICATION_CATEGORIES.SOCIAL,\n NOTIFICATION_CATEGORIES.SYSTEM,\n NOTIFICATION_CATEGORIES.PROMOTIONAL,\n ] as const)\n .default(NOTIFICATION_CATEGORIES.TRANSACTIONAL)\n .describe('Notification category for compliance and user preferences');\n\n/**\n * Queue priority validation\n */\nexport const QueuePrioritySchema = z.enum(['high', 'normal', 'low']);\n\n/**\n * Correlation ID validation\n * - UUID v4 format\n * - Used for tracing across systems\n */\nexport const CorrelationIdSchema = z\n .string()\n .uuid('Correlation ID must be a valid UUID v4')\n .describe('UUID v4 correlation ID');\n\n/**\n * Template data validation\n * - Must be a valid object\n * - Can contain strings, numbers, booleans, or nested objects\n * - Arrays are allowed\n */\nexport const TemplateDataSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * Device token validation (for push notifications)\n * - Non-empty string\n * - Max 512 characters (FCM tokens can be quite long)\n */\nexport const DeviceTokenSchema = z\n .string()\n .min(1, 'Device token is required')\n .max(MAX_DEVICE_TOKEN_LENGTH, 'Device token must be 512 characters or less');\n","/**\n * Webhook Validation Schemas\n *\n * Zod schemas for validating webhook payloads from notification providers\n * Provider-specific webhook event structures\n *\n * @module notifications/webhooks.schemas\n */\n\nimport { z } from 'zod';\n\n// ============================================================================\n// INFOBIP EMAIL DELIVERY WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Email Status schema\n */\nexport const InfobipEmailStatusSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n action: z.string().optional(),\n});\n\n/**\n * Infobip Error Info schema\n */\nexport const InfobipErrorInfoSchema = z.object({\n groupId: z.number().optional(),\n groupName: z.string().optional(),\n id: z.number().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n permanent: z.boolean().optional(),\n});\n\n/**\n * Infobip Price Info schema\n */\nexport const InfobipPriceInfoSchema = z.object({\n pricePerMessage: z.number().optional(),\n currency: z.string().optional(),\n});\n\n/**\n * Infobip Delivery Result schema\n */\nexport const InfobipDeliveryResultSchema = z\n .object({\n messageId: z.string().optional(),\n to: z.string().optional(),\n bulkId: z.string().optional(),\n sentAt: z.string().optional(),\n doneAt: z.string().optional(),\n status: InfobipEmailStatusSchema.optional(),\n error: InfobipErrorInfoSchema.optional(),\n attemptCount: z.number().optional(),\n timeToFirstAttempt: z.number().optional(),\n sendingIp: z.string().optional(),\n price: InfobipPriceInfoSchema.optional(),\n smsCount: z.number().optional(),\n browserLink: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n })\n .loose();\n\n/**\n * Infobip Delivery Webhook Payload schema\n */\nexport const InfobipDeliveryWebhookSchema = z.object({\n results: z.array(InfobipDeliveryResultSchema),\n});\n\n// ============================================================================\n// INFOBIP EMAIL TRACKING WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * Infobip Geo Location schema\n */\nexport const InfobipGeoLocationSchema = z\n .object({\n countryName: z.string().optional(),\n countryCode: z.string().optional(),\n regionName: z.string().optional(),\n city: z.string().optional(),\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Recipient Info schema\n */\nexport const InfobipRecipientInfoSchema = z\n .object({\n messageId: z.number().optional(),\n to: z.string().optional(),\n requestId: z.string().optional(),\n sentDateTime: z.number().optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Event schema\n */\nexport const InfobipTrackingEventSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(), // OPENED, CLICKED, COMPLAINED, LATE_BOUNCE, UNSUBSCRIBED\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(), // For CLICKED events\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n/**\n * Infobip Tracking Webhook Payload schema\n * Note: Tracking webhooks send a single event object, not an array\n */\nexport const InfobipTrackingWebhookSchema = z\n .object({\n messageId: z.number().optional(),\n bulkId: z.string().optional(),\n recipient: z.string().optional(),\n sender: z.string().optional(),\n domain: z.string().optional(),\n notificationType: z.string().optional(),\n eventId: z.string().optional(),\n sendDateTime: z.number().optional(),\n url: z.string().optional(),\n applicationId: z.string().optional(),\n entityId: z.string().optional(),\n campaignReferenceId: z.string().optional(),\n callbackData: z.string().optional(),\n geoLocation: InfobipGeoLocationSchema.optional(),\n recipientInfo: InfobipRecipientInfoSchema.optional(),\n })\n .loose();\n\n// ============================================================================\n// SENDGRID WEBHOOK SCHEMAS\n// ============================================================================\n\n/**\n * SendGrid Event schema\n */\nexport const SendGridEventSchema = z\n .object({\n email: z.string().email(),\n timestamp: z.number(),\n event: z.enum([\n 'processed',\n 'dropped',\n 'delivered',\n 'deferred',\n 'bounce',\n 'open',\n 'click',\n 'spam_report',\n 'unsubscribe',\n 'group_unsubscribe',\n 'group_resubscribe',\n ]),\n sg_event_id: z.string(),\n sg_message_id: z.string(),\n\n // Custom args (our notification metadata)\n notification_id: z.string().optional(),\n recipient_id: z.string().optional(),\n category: z.string().optional(),\n\n // Event-specific fields\n url: z.string().optional(), // For click events\n reason: z.string().optional(), // For bounce/drop events\n status: z.string().optional(), // For drop/bounce events\n response: z.string().optional(), // For bounce events\n useragent: z.string().optional(), // For open/click events\n ip: z.string().optional(), // For open/click events\n\n // Unsubscribe-specific\n asm_group_id: z.number().optional(), // Unsubscribe group ID\n })\n .loose(); // Allow additional fields\n\n/**\n * SendGrid Webhook Payload schema (array of events)\n */\nexport const SendGridWebhookSchema = z.array(SendGridEventSchema);\n\n// ============================================================================\n// TYPE EXPORTS\n// ============================================================================\n\n// Infobip webhook-specific types (prefixed to avoid collision with API types)\nexport type InfobipWebhookEmailStatus = z.infer<typeof InfobipEmailStatusSchema>;\nexport type InfobipWebhookErrorInfo = z.infer<typeof InfobipErrorInfoSchema>;\nexport type InfobipWebhookPriceInfo = z.infer<typeof InfobipPriceInfoSchema>;\nexport type InfobipWebhookDeliveryResult = z.infer<typeof InfobipDeliveryResultSchema>;\nexport type InfobipWebhookDeliveryPayload = z.infer<typeof InfobipDeliveryWebhookSchema>;\n\nexport type InfobipWebhookGeoLocation = z.infer<typeof InfobipGeoLocationSchema>;\nexport type InfobipWebhookRecipientInfo = z.infer<typeof InfobipRecipientInfoSchema>;\nexport type InfobipWebhookTrackingEvent = z.infer<typeof InfobipTrackingEventSchema>;\nexport type InfobipWebhookTrackingPayload = z.infer<typeof InfobipTrackingWebhookSchema>;\n\n// SendGrid webhook types\nexport type SendGridWebhookEvent = z.infer<typeof SendGridEventSchema>;\nexport type SendGridWebhookPayload = z.infer<typeof SendGridWebhookSchema>;\n","/**\n * Event Namespace Constants\n * Centralized constants for all event namespaces in the API package\n */\n\n/**\n * Main event namespaces for the API package\n */\nexport const EVENT_NAMESPACES = {\n HEADERS: 'headers',\n NETWORK: 'network',\n ERRORS: 'errors',\n DEBUG: 'debug',\n CONFIG: 'config',\n PERFORMANCE: 'performance',\n CLIENT: 'client',\n CACHE: 'cache',\n POLLING: 'polling',\n REQUEST: 'request',\n REVALIDATION: 'revalidation',\n EVENT_MANAGER: 'eventManager',\n} as const;\n\n/**\n * Header-specific event keys\n */\nexport const HEADER_EVENTS = {\n CHANGED: 'headers:changed',\n ENRICHED: 'headers:enriched',\n CONFLICT: 'headers:conflict',\n OVERRIDE: 'headers:override',\n TRACKED: 'headers:tracked',\n MERGED: 'headers:merged',\n FILTERED: 'headers:filtered',\n VALIDATED: 'headers:validated',\n CACHED: 'headers:cached',\n CACHE_HIT: 'headers:cache:hit',\n CACHE_MISS: 'headers:cache:miss',\n // Wildcard for all header events\n ANY: 'headers:*',\n} as const;\n\n/**\n * Network-specific event keys\n */\nexport const NETWORK_EVENTS = {\n QUALITY_CHANGE: 'network:quality:changed',\n INFO_UPDATE: 'network:info-update',\n CONFIG_OVERRIDE: 'network:config:override',\n CONFIG_RESTORED: 'network:config:restored',\n OVERRIDE_CHANGE: 'network:override-change',\n PRESET_APPLIED: 'network:preset-applied',\n PRESET_CHANGED: 'network:preset:changed',\n HINTS_UPDATED: 'network:hints:updated',\n AUTO_DETECTION: 'network:auto:detection',\n MANUAL_UPDATE: 'network:manual:update',\n // Wildcard for all network events\n ANY: 'network:*',\n} as const;\n\n/**\n * Error-specific event keys\n */\nexport const ERROR_EVENTS = {\n NETWORK_ERROR: 'errors:network',\n VALIDATION_ERROR: 'errors:validation',\n AUTHENTICATION_ERROR: 'errors:authentication',\n AUTHORIZATION_ERROR: 'errors:authorization',\n RATE_LIMIT_ERROR: 'errors:rate-limit',\n SERVER_ERROR: 'errors:server',\n CLIENT_ERROR: 'errors:client',\n TIMEOUT_ERROR: 'errors:timeout',\n CONFLICT_ERROR: 'errors:conflict',\n CACHE_ERROR: 'errors:cache',\n HEADERS_ERROR: 'errors:headers',\n RETRY_ERROR: 'errors:retry',\n STRATEGY_ERROR: 'errors:strategy',\n REGIONAL_ERROR: 'errors:regional',\n NOT_FOUND_ERROR: 'errors:not-found',\n EXTERNAL_SERVICE_ERROR: 'errors:external-service',\n UNKNOWN_ERROR: 'errors:unknown',\n GENERIC_ERROR: 'errors:generic',\n // Wildcard for all error events\n ANY: 'errors:*',\n} as const;\n\n/**\n * Handler scopes for different levels of event handlers\n * These prefixes are used for registering handlers at different priority levels\n * Can be used for any type of handler (error, request, response, debug, etc.)\n *\n * Priority order (lowest to highest):\n * 1. GLOBAL - Set via setGlobalErrorHandlers(), persists across all instances\n * 2. CONFIG - Set via setGlobalConfig({ errorHandlers }), global configuration\n * 3. CLIENT - Set via createApiClient({ errorHandlers }), instance-specific\n * 4. REQUEST/TEMPORARY - Set per-request or via updateConfig(), highest priority\n *\n * Usage:\n * - GLOBAL: For app-wide handlers that should always run (e.g., logging)\n * - CONFIG: For environment-specific handlers (e.g., dev vs prod)\n * - CLIENT: For instance-specific handlers (e.g., per-service client)\n * - REQUEST/TEMPORARY: For request-specific or runtime updates\n *\n * Note: REQUEST and TEMPORARY are aliases - both use 'request' scope\n *\n * Examples of namespaced handlers:\n * - Error handlers: 'global:error', 'config:error', 'client:error'\n * - Debug handlers: 'global:debug', 'config:debug', 'client:debug'\n * - Request handlers: 'global:request', 'config:request', 'client:request'\n */\nexport const HANDLER_SCOPES = {\n GLOBAL: 'global', // Global handlers (lowest priority, persists across all instances)\n CONFIG: 'config', // Config-level handlers (middle priority, from setGlobalConfig)\n CLIENT: 'client', // Client instance handlers (high priority, instance-specific)\n TEMPORARY: 'request', // Temporary handlers (alias for REQUEST, highest priority)\n REQUEST: 'request', // Request-level handlers (highest priority, per-request)\n} as const;\n\n/**\n * Core event scopes (excluding aliases)\n * These are the actual scope values used by the event system\n */\nexport const EVENT_SCOPES = [\n HANDLER_SCOPES.GLOBAL,\n HANDLER_SCOPES.CONFIG,\n HANDLER_SCOPES.CLIENT,\n HANDLER_SCOPES.REQUEST,\n] as const;\n\n/**\n * All event scopes including 'temporary' alias\n * Used in APIs where 'temporary' provides semantic clarity\n */\nexport const EVENT_SCOPES_WITH_TEMPORARY = [...EVENT_SCOPES, 'temporary' as const] as const;\n\n/**\n * Debug-specific event keys\n */\nexport const DEBUG_EVENTS = {\n CONFIG_CONFLICT: 'debug:config-conflict',\n CONFIG_CHANGE: 'debug:config-change',\n HEADERS_TRACKED: 'debug:headers-tracked',\n NETWORK_OVERRIDE: 'debug:network-override',\n NETWORK_STATE_CHANGED: 'debug:network-state-changed',\n NETWORK_DATA_CLEARED: 'debug:network-data-cleared',\n DEBUG_INFO: 'debug:info',\n PERFORMANCE_IMPACT: 'debug:performance-impact',\n MONITORING_ALERT: 'debug:monitoring-alert',\n CONFIG_TRACKED: 'debug:config-tracked',\n CONFLICTS_BATCH: 'debug:conflicts-batch',\n EVENT_OPERATION: 'debug:event-operation',\n // Wildcard for all debug events\n ANY: 'debug:*',\n} as const;\n\n/**\n * Configuration sources - where config updates originate from\n */\nexport const EVENTS_CONFIG_SOURCES = {\n GLOBAL: 'global',\n CREATE_API_CLIENT: 'createApiClient',\n UPDATE_CONFIG: 'updateConfig',\n MANUAL: 'manual',\n ENVIRONMENT: 'environment',\n PRESET: 'preset',\n NETWORK_AWARE: 'networkAware',\n ADAPTIVE: 'adaptive',\n} as const;\n\n/**\n * Configuration-specific event keys\n */\nexport const CONFIG_EVENTS = {\n GLOBAL_UPDATED: 'config:global-updated',\n GLOBAL_RESET: 'config:global-reset',\n ENVIRONMENT_CONFIGURED: 'config:environment-configured',\n PRESET_APPLIED: 'config:preset-applied',\n // Wildcard for all config events\n ANY: 'config:*',\n} as const;\n\n/**\n * Performance-specific event keys\n */\nexport const PERFORMANCE_EVENTS = {\n REQUEST_START: 'performance:request-start',\n REQUEST_COMPLETE: 'performance:request-complete',\n RETRY: 'performance:retry',\n THRESHOLD_EXCEEDED: 'performance:threshold-exceeded',\n OPTIMIZATION_APPLIED: 'performance:optimization-applied',\n METRIC_RECORDED: 'performance:metric-recorded',\n // Wildcard for all performance events\n ANY: 'performance:*',\n} as const;\n\n/**\n * Client-specific event keys\n */\nexport const CLIENT_EVENTS = {\n CONFLICT: 'client:conflict',\n DEBUG: 'client:debug',\n CREATED: 'client:created',\n // Wildcard for all client events\n ANY: 'client:*',\n} as const;\n\n/**\n * Cache-specific event keys\n */\nexport const CACHE_EVENTS = {\n HIT: 'cache:hit',\n MISS: 'cache:miss',\n INVALIDATE: 'cache:invalidate',\n // Wildcard for all cache events\n ANY: 'cache:*',\n} as const;\n\n/**\n * All event keys combined for easy access\n */\nexport const ALL_EVENTS = {\n ...HEADER_EVENTS,\n ...NETWORK_EVENTS,\n ...ERROR_EVENTS,\n ...DEBUG_EVENTS,\n ...CONFIG_EVENTS,\n ...PERFORMANCE_EVENTS,\n ...CLIENT_EVENTS,\n ...CACHE_EVENTS,\n} as const;\n\nexport type EventsConfigSource = (typeof EVENTS_CONFIG_SOURCES)[keyof typeof EVENTS_CONFIG_SOURCES];\n","/**\n * Queue System Enums\n */\n\n/**\n * Priority levels for queue operations\n * @description Defines the priority order for queued operations, from highest (CRITICAL) to lowest (IDLE)\n *\n * @example\n * ```typescript\n * import { PRIORITY_LEVEL } from '@plyaz/types';\n *\n * const priority = PRIORITY_LEVEL.HIGH; // 1\n * if (priority <= PRIORITY_LEVEL.HIGH) {\n * // Handle high-priority request\n * }\n * ```\n */\nexport const PRIORITY_LEVEL = {\n /** Critical priority - highest urgency (0) */\n CRITICAL: 0,\n /** High priority (1) */\n HIGH: 1,\n /** Medium priority (2) */\n MEDIUM: 2,\n /** Normal priority (3) */\n NORMAL: 3,\n /** Low priority (4) */\n LOW: 4,\n /** Idle priority - lowest urgency (5) */\n IDLE: 5,\n} as const;\n","import type { NetworkPresetConfig } from '..';\n\n/**\n * Data saver mode uses offline-optimized presets\n */\nexport const DATA_SAVER_PRESETS: NetworkPresetConfig = {\n performance: 'offline',\n cache: 'aggressive',\n retry: 'conservative',\n revalidation: 'static',\n};\n\n/**\n * Valid Client Hint header names\n */\nexport const CLIENT_HINT_HEADERS = {\n SAVE_DATA: 'save-data',\n ECT: 'ect',\n RTT: 'rtt',\n DOWNLINK: 'downlink',\n DEVICE_MEMORY: 'device-memory',\n ACCEPT_CH: 'Accept-CH',\n ACCEPT_CH_LIFETIME: 'Accept-CH-Lifetime',\n} as const;\n\n/**\n * Validation ranges for header values\n */\nexport const VALIDATION_RANGES = {\n RTT: { MIN: 0, MAX: 10000 }, // 0-10 seconds\n DOWNLINK: { MIN: 0, MAX: 10000 }, // 0-10 Gbps\n DEVICE_MEMORY: { MIN: 0, MAX: 128 }, // 0-128 GB\n} as const;\n","/**\n * Network Quality Enum\n */\n\n/**\n * Network quality levels enum\n */\nexport enum NETWORK_QUALITY {\n EXCELLENT = 'excellent', // 4G, low latency\n GOOD = 'good', // 3G or good 4G\n FAIR = 'fair', // 2G or poor 3G\n POOR = 'poor', // Slow 2G or worse\n OFFLINE = 'offline', // No connection\n UNKNOWN = 'unknown', // Unable to determine\n}\n\n/**\n * Event priority mapping\n */\nexport const EVENT_PRIORITY_MAP = {\n // Critical events\n error: 'critical',\n onNetworkError: 'critical',\n critical: 'critical',\n\n // High priority events\n config: 'high',\n auth: 'high',\n conflict: 'high',\n\n // Normal priority events\n network: 'normal',\n headers: 'normal',\n performance: 'normal',\n\n // Low priority events\n debug: 'low',\n metrics: 'low',\n tracking: 'low',\n} as const;\n\n/**\n * Export preset names for easy access\n */\nexport const NetworkPresetNames = {\n OFFLINE_FIRST: 'offline-first' as const,\n DATA_SAVER: 'data-saver' as const,\n SLOW_CONNECTION: 'slow-connection' as const,\n FAIR_CONNECTION: 'fair-connection' as const,\n GOOD_CONNECTION: 'good-connection' as const,\n EXCELLENT_CONNECTION: 'excellent-connection' as const,\n AGGRESSIVE_CACHE: 'aggressive-cache' as const,\n REALTIME: 'realtime' as const,\n BACKGROUND_SYNC: 'background-sync' as const,\n} as const;\n\n/**\n * Confidence levels for quality detection\n */\nexport const NETWORK_CONFIDENCE_LEVELS = {\n /** Excellent confidence (90%) */\n EXCELLENT: 0.9,\n /** High confidence (80%) */\n HIGH: 0.8,\n /** Medium confidence (70%) */\n MEDIUM: 0.7,\n /** Low confidence (50%) */\n LOW: 0.5,\n /** Threshold for high confidence classification */\n HIGH_THRESHOLD: 0.7,\n /** Threshold for medium confidence classification */\n MEDIUM_THRESHOLD: 0.4,\n} as const;\n\n/**\n * Network quality thresholds\n */\nexport interface QualityThresholds {\n excellentRTT: number; // < 50ms\n goodRTT: number; // < 150ms\n fairRTT: number; // < 400ms\n excellentSpeed: number; // > 10 Mbps\n goodSpeed: number; // > 2 Mbps\n fairSpeed: number; // > 0.5 Mbps\n}\n\n// Speed thresholds in Mbps\nexport const SPEED_THRESHOLDS = {\n EXCELLENT: 10,\n GOOD: 2,\n FAIR: 0.5,\n} as const;\n\n// RTT thresholds in milliseconds\nexport const RTT_THRESHOLDS = {\n EXCELLENT: 50,\n GOOD: 150,\n FAIR: 400,\n} as const;\n\nexport const DEFAULT_THRESHOLDS: QualityThresholds = {\n excellentRTT: RTT_THRESHOLDS.EXCELLENT,\n goodRTT: RTT_THRESHOLDS.GOOD,\n fairRTT: RTT_THRESHOLDS.FAIR,\n excellentSpeed: SPEED_THRESHOLDS.EXCELLENT,\n goodSpeed: SPEED_THRESHOLDS.GOOD,\n fairSpeed: SPEED_THRESHOLDS.FAIR,\n};\n","/**\n * Debugger Event Namespaces and Constants\n * Centralized definition of all debugger tracking operations and event types\n */\n\nimport type { HistoryType, UnifiedOperationType } from '..';\n\n/**\n * Factory operation types for tracking\n * Used when tracking factory-related operations\n */\nexport const FACTORY_OPERATIONS = {\n FACTORY_CREATED: 'factory_created',\n FACTORY_ACCESSED: 'factory_accessed',\n FACTORY_INITIALIZED: 'factory_initialized',\n FACTORIES_RESET: 'factories_reset',\n FACTORY_REGISTER: 'factory_register',\n HANDLER_REGISTERED: 'handler_registered',\n HANDLER_UNREGISTERED: 'handler_unregistered',\n /**\n * Indicates that a specific handler instance has been removed from a factory or scope.\n * Use this when removing a particular handler by reference or ID, as opposed to\n * HANDLER_UNREGISTERED, which refers to unregistering a handler type or all handlers.\n */\n SPECIFIC_HANDLER_REMOVED: 'specific_handler_removed',\n SCOPE_LISTENERS_CLEARED: 'scope_listeners_cleared',\n} as const;\n\n/**\n * Event system operation types\n * Used when tracking event system operations\n */\nexport const EVENT_OPERATIONS = {\n ON: 'on',\n ONCE: 'once',\n OFF: 'off',\n EMIT: 'emit',\n EMIT_ACROSS_SCOPES: 'emit_across_scopes',\n REMOVE_ALL_LISTENERS: 'removeAllListeners',\n ONCE_EXECUTED: 'once_executed',\n CONFIG_UPDATE: 'config_update',\n CONFIG_UPDATE_FAILED: 'config_update_failed',\n GLOBAL_CONFIG_UPDATE: 'global_config_update',\n GLOBAL_CONFIG_RESET: 'global_config_reset',\n SCOPE_CHANGE: 'scope_change',\n FACTORY_CREATE: 'factory_create',\n FACTORY_COORDINATION: 'factory_coordination',\n HANDLER_STRATEGY: 'handler_strategy',\n HANDLER_STRATEGY_APPLIED: 'handler_strategy_applied',\n} as const;\n\n/**\n * Queue operation types\n * Used when tracking queue operations\n */\nexport const QUEUE_OPERATIONS = {\n QUEUE_CREATED: 'queue_created',\n QUEUE_PROCESSED: 'queue_processed',\n QUEUE_CLEARED: 'queue_cleared',\n QUEUE_ERROR: 'queue_error',\n BATCH_PROCESSED: 'batch_processed',\n ITEM_ENQUEUED: 'item_enqueued',\n ITEM_DEQUEUED: 'item_dequeued',\n PRIORITY_CHANGED: 'priority_changed',\n} as const;\n\n/**\n * Config tracking sources\n * Used to identify the source of configuration changes\n */\nexport const DEBUGGER_CONFIG_SOURCES = {\n DEFAULT: 'default',\n DIRECT: 'direct',\n CLIENT: 'client',\n UNIFIED_STRATEGY: 'unifiedStrategy',\n PERFORMANCE_PRESET: 'performancePreset',\n DATA_PATTERN: 'dataPattern',\n CACHE_STRATEGY: 'cacheStrategy',\n RETRY_STRATEGY: 'retryStrategy',\n REVALIDATION_STRATEGY: 'revalidationStrategy',\n ADAPTIVE_CONFIG: 'adaptiveConfig',\n MONITORING_CONFIG: 'monitoringConfig',\n POLLING_CONFIG: 'pollingConfig',\n NETWORK_PRESET: 'networkPreset',\n NETWORK_AWARE: 'networkAware',\n NETWORK_QUALITY: 'networkQuality',\n USER_PREFERENCE: 'userPreference',\n TEMPORARY_OVERRIDE: 'temporaryOverride',\n AUTO_OPTIMIZATION: 'autoOptimization',\n NETWORK_CLIENT_HINTS: 'networkClientHints',\n HEADER_PRESET: 'headerPreset',\n ENRICHED_HEADERS: 'enrichedHeaders',\n USER_HEADERS: 'userHeaders',\n INTERCEPTOR: 'interceptor',\n CONTEXT_HEADERS: 'contextHeaders',\n ENCRYPTION: 'encryption',\n} as const;\n\n/**\n * Debug history entry types\n * Used to categorize history entries\n */\nexport const HISTORY_TYPES = {\n CONFIG: 'config',\n HEADER: 'header',\n NETWORK: 'network',\n PERFORMANCE: 'performance',\n EVENT: 'event',\n EVENT_OPERATION: 'event_operation',\n} as const;\n\n/**\n * Header transformation stages\n * Used to track header changes through the pipeline\n */\nexport const HEADER_STAGES = {\n BASE: 'base',\n ENRICHED: 'enriched',\n INTERCEPTOR: 'interceptor',\n FINAL: 'final',\n} as const;\n\n/**\n * Config update strategies\n * Used when updating configuration\n */\nexport const UPDATE_STRATEGIES = {\n MERGE: 'merge',\n REPLACE: 'replace',\n TEMPORARY: 'temporary',\n} as const;\n\n/**\n * Config change types\n * Used to categorize configuration changes\n */\nexport const CHANGE_TYPES = {\n OVERRIDE: 'override',\n RESTORE: 'restore',\n PRESET_CHANGE: 'preset_change',\n USER_PREFERENCE: 'user_preference',\n AUTO_OPTIMIZATION: 'auto_optimization',\n} as const;\n\n/**\n * Tracking phases\n * Used to identify when tracking occurs\n */\nexport const TRACKING_PHASES = {\n INITIALIZATION: 'initialization',\n RUNTIME: 'runtime',\n UPDATE: 'update',\n} as const;\n\n/**\n * Performance impact levels\n * Used to categorize performance impact\n */\nexport const IMPACT_LEVELS = {\n NONE: 'NONE',\n LOW: 'LOW',\n MEDIUM: 'MEDIUM',\n HIGH: 'HIGH',\n CRITICAL: 'CRITICAL',\n} as const;\n\n/**\n * Monitoring alert severities\n * Used to categorize alert severity\n */\nexport const ALERT_SEVERITIES = {\n INFO: 'info',\n WARNING: 'warning',\n ERROR: 'error',\n CRITICAL: 'critical',\n} as const;\n\n/**\n * Monitoring alert types\n * Used to categorize monitoring alerts\n */\nexport const ALERT_TYPES = {\n CONFLICT: 'conflict',\n PERFORMANCE: 'performance',\n NETWORK: 'network',\n} as const;\n\n/**\n * Combined operation types for unified tracking\n */\nexport const UNIFIED_OPERATIONS = {\n ...FACTORY_OPERATIONS,\n ...EVENT_OPERATIONS,\n ...QUEUE_OPERATIONS,\n} as const;\n\n// Type exports for TypeScript support\nexport type QueueOperationType = (typeof QUEUE_OPERATIONS)[keyof typeof QUEUE_OPERATIONS];\nexport type DebuggerConfigSource =\n (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES];\nexport type ChangeType = (typeof CHANGE_TYPES)[keyof typeof CHANGE_TYPES];\n\n/**\n * Helper to check if a string is a valid operation type\n */\nexport function isValidOperation(operation: string): operation is UnifiedOperationType {\n return Object.values(UNIFIED_OPERATIONS).includes(operation as UnifiedOperationType);\n}\n\n/**\n * Helper to check if a string is a valid config source\n */\nexport function isValidConfigSource(source: string): source is DebuggerConfigSource {\n return Object.values(DEBUGGER_CONFIG_SOURCES).includes(source as DebuggerConfigSource);\n}\n\n/**\n * Helper to check if a string is a valid history type\n */\nexport function isValidHistoryType(type: string): type is HistoryType {\n return Object.values(HISTORY_TYPES).includes(type as HistoryType);\n}\n","/**\n * Event constants\n */\nexport const EVENT_CONSTANTS = {\n DEBUG_INFO_INTERVAL_MULTIPLIER: 5,\n IMPACT_THRESHOLDS: {\n NONE: 90,\n LOW: 70,\n MEDIUM: 50,\n HIGH: 30,\n },\n} as const;\n","/**\n * Regional detection constants\n */\n\n// Storage key for cached region\nexport const REGION_STORAGE_KEY = '@plyaz/api:userRegion';\n\n/**\n * Confidence levels for region detection\n */\nexport const REGIONAL_CONFIDENCE_LEVELS = {\n CDN_HEADER: 0.95,\n TIMEZONE_DIRECT: 0.9,\n TIMEZONE_PREFIX: 0.8,\n HIGH: 0.8,\n LOCALE_DIRECT: 0.7,\n MEDIUM: 0.7,\n GEOLOCATION: 0.6,\n LOCALE_LANGUAGE: 0.5,\n LOW: 0.5,\n GLOBAL_FALLBACK: 0.3,\n UNKNOWN_FALLBACK: 0.2,\n FINAL_FALLBACK: 0.1,\n} as const;\n\n/**\n * Geographic coordinates for region detection\n */\nexport const COORDINATES = {\n EU: {\n MIN_LAT: 35,\n MAX_LAT: 70,\n MIN_LON: -10,\n MAX_LON: 40,\n },\n US: {\n MIN_LAT: 25,\n MAX_LAT: 50,\n MIN_LON: -125,\n MAX_LON: -65,\n },\n US_WEST: {\n MIN_LAT: 32,\n MAX_LAT: 42,\n MIN_LON: -125,\n MAX_LON: -114,\n },\n US_EAST: {\n MIN_LAT: 38,\n MAX_LAT: 45,\n MIN_LON: -80,\n MAX_LON: -70,\n },\n ASIA: {\n MIN_LAT: 18,\n MAX_LAT: 54,\n MIN_LON: 73,\n MAX_LON: 135,\n },\n JAPAN: {\n MIN_LAT: 30,\n MAX_LAT: 46,\n MIN_LON: 129,\n MAX_LON: 146,\n },\n} as const;\n\n/**\n * Cache duration constants\n */\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1000;\n\n// Cache duration: 24 hours in milliseconds\nexport const CACHE_DURATION_MS =\n HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;\n\n/**\n * Map regions to presets\n */\nexport const REGION_TO_PRESET = {\n eu: 'gdpr',\n us: 'ccpa', // Map US to CCPA (California compliance)\n 'us-ca': 'ccpa',\n cn: 'pipl',\n jp: 'appi',\n ca: 'global', // Canada uses global preset\n global: 'global',\n} as const;\n","/**\n * Utility Enums for API Package\n * Enums used across API utilities\n */\n\n/**\n * Correlation ID types for different contexts\n */\nexport enum CORRELATION_TYPE {\n /** Network event correlation */\n NETWORK = 'net',\n /** API request correlation */\n API = 'api',\n /** User session correlation */\n SESSION = 'session',\n /** Transaction correlation */\n TRANSACTION = 'txn',\n /** Event correlation */\n EVENT = 'evt',\n /** Trace correlation */\n TRACE = 'trace',\n /** Generic correlation */\n GENERIC = 'corr',\n}\n","/**\n * Event types for pub/sub system\n */\nexport const PUB_SUB_EVENT = {\n CacheUpdate: 'cache:update',\n CacheDelete: 'cache:delete',\n CacheRevalidate: 'cache:revalidate',\n RequestStart: 'request:start',\n RequestSuccess: 'request:success',\n RequestError: 'request:error',\n RequestAbort: 'request:abort',\n} as const;\n"]}