@searchcraft/javascript-sdk 0.11.1 → 0.12.1

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/README.md +11 -2
  2. package/dist/components/index.d.ts +44 -2
  3. package/dist/components/index.js +162 -95
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/components/{p-3e41546c.js → p-02ad136b.js} +3 -3
  6. package/dist/components/{p-3e41546c.js.map → p-02ad136b.js.map} +1 -1
  7. package/dist/components/{p-b7e99386.js → p-870f81fd.js} +38 -6
  8. package/dist/components/p-870f81fd.js.map +1 -0
  9. package/dist/components/{p-0c495408.js → p-c8566920.js} +74 -33
  10. package/dist/components/p-c8566920.js.map +1 -0
  11. package/dist/components/searchcraft-facet-list.js +1 -1
  12. package/dist/components/searchcraft-filter-panel.js +3 -3
  13. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  14. package/dist/components/searchcraft-input-form.js +1 -1
  15. package/dist/components/searchcraft-pagination.js +8 -2
  16. package/dist/components/searchcraft-pagination.js.map +1 -1
  17. package/dist/components/searchcraft-popover-form.js +22 -4
  18. package/dist/components/searchcraft-popover-form.js.map +1 -1
  19. package/dist/components/searchcraft-results-info.js +9 -1
  20. package/dist/components/searchcraft-results-info.js.map +1 -1
  21. package/dist/components/searchcraft-search-results-per-page.js +8 -2
  22. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  23. package/dist/components/searchcraft-summary-box.js +42 -10
  24. package/dist/components/searchcraft-summary-box.js.map +1 -1
  25. package/dist/components/searchcraft-theme.js +1 -1
  26. package/dist/components/searchcraft-toggle-button.js +1 -1
  27. package/dist/hydrate/index.js +258 -116
  28. package/dist/hydrate/index.mjs +258 -116
  29. package/dist/types/classes/SearchcraftCore.d.ts +1 -1
  30. package/dist/types/clients/SearchClient.d.ts +1 -0
  31. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
  32. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +1 -1
  33. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +5 -0
  34. package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +1 -0
  35. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +10 -0
  36. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +1 -0
  37. package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +1 -0
  38. package/dist/types/components/searchcraft-summary-box/searchcraft-summary-box.d.ts +17 -0
  39. package/dist/types/components.d.ts +24 -0
  40. package/dist/types/store/SearchcraftStore.types.d.ts +10 -2
  41. package/dist/types/types/core-types/Measure.types.d.ts +1 -0
  42. package/dist/types/types/core-types/SearchcraftConfig.types.d.ts +9 -1
  43. package/package.json +5 -4
  44. package/dist/components/p-0c495408.js.map +0 -1
  45. package/dist/components/p-b7e99386.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"index.js","mappings":"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,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC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AAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,C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","names":["reactModule","require$$0","require$$1","createStore","getFingerprint"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/vanilla.js","../../node_modules/react/cjs/react.production.js","../../node_modules/react/index.js","../../node_modules/zustand/react.js","../../node_modules/zustand/index.js","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i)}catch(e){u=[6,e],t=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};function t(e,r){if(![\"exclude\",\"permissions_to_check\",\"retries\",\"timeout\"].includes(e))throw new Error(\"Unknown option \"+e);if([\"exclude\",\"permissions_to_check\"].includes(e)&&(!Array.isArray(r)||!r.every((function(e){return\"string\"==typeof e}))))throw new Error(\"The value of the exclude and permissions_to_check must be an array of strings\");if([\"retries\",\"timeout\"].includes(e)&&\"number\"!=typeof r)throw new Error(\"The value of retries must be a number\");n[e]=r}var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r)},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return!(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return[e[0],(0,e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0]}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e)}))}function h(e,r,n){return Promise.all(e.map((function(e){var t=performance.now();return Promise.race([e.then((function(e){return{value:e,elapsed:performance.now()-t}})),d(r,n).then((function(e){return{value:e,elapsed:performance.now()-t}}))])})))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return[2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else{var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a))}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return{name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return{name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return[2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode})},n.startRendering()}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e)}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()})}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font,e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c)}}return a}catch(e){}return\"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return[3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"))}return new Promise((function(r){r({plugins:e})}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2)}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,!1,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0))}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return[2,{webgl:\"unsupported\"}]}return[2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o)}return a*o};function N(){return\"0.16.1\"}i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return[2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));export{g as getFingerprint,v as getFingerprintData,w as getFingerprintPerformance,N as getVersion,t as setOption};\n//# sourceMappingURL=thumbmark.esm.js.map\n","import type {\n AdClientResponseItem,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n} from '@types';\n\nexport class AdClient {\n config: SearchcraftConfig;\n\n constructor(config: SearchcraftConfig) {\n this.config = config;\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import { nanoid } from 'nanoid';\nimport type {\n AdClientResponseItem,\n ADMClientResponseItem,\n ADMResponse,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise<void> {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import { nanoid } from 'nanoid';\nimport type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized');\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial<MeasureRequestProperties> = {},\n user: Partial<MeasureRequestUser> = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: [this.config.indexName],\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to send request: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n throw error;\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(async () => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n throw new Error(\n `Failed to send request: ${response.status} ${response.statusText}`,\n );\n }\n return;\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n throw error;\n }\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import { nanoid } from 'nanoid';\nimport type { SearchcraftCore } from '@classes';\n\nimport type {\n SearchClientQuery,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n SearchClientRequest,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n */\n private get baseSearchUrl(): string {\n return `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","'use strict';\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexports.createStore = createStore;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nexports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.0.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar React = require('react');\nvar vanilla = require('zustand/vanilla');\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexports.create = create;\nexports.useStore = useStore;\n","'use strict';\n\nvar vanilla = require('zustand/vanilla');\nvar react = require('zustand/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { createStore, type StoreApi } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record<string, StoreApi<SearchcraftState>> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial<SearchcraftStateValues> = {},\n): StoreApi<SearchcraftState> => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore<SearchcraftState>((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) =>\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n })),\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) =>\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async () => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL) {\n state.summaryClient?.streamSummaryData();\n }\n\n if (!state.searchTerm.trim()) {\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResultsCount: 0,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search();\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search();\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientResponseItem,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n SubscriptionEventName,\n SubscriptionEventCallback,\n SearchIndexHit,\n SubscriptionEventMap,\n UnsubscribeFunction,\n SearchClientRequestProperties,\n SearchcraftResponse,\n} from '@types';\n\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { createSearchcraftStore, type SearchcraftStore } from '@store';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array<SubscriptionEventCallback<K>>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName) {\n throw new Error('SDK Configuration Error: indexName not specified.');\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n }\n\n this.measureClient = new MeasureClient(config, sdkInfo, userId);\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent<T extends SubscriptionEventName>(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback<T>)(event);\n });\n }\n\n subscribe<T extends SubscriptionEventName>(\n eventName: T,\n callback: SubscriptionEventCallback<T>,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport packageJson from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3}
1
+ {"file":"index.js","mappings":"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,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAid,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,YAAY,WAAW,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAuP,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAoY,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,OAAO,SAAS,CAAC,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,iFAAiF,CAAC,2EAA2E,CAAC,4CAA4C,CAAC,4DAA4D,CAAC,+CAA+C,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAM,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,GAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAsB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,2IAA2I,CAAC,CAAC,CAAC,sKAAsK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAA6B,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;;MCOt1lB,QAAQ;IACnB,MAAM,CAAoB;IAE1B,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;IAED,MAAM,MAAM,CACV,WAA0C;QAE1C,OAAO,EAAE,CAAC;KACX;IAED,MAAM,gBAAgB,CAAC,WAA0C,KAAI;IAErE,MAAM,cAAc,CAClB,WAA0C,EAC1C,SAA8B,KAC5B;IAEJ,MAAM,cAAc,MAAK;IAEzB,MAAM,qBAAqB,CAAC,KAI3B,KAAI;IAEL,MAAM,mBAAmB,CAAC,KAIzB,KAAI;;;MC9BM,mBAAoB,SAAQ,QAAQ;;;;IAI/C,MAAM,MAAM,CACV,WAA0C;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAE1C,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC;SACX;QAED,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;YACtC,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,SAAS,CAAC,GAAG;YACnB,EAAE,EAAE,WAAW,CAAC,UAAU;YAC1B,CAAC,EAAE,KAAK;YACR,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,GAAG,SAAS,CAAC,cAAc,IAAI,CAAC,EAAE;YAChD,YAAY,EAAE,GAAG,SAAS,CAAC,iBAAiB,IAAI,CAAC,EAAE;SACpD,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEd,MAAM,IAAI,GAAG,sCAAsC,WAAW,EAAE,CAAC;QAEjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,WAAW,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAC;QAE3D,MAAM,UAAU,GAA4B,WAAW,CAAC,WAAW,CAAC,GAAG,CACrE,CAAC,EAAE,MAAM;YACP,EAAE,EAAE,MAAM,EAAE;YACZ,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,EAAE;SACV,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAA4B,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;YACzE,EAAE,EAAE,MAAM,EAAE;YACZ,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,aAAa;YACxB,KAAK,EAAE,EAAE;SACV,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC;KACf;IAED,MAAM,mBAAmB,CAAC,IAIzB;;QAEC,MAAM,IAAI,GAAG,IAAI,CAAC,oBAA6C,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAClC;KACF;;;MC/DU,cAAe,SAAQ,QAAQ;IAC1C,MAAM,MAAM,CACV,WAA0C;QAE1C,OAAO,EAAE,CAAC;KACX;;;ACFH,MAAM,yBAAyB,GAAG,IAAI,CAAC;MAE1B,YAAa,SAAQ,QAAQ;IACxC,aAAa,CAAkB;IAE/B,YAAY,MAAyB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,MAAM,gBAAgB,CAAC,WAA0C;QAC/D,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,MAAM,cAAc,CAClB,WAA0C,EAC1C,QAA6B;QAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;YAC3C,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,OAAO;SACR;QAED,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;KAC/C;IAED,MAAM,cAAc;QAClB,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;YAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI;;gBAEF,WAAW,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;aAC9D;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;;SAEF,EAAE,KAAK,CAAC,CAAC;KACX;IAED,MAAM,MAAM,CACV,WAA0C;QAE1C,OAAO,EAAE,CAAC;KACX;IAEO,sBAAsB;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,SAAS,CAAC,IAAI,GAAG,iBAAiB,CAAC;YACnC,SAAS,CAAC,GAAG,GAAG,gCAAgC,CAAC;YACjD,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC;YAC5B,SAAS,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC;KACF;IAEO,2BAA2B;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE;YACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SACtC;KACF;;;ACpEH,MAAM,wBAAwB,GAAG,GAAG,CAAC;MAExB,aAAa;IAChB,qBAAqB,CAA6B;IAClD,sBAAsB,GAAqB,EAAE,CAAC;IAC9C,MAAM,CAAoB;IAC1B,OAAO,CAAqB;IAC5B,MAAM,CAAS;IACvB,SAAS,CAAS;IAElB,YACE,MAAyB,EACzB,OAA2B,EAC3B,MAAc;QAEd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;KAC1C;;;;IAKD,IAAY,cAAc;QACxB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,UAAU,CAAC;KAC7C;;;;IAKD,IAAY,kBAAkB;QAC5B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,MAAM,EAAE,SAAS,CAAC,QAAQ,IAAI,OAAO;YACrC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;kBACvC,SAAS;kBACT,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;sBACjC,KAAK;sBACL,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;0BACnC,OAAO;0BACP,SAAS;YACjB,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS;YACzC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC9B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACpC,UAAU,EAAE,SAAS,CAAC,SAAS,IAAI,SAAS;SAC7C,CAAC;KACH;;;;;;;;IASD,gBAAgB,GAAG,OACjB,SAA2B,EAC3B,aAAgD,EAAE,EAClD,OAAoC,EAAE;;;;QAKtC,MAAM,OAAO,GAAmB;YAC9B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE;gBACV,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC7E,2BAA2B,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBACvD,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,GAAG,UAAU;aACd;YACD,IAAI,EAAE;gBACJ,GAAG,IAAI,CAAC,kBAAkB;gBAC1B,GAAG,IAAI;aACR;SACF,CAAC;;QAGF,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,QAAQ,CAAC;YAE3C,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;wBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;wBAC3B,iBAAiB,EAAE,IAAI,CAAC,SAAS;qBAClC;oBACD,IAAI;oBACJ,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACpE,CAAC;iBACH;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,KAAK,CAAC;aACb;SACF;aAAM;;YAEL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEzC,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,QAAQ,CAAC;gBAE3C,IAAI;oBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBAChC,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;4BAClC,cAAc,EAAE,IAAI,CAAC,MAAM;4BAC3B,iBAAiB,EAAE,IAAI,CAAC,SAAS;yBAClC;wBACD,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBAEH,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;wBAChB,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACpE,CAAC;qBACH;oBACD,OAAO;iBACR;gBAAC,OAAO,KAAK,EAAE;oBACd,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;oBACtD,MAAM,KAAK,CAAC;iBACb;aACF,EAAE,wBAAwB,CAAC,CAAC;SAC9B;KACF,CAAC;;;ACxJG,MAAM,0BAA0B,GAAG,CAAC,WAAmB,KAC5D,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW;;ACD7D,MAAM,QAAQ,GAAG,CAAC,GAAW;IAClC,IAAI,YAAY,GAAG,EAAE,CAAC;;IAGtB,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;;IAG1B,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK;QACnD,MAAM,GAAG,GAAG;YACV,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;SACT,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;KAC5B,CAAC,CAAC;;IAGH,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC;IAE3D,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;KACH;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;;ACdD,MAAM,+BAA+B,GAAG,GAAG,CAAC;MAE/B,YAAY;IACf,MAAM,CAAoB;IAC1B,MAAM,CAAS;IACf,MAAM,CAAkB;IACxB,2BAA2B,CAA6B;IACxD,eAAe,CAA8B;IAC7C,2BAA2B,CAA8B;IAEjE,YACE,MAAuB,EACvB,MAAyB,EACzB,MAAc;QAEd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;;;;;IAMD,IAAY,aAAa;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc;cAC7B,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,eAAe,IAAI,CAAC,MAAM,CAAC,cAAc,SAAS;cAC5E,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,SAAS,CAAC;KACxE;;;;IAKD,aAAa,GAAG;QACd,IAAI,CAAC,eAAe,EAAE,KAAK,CACzB,gDAAgD,CACjD,CAAC;QACF,IAAI,CAAC,2BAA2B,EAAE,KAAK,CACrC,gDAAgD,CACjD,CAAC;KACH,CAAC;;;;;;;IAQF,sBAAsB,GAAG,OACvB,UAAkD,EAClD,cAAc,GAAG,KAAK;QAEtB,IAAI,QAA6B,CAAC;QAClC,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,eAAgC,CAAC;QACrC,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,2BAA2B,EAAE,KAAK,CACrC,+CAA+C,CAChD,CAAC;YACF,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,2BAA2B,GAAG,eAAe,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,eAAe,EAAE,KAAK,CACzB,+CAA+C,CAChD,CAAC;YACF,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC;;;QAID,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;SACnC;aAAM;YACL,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACxD,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACpC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE;YAC9D,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;YACvC,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE;gBACJ,UAAU;aACX;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CACpC,OAAO,UAAU,KAAK,QAAQ;cAC1B,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;cAC7B,UAAU,CACf,CAAC;QAEF,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,QAAQ,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAC1D,UAAU,EACV,eAAe,CAChB,CAAC;SACH;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAC1D,UAAU,EACV,eAAe,CAChB,CAAC;SACH;QAED,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;gBACtE,WAAW,EAAE,UAAU;gBACvB,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aACzC,CAAC,CAAC;YAEH,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC/C,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE;oBAC9D,WAAW,EAAE,UAAU;oBACvB,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;iBACzC,CAAC,CAAC;aACJ,EAAE,+BAA+B,CAAC,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE;gBACrC,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE;oBACJ,UAAU;iBACX;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE;oBAC3C,IAAI,EAAE,qBAAqB;iBAC5B,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAClC,OAAO,UAAU,KAAK,QAAQ;kBAC1B,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;kBAC7B,UAAU,EACd,QAAQ,CACT,CAAC;SACH;QAED,OAAO,QAAQ,CAAC;KACjB,CAAC;IAEM,sCAAsC,GAAG,OAC/C,GAAW,EACX,eAAgC;QAEhC,IAAI,mBAAwC,CAAC;QAE7C,IAAI;YACF,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,mBAAmB,GAAG;gBACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBACvC,GAAG,mBAAmB;aACvB,CAAC;SACH;QAAC,MAAM;YACN,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,MAAM,EAAE;aACpE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACzC,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,UAAU,QAAQ,CAAC,UAAU,aAAa,QAAQ,CAAC,MAAM,GAAG,CAC7D,CAAC;SACH;QAED,QAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAyB;KACvD,CAAC;IAEM,sCAAsC,GAAG,OAC/C,UAAyC,EACzC,eAAgC;QAEhC,MAAM,mBAAmB,GAAG;YAC1B,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;YAC9C,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC;YAC9B,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE;YACjE,IAAI,UAAU,CAAC,QAAQ,IAAI;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC;YACF,IAAI,UAAU,CAAC,IAAI,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC;SAC2B,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,MAAM,EAAE;aACpE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACzC,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,UAAU,QAAQ,CAAC,UAAU,aAAa,QAAQ,CAAC,MAAM,GAAG,CAC7D,CAAC;SACH;QAED,QAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAyB;KACvD,CAAC;;;;;;IAOM,sBAAsB,CAC5B,UAAyC;QAEzC,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,KAAK,GAAsB,QAAQ,CAAC;QAExC,IAAI,UAAU,CAAC,wBAAwB,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS;gBACjE,MAAM,IAAI,GAAG,UAAU,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;gBAE9D,IAAI,IAAI,EAAE;oBACR,KAAK,GAAG,MAAM,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE;4BACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC1B;qBACF,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ;QAED,IAAI,UAAU,CAAC,wBAAwB,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS;gBACjE,MAAM,IAAI,GAAG,UAAU,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;gBAE9D,IAAI,IAAI,EAAE;oBACR,KAAK,GAAG,MAAM,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE;4BACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC1B;qBACF,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,MAAM,KAAK,GACT,UAAU,CAAC,IAAI,KAAK,OAAO;cACvB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;cAC9B;gBACE,KAAK,EAAE;oBACL,GAAG,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,IAAI,UAAU,GAAG,EAAE;iBACtE;aACF,CAAC;QACR,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK;YACnD,GAAG,KAAK;SACT,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;KAChB;;;;;;;ACrSH,MAAM,eAAe,GAAG,CAAC,WAAW,KAAK;AACzC,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC9C,EAAE,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACzC,IAAI,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AACtC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAClC,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAClJ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;AAC/B,EAAE,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;AAC7C,EAAE,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK;AAClC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,IAAI,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,GAAG,CAAC;AACJ,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACjE,EAAE,MAAM,YAAY,GAAG,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACpE,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,WAAW,KAAK,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC;AAClG;qBACmB,GAAG;;;;;;;;;;;;;;;;;ACdtB,IAAI,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;AACjE,EAAE,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;AAChD,EAAE,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpD,EAAE,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC1D,EAAE,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpD,EAAE,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpD,EAAE,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;AAClD,EAAE,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC1D,EAAE,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpD,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5C,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5C,EAAE,qBAAqB,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC1C,SAAS,aAAa,CAAC,aAAa,EAAE;AACtC,EAAE,IAAI,IAAI,KAAK,aAAa,IAAI,QAAQ,KAAK,OAAO,aAAa,EAAE,OAAO,IAAI,CAAC;AAC/E,EAAE,aAAa;AACf,IAAI,CAAC,qBAAqB,IAAI,aAAa,CAAC,qBAAqB,CAAC;AAClE,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;AAChC,EAAE,OAAO,UAAU,KAAK,OAAO,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC;AACpE,CAAC;AACD,IAAI,oBAAoB,GAAG;AAC3B,IAAI,SAAS,EAAE,YAAY;AAC3B,MAAM,OAAO,CAAC,CAAC,CAAC;AAChB,KAAK;AACL,IAAI,kBAAkB,EAAE,YAAY,EAAE;AACtC,IAAI,mBAAmB,EAAE,YAAY,EAAE;AACvC,IAAI,eAAe,EAAE,YAAY,EAAE;AACnC,GAAG;AACH,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM;AACxB,EAAE,WAAW,GAAG,EAAE,CAAC;AACnB,SAAS,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAC5C,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAC1B,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,oBAAoB,CAAC;AACjD,CAAC;AACD,SAAS,CAAC,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC1C,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,YAAY,EAAE,QAAQ,EAAE;AACjE,EAAE;AACF,IAAI,QAAQ,KAAK,OAAO,YAAY;AACpC,IAAI,UAAU,KAAK,OAAO,YAAY;AACtC,IAAI,IAAI,IAAI,YAAY;AACxB;AACA,IAAI,MAAM,KAAK;AACf,MAAM,wGAAwG;AAC9G,KAAK,CAAC;AACN,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC,CAAC;AACF,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE;AACtD,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACjE,CAAC,CAAC;AACF,SAAS,cAAc,GAAG,EAAE;AAC5B,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/C,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAChD,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAC1B,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,oBAAoB,CAAC;AACjD,CAAC;AACD,IAAI,sBAAsB,IAAI,aAAa,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC,CAAC;AAC9E,sBAAsB,CAAC,WAAW,GAAG,aAAa,CAAC;AACnD,MAAM,CAAC,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AACpD,sBAAsB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;AACjD,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO;AAC/B,EAAE,oBAAoB,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AAC/D,EAAE,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,SAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AAC7D,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AACnB,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI;AACtC,IAAI,KAAK,EAAE,KAAK;AAChB,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE;AAChD,EAAE,OAAO,YAAY;AACrB,IAAI,UAAU,CAAC,IAAI;AACnB,IAAI,MAAM;AACV,IAAI,KAAK,CAAC;AACV,IAAI,KAAK,CAAC;AACV,IAAI,KAAK,CAAC;AACV,IAAI,UAAU,CAAC,KAAK;AACpB,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE;AACF,IAAI,QAAQ,KAAK,OAAO,MAAM;AAC9B,IAAI,IAAI,KAAK,MAAM;AACnB,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB;AAC1C,IAAI;AACJ,CAAC;AACD,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC/C,EAAE;AACF,IAAI,GAAG;AACP,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE;AAC1C,MAAM,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,IAAI;AACJ,CAAC;AACD,IAAI,0BAA0B,GAAG,MAAM,CAAC;AACxC,SAAS,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE;AACvC,EAAE,OAAO,QAAQ,KAAK,OAAO,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG;AAC/E,MAAM,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAC9B,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,MAAM,GAAG,EAAE;AACpB,SAAS,eAAe,CAAC,QAAQ,EAAE;AACnC,EAAE,QAAQ,QAAQ,CAAC,MAAM;AACzB,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC;AAC5B,IAAI,KAAK,UAAU;AACnB,MAAM,MAAM,QAAQ,CAAC,MAAM,CAAC;AAC5B,IAAI;AACJ,MAAM;AACN,SAAS,QAAQ,KAAK,OAAO,QAAQ,CAAC,MAAM;AAC5C,YAAY,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS;AACzC,YAAY,QAAQ,CAAC,IAAI;AACzB,cAAc,UAAU,cAAc,EAAE;AACxC,gBAAgB,SAAS,KAAK,QAAQ,CAAC,MAAM;AAC7C,mBAAmB,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW;AACjD,mBAAmB,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC;AACrD,eAAe;AACf,cAAc,UAAU,KAAK,EAAE;AAC/B,gBAAgB,SAAS,KAAK,QAAQ,CAAC,MAAM;AAC7C,mBAAmB,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9E,eAAe;AACf,aAAa,CAAC;AACd,QAAQ,QAAQ,CAAC,MAAM;AACvB;AACA,QAAQ,KAAK,WAAW;AACxB,UAAU,OAAO,QAAQ,CAAC,KAAK,CAAC;AAChC,QAAQ,KAAK,UAAU;AACvB,UAAU,MAAM,QAAQ,CAAC,MAAM,CAAC;AAChC,OAAO;AACP,GAAG;AACH,EAAE,MAAM,QAAQ,CAAC;AACjB,CAAC;AACD,SAAS,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE;AAC3E,EAAE,IAAI,IAAI,GAAG,OAAO,QAAQ,CAAC;AAC7B,EAAE,IAAI,WAAW,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;AAC7C;AACA,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,QAAQ,CAAC;AACpB,MAAM,KAAK,QAAQ,CAAC;AACpB,MAAM,KAAK,QAAQ;AACnB,QAAQ,cAAc,GAAG,CAAC,CAAC,CAAC;AAC5B,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,QAAQ,QAAQ,CAAC,QAAQ;AACjC,UAAU,KAAK,kBAAkB,CAAC;AAClC,UAAU,KAAK,iBAAiB;AAChC,YAAY,cAAc,GAAG,CAAC,CAAC,CAAC;AAChC,YAAY,MAAM;AAClB,UAAU,KAAK,eAAe;AAC9B,YAAY;AACZ,cAAc,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK;AAC9C,cAAc,YAAY;AAC1B,gBAAgB,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACjD,gBAAgB,KAAK;AACrB,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,eAAe;AACf,YAAY,EAAE;AACd,SAAS;AACT,KAAK;AACL,EAAE,IAAI,cAAc;AACpB,IAAI;AACJ,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACpC,OAAO,cAAc;AACrB,QAAQ,EAAE,KAAK,SAAS,GAAG,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,SAAS;AACvE,MAAM,WAAW,CAAC,QAAQ,CAAC;AAC3B,WAAW,CAAC,aAAa,GAAG,EAAE;AAC9B,UAAU,IAAI,IAAI,cAAc;AAChC,aAAa,aAAa;AAC1B,cAAc,cAAc,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;AAC9E,UAAU,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE;AACxE,YAAY,OAAO,CAAC,CAAC;AACrB,WAAW,CAAC;AACZ,UAAU,IAAI,IAAI,QAAQ;AAC1B,WAAW,cAAc,CAAC,QAAQ,CAAC;AACnC,aAAa,QAAQ,GAAG,kBAAkB;AAC1C,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,iBAAiB,IAAI,IAAI,QAAQ,CAAC,GAAG;AACrC,iBAAiB,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;AAC3D,oBAAoB,EAAE;AACtB,oBAAoB,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO;AAC/C,sBAAsB,0BAA0B;AAChD,sBAAsB,KAAK;AAC3B,qBAAqB,GAAG,GAAG,CAAC;AAC5B,gBAAgB,cAAc;AAC9B,aAAa,CAAC;AACd,UAAU,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,MAAM,CAAC;AACP,IAAI,EAAE;AACN,EAAE,cAAc,GAAG,CAAC,CAAC;AACrB,EAAE,IAAI,cAAc,GAAG,EAAE,KAAK,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;AAChE,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;AAC3B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AAC5C,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC9B,SAAS,IAAI,GAAG,cAAc,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5D,SAAS,cAAc,IAAI,YAAY;AACvC,UAAU,SAAS;AACnB,UAAU,KAAK;AACf,UAAU,aAAa;AACvB,UAAU,IAAI;AACd,UAAU,QAAQ;AAClB,SAAS,CAAC,CAAC;AACX,OAAO,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,UAAU,KAAK,OAAO,CAAC;AAClE,IAAI;AACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AACxC,MAAM,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI;AACzC;AACA;AACA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK;AAClC,SAAS,IAAI,GAAG,cAAc,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AAC9D,SAAS,cAAc,IAAI,YAAY;AACvC,UAAU,SAAS;AACnB,UAAU,KAAK;AACf,UAAU,aAAa;AACvB,UAAU,IAAI;AACd,UAAU,QAAQ;AAClB,SAAS,CAAC,CAAC;AACX,OAAO,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC9B,IAAI,IAAI,UAAU,KAAK,OAAO,QAAQ,CAAC,IAAI;AAC3C,MAAM,OAAO,YAAY;AACzB,QAAQ,eAAe,CAAC,QAAQ,CAAC;AACjC,QAAQ,KAAK;AACb,QAAQ,aAAa;AACrB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,OAAO,CAAC;AACR,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAI,MAAM,KAAK;AACf,MAAM,iDAAiD;AACvD,SAAS,iBAAiB,KAAK,KAAK;AACpC,YAAY,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;AACzE,YAAY,KAAK,CAAC;AAClB,QAAQ,2EAA2E;AACnF,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE;AAC1D,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9C,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE;AAC9B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;AAC/B,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;AAClB,IAAI,IAAI,CAAC,IAAI;AACb,MAAM,UAAU,YAAY,EAAE;AAC9B,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO;AAC3D,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;AAClE,OAAO;AACP,MAAM,UAAU,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO;AAC3D,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AAC3D,OAAO;AACP,KAAK,CAAC;AACN,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAChF,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC;AACxB,CAAC;AACD,IAAI,iBAAiB;AACrB,EAAE,UAAU,KAAK,OAAO,WAAW;AACnC,MAAM,WAAW;AACjB,MAAM,UAAU,KAAK,EAAE;AACvB,QAAQ;AACR,UAAU,QAAQ,KAAK,OAAO,MAAM;AACpC,UAAU,UAAU,KAAK,OAAO,MAAM,CAAC,UAAU;AACjD,UAAU;AACV,UAAU,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;AACrD,YAAY,OAAO,EAAE,CAAC,CAAC;AACvB,YAAY,UAAU,EAAE,CAAC,CAAC;AAC1B,YAAY,OAAO;AACnB,cAAc,QAAQ,KAAK,OAAO,KAAK;AACvC,cAAc,IAAI,KAAK,KAAK;AAC5B,cAAc,QAAQ,KAAK,OAAO,KAAK,CAAC,OAAO;AAC/C,kBAAkB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,kBAAkB,MAAM,CAAC,KAAK,CAAC;AAC/B,YAAY,KAAK,EAAE,KAAK;AACxB,WAAW,CAAC,CAAC;AACb,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO;AACnD,SAAS,MAAM;AACf,UAAU,QAAQ,KAAK,OAAO,OAAO;AACrC,UAAU,UAAU,KAAK,OAAO,OAAO,CAAC,IAAI;AAC5C,UAAU;AACV,UAAU,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACnD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,OAAO,CAAC;AACR,SAAS,IAAI,GAAG,EAAE;yBACF,GAAG;AACnB,EAAE,GAAG,EAAE,WAAW;AAClB,EAAE,OAAO,EAAE,UAAU,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;AAC5D,IAAI,WAAW;AACf,MAAM,QAAQ;AACd,MAAM,YAAY;AAClB,QAAQ,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,OAAO;AACP,MAAM,cAAc;AACpB,KAAK,CAAC;AACN,GAAG;AACH,EAAE,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY;AACtC,MAAM,CAAC,EAAE,CAAC;AACV,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,EAAE,OAAO,EAAE,UAAU,QAAQ,EAAE;AAC/B,IAAI;AACJ,MAAM,WAAW,CAAC,QAAQ,EAAE,UAAU,KAAK,EAAE;AAC7C,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO,CAAC,IAAI,EAAE;AACd,MAAM;AACN,GAAG;AACH,EAAE,IAAI,EAAE,UAAU,QAAQ,EAAE;AAC5B,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AACjC,MAAM,MAAM,KAAK;AACjB,QAAQ,uEAAuE;AAC/E,OAAO,CAAC;AACR,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH,EAAE;0BACe,GAAG,UAAU;yBACd,GAAG,oBAAoB;yBACvB,GAAG,oBAAoB;8BAClB,GAAG,cAAc;2BACpB,GAAG,uBAAuB;yBAC5B,GAAG,oBAAoB;gFACgC;AACvE,EAAE,qBAAqB;oBACZ,GAAG,YAAY;AAC1B,EAAE,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,EAAE;sBACW,GAAG,UAAU,EAAE,EAAE;AAC9B,EAAE,OAAO,YAAY;AACrB,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ,EAAE;6BACkB,GAAG,UAAU,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC5D,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,OAAO;AAC5C,IAAI,MAAM,KAAK;AACf,MAAM,uDAAuD,GAAG,OAAO,GAAG,GAAG;AAC7E,KAAK,CAAC;AACN,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;AACvC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG;AACrB,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC;AACnB,EAAE,IAAI,IAAI,IAAI,MAAM;AACpB,IAAI,KAAK,QAAQ,KAAK,KAAK,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AAC/D,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AACpD,IAAI,MAAM;AACV,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5C,QAAQ,KAAK,KAAK,QAAQ;AAC1B,QAAQ,QAAQ,KAAK,QAAQ;AAC7B,QAAQ,UAAU,KAAK,QAAQ;AAC/B,SAAS,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC;AACrD,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,KAAK,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChD,OAAO,IAAI,CAAC,GAAG,QAAQ,EAAE;AACzB,IAAI,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE;AACnE,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACvE,EAAE;8BACmB,GAAG,UAAU,YAAY,EAAE;AAChD,EAAE,YAAY,GAAG;AACjB,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,aAAa,EAAE,YAAY;AAC/B,IAAI,cAAc,EAAE,YAAY;AAChC,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,QAAQ,EAAE,IAAI;AAClB,GAAG,CAAC;AACJ,EAAE,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC;AACvC,EAAE,YAAY,CAAC,QAAQ,GAAG;AAC1B,IAAI,QAAQ,EAAE,mBAAmB;AACjC,IAAI,QAAQ,EAAE,YAAY;AAC1B,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;8BACmB,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC1D,EAAE,IAAI,QAAQ;AACd,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,GAAG,GAAG,IAAI,CAAC;AACf,EAAE,IAAI,IAAI,IAAI,MAAM;AACpB,IAAI,KAAK,QAAQ,KAAK,KAAK,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM;AAC9E,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3C,QAAQ,KAAK,KAAK,QAAQ;AAC1B,QAAQ,QAAQ,KAAK,QAAQ;AAC7B,QAAQ,UAAU,KAAK,QAAQ;AAC/B,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,EAAE,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,KAAK,cAAc,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACtD,OAAO,IAAI,CAAC,GAAG,cAAc,EAAE;AAC/B,IAAI,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE;AAC/E,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,IAAI,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY;AAC/B,IAAI,KAAK,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,cAAc;AAC1E,MAAM,KAAK,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC;AAChC,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9D,EAAE;0BACe,GAAG,YAAY;AAChC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,EAAE;2BACgB,GAAG,UAAU,MAAM,EAAE;AACvC,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9D,EAAE;+BACoB,GAAG,eAAe;qBAC5B,GAAG,UAAU,IAAI,EAAE;AAC/B,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,eAAe;AAC7B,IAAI,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5C,IAAI,KAAK,EAAE,eAAe;AAC1B,GAAG,CAAC;AACJ,EAAE;qBACU,GAAG,UAAU,IAAI,EAAE,OAAO,EAAE;AACxC,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,eAAe;AAC7B,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,OAAO,EAAE,KAAK,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO;AAChD,GAAG,CAAC;AACJ,EAAE;gCACqB,GAAG,UAAU,KAAK,EAAE;AAC3C,EAAE,IAAI,cAAc,GAAG,oBAAoB,CAAC,CAAC;AAC7C,IAAI,iBAAiB,GAAG,EAAE,CAAC;AAC3B,EAAE,oBAAoB,CAAC,CAAC,GAAG,iBAAiB,CAAC;AAC7C,EAAE,IAAI;AACN,IAAI,IAAI,WAAW,GAAG,KAAK,EAAE;AAC7B,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,CAAC,CAAC;AACvD,IAAI,IAAI,KAAK,uBAAuB;AACpC,MAAM,uBAAuB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AAC9D,IAAI,QAAQ,KAAK,OAAO,WAAW;AACnC,MAAM,IAAI,KAAK,WAAW;AAC1B,MAAM,UAAU,KAAK,OAAO,WAAW,CAAC,IAAI;AAC5C,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAChD,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC7B,GAAG,SAAS;AACZ,IAAI,oBAAoB,CAAC,CAAC,GAAG,cAAc,CAAC;AAC5C,GAAG;AACH,EAAE;yCAC8B,GAAG,YAAY;AAC/C,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAClD,EAAE;oBACS,GAAG,UAAU,MAAM,EAAE;AAChC,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5C,EAAE;+BACoB,GAAG,UAAU,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE;AACpE,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAChF,EAAE;4BACiB,GAAG,UAAU,QAAQ,EAAE,IAAI,EAAE;AAChD,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5D,EAAE;2BACgB,GAAG,UAAU,OAAO,EAAE;AACxC,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpD,EAAE;8BACmB,GAAG,YAAY,GAAG;iCACf,GAAG,UAAU,KAAK,EAAE,YAAY,EAAE;AAC1D,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtE,EAAE;0BACe,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAC5C,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxD,EAAE;sBACW,GAAG,YAAY;AAC5B,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACxC,EAAE;oCACyB,GAAG,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;AAC3D,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACvE,EAAE;mCACwB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACrD,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,EAAE;gCACqB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAClD,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9D,EAAE;wBACa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAC1C,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtD,EAAE;8BACmB,GAAG,UAAU,WAAW,EAAE,OAAO,EAAE;AACxD,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACpE,EAAE;2BACgB,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC1D,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACtE,EAAE;uBACY,GAAG,UAAU,YAAY,EAAE;AACzC,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrD,EAAE;yBACc,GAAG,UAAU,YAAY,EAAE;AAC3C,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvD,EAAE;qCAC0B,GAAG;AAC/B,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,iBAAiB;AACnB,EAAE;AACF,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB;AACpD,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,iBAAiB;AACrB,GAAG,CAAC;AACJ,EAAE;8BACmB,GAAG,YAAY;AACpC,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAChD,EAAE;wBACa,GAAG;;ACvhByB;AAC3C,EAAEA,aAAc,GAAGC,gBAAoC;AACvD;;ACFA,IAAI,KAAK,GAAGA,aAAgB,CAAC;AAC7B,IAAI,OAAO,GAAGC,SAA0B,CAAC;AACzC;AACA,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;AAC9B,SAAS,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,EAAE;AAC5C,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,oBAAoB;AAC1C,IAAI,GAAG,CAAC,SAAS;AACjB,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAClC,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;AACzC,GAAG,CAAC;AACJ,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,MAAM,UAAU,GAAG,CAAC,WAAW,KAAK;AACpC,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC/C,EAAE,MAAM,aAAa,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC9D,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACpC,EAAE,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,WAAW,KAAK,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;AACnF;cACc,GAAG,OAAO;gBACR,GAAG;;;ACvBnB;AACA,IAAI,OAAO,GAAGD,SAA0B,CAAC;AACzC,IAAI,KAAK,GAAGC,OAAwB,CAAC;AACrC;AACA;AACA;AACA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7G,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACzC,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACxC,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7G,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC;;;AChBF,MAAM,cAAc,GAAG,IAAI,CAAC;MAEf,aAAa;IAChB,GAAG,CAA+B;IAClC,GAAG,CAA+B;IAClC,eAAe,CAA8B;IAC7C,OAAO,CAA6B;IAE5C,YACE,GAAiC,EACjC,GAAiC;QAEjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;KAChB;IAED,iBAAiB;QACf,MAAM,KAAK,GAAG;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YAElC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,OAAO,CAAC,KAAK,CACX,2EAA2E,CAC5E,CAAC;gBACF,OAAO;aACR;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;YAE/C,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE;gBACtC,OAAO;aACR;YAED,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACtE,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAE7C,IAAI,CAAC,GAAG,CAAC;gBACP,gBAAgB,EAAE,IAAI;gBACtB,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC;YAEhF,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;oBAC7C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;qBAChD;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,WAAW,EAAE,KAAK,CAAC,mBAAmB;wBACtC,yBAAyB,EACvB,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,yBAAyB;wBAC9C,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW;qBAC5C,CAAC;oBACF,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;iBACpC,CAAC,CAAC;gBAEH,IAAI,CAAC,aAAa,EAAE;oBAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBAC3C;gBAED,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;oBACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBAC3C;gBAED,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;oBACrB,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE;wBAChC,OAAO,CAAC,IAAI,CACV,qEAAqE,CACtE,CAAC;wBACF,IAAI,CAAC,GAAG,CAAC;4BACP,gBAAgB,EAAE,KAAK;4BACvB,mBAAmB,EAAE,IAAI;yBAC1B,CAAC,CAAC;wBACH,OAAO;qBACR;oBACD,MAAM,IAAI,KAAK,CAAC,QAAQ,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;iBACjD;gBAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAElC,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,GAAG;oBACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC;oBAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;wBACnB,gBAAgB,EAAE,KAAK;wBACvB,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE;qBACpC,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,eAAe,EAAE;aAC5B;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,KAAK,YAAY,KAAK,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC9B;gBACD,IAAI,CAAC,GAAG,CAAC;oBACP,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;aACJ;SACF,CAAC;QAEF,MAAM,KAAK,GACT,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,IAAI,cAAc,CAAC;QACjE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;KACjD;;;ACpGH,MAAM,6BAA6B,GAA2B;IAC5D,qBAAqB,EAAE,EAAE;IACzB,2BAA2B,EAAE,EAAE;IAC/B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,GAAG;IACX,cAAc,EAAE,MAAM;IACtB,wBAAwB,EAAE,EAAE;IAC5B,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,wBAAwB,EAAE,EAAE;IAC5B,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,OAAO;IACnB,mBAAmB,EAAE,SAAS;IAC9B,6BAA6B,EAAE,SAAS;IACxC,yBAAyB,EAAE,EAAE;IAC7B,+BAA+B,EAAE,EAAE;IACnC,8BAA8B,EAAE,SAAS;IACzC,4BAA4B,EAAE,SAAS;IACvC,6BAA6B,EAAE,SAAS;IACxC,wBAAwB,EAAE,SAAS;IACnC,mCAAmC,EAAE,SAAS;IAC9C,uBAAuB,EAAE,SAAS;IAClC,wBAAwB,EAAE,SAAS;IACnC,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,CAAC;IACrB,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,SAAS;IACnB,YAAY,EAAE,SAAS;IACvB,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,KAAK;IACvB,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF;AACA,MAAM,cAAc,GAA+C,EAAE,CAAC;AAEtE;;;;;;;;AAQA,MAAM,sBAAsB,GAAG,CAC7B,aAAiC,EACjC,eAAgD,EAAE;IAElD,MAAM,EAAE,GAAG,aAAa,IAAI,wBAAwB,CAAC;IACrD,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE;QACtB,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;KAC3B;IAED,MAAM,QAAQ,GAAGC,mBAAW,CAAmB,CAAC,GAAG,EAAE,GAAG;QACtD,MAAM,SAAS,GAA8B;YAC3C,0BAA0B,EAAE,CAAC,UAAmC;gBAC9D,GAAG,CAAC,CAAC,KAAK,MAAM;oBACd,wBAAwB,EAAE;wBACxB,GAAG,KAAK,CAAC,wBAAwB;wBACjC,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU;qBACnC;oBACD,iBAAiB,EAAE,CAAC;iBACrB,CAAC,CAAC,CAAC;aACL;YACD,0BAA0B,EAAE,CAAC,UAAmC,KAC9D,GAAG,CAAC,CAAC,KAAK,MAAM;gBACd,wBAAwB,EAAE;oBACxB,GAAG,KAAK,CAAC,wBAAwB;oBACjC,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU;iBACnC;aACF,CAAC,CAAC;YACL,6BAA6B,EAAE,CAAC,SAAiB;gBAC/C,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE;oBACnD,SAAS;oBACT,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB;oBACpC,UAAU,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;iBAC9B,CAAC,CAAC;gBACH,GAAG,CAAC,CAAC,KAAK;oBACR,MAAM,YAAY,GAAG,KAAK,CAAC,wBAAwB,CAAC;oBACpD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC/B,OAAO;wBACL,wBAAwB,EAAE;4BACxB,GAAG,YAAY;yBAChB;wBACD,iBAAiB,EAAE,CAAC;qBACrB,CAAC;iBACH,CAAC,CAAC;aACJ;YACD,6BAA6B,EAAE,CAAC,SAAiB,KAC/C,GAAG,CAAC,CAAC,KAAK;gBACR,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC;gBACrD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO;oBACL,wBAAwB,EAAE;wBACxB,GAAG,aAAa;qBACjB;iBACF,CAAC;aACH,CAAC;YACJ,iBAAiB,EAAE;gBACjB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;gBAC1C,GAAG,CAAC;oBACF,UAAU,EAAE,EAAE;oBACd,iBAAiB,EAAE,CAAC;oBACpB,yBAAyB,EAAE,CAAC,GAAG,KAAK,CAAC,+BAA+B,CAAC;oBACrE,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;iBAC9D,CAAC,CAAC;aACJ;YACD,MAAM,EAAE,OAAO,OAAmC;gBAChD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;gBAEpB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;iBAC7D;gBAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;oBACxD,KAAK,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;iBAC1C;;gBAGD,MAAM,cAAc,GAClB,OAAO,KAAK,CAAC,mCAAmC,KAAK,QAAQ;oBAC7D,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;;gBAGjC,MAAM,gBAAgB,GACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC;oBACtD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzD,MAAM,uBAAuB,GAAG,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC;gBAC9D,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;gBAE7D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;;oBAE5B,IACE,cAAc;yBACb,gBAAgB;4BACf,uBAAuB;4BACvB,uBAAuB,CAAC,EAC1B;;wBAEA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,KAAK,CAAC,mCAA6C,CACpD,CAAC;wBAEF,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;;wBAGlC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;8BAClD,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;8BAClD,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAE5B,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;;wBAG/B,IAAI,KAAK,CAAC,wBAAwB,EAAE;4BAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,CACjD,CAAC,SAAS;gCACR,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;gCACzD,IAAI,IAAI,EAAE;oCACR,OAAO,CAAC,IAAI,CAAC;wCACX,KAAK,EAAE,MAAM;wCACb,KAAK,EAAE;4CACL,GAAG,EAAE,IAAI,CAAC,KAAK;yCAChB;qCACF,CAAC,CAAC;iCACJ;6BACF,CACF,CAAC;yBACH;;wBAGD,IAAI,KAAK,CAAC,wBAAwB,EAAE;4BAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,CACjD,CAAC,SAAS;gCACR,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;gCACzD,IAAI,IAAI,EAAE;oCACR,OAAO,CAAC,IAAI,CAAC;wCACX,KAAK,EAAE,MAAM;wCACb,KAAK,EAAE;4CACL,GAAG,EAAE,IAAI,CAAC,KAAK;yCAChB;qCACF,CAAC,CAAC;iCACJ;6BACF,CACF,CAAC;yBACH;;wBAGD,MAAM,eAAe,GAAG;4BACtB,GAAG,eAAe;4BAClB,KAAK,EAAE,OAAO;4BACd,MAAM,EAAE,KAAK,CAAC,oBAAoB;kCAC9B,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;kCAC1D,CAAC;4BACL,KAAK,EAAE,KAAK,CAAC,oBAAoB;yBAClC,CAAC;wBAEF,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;4BAC1B,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;4BAClD,+BAA+B,EAAE,KAAK;yBACvC,CAAC,CAAC;wBACH,OAAO;qBACR;;oBAGD,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;oBAC1C,GAAG,CAAC;wBACF,yBAAyB,EAAE;4BACzB,GAAG,KAAK,CAAC,+BAA+B;yBACzC;wBACD,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;wBAC7D,wBAAwB,EAAE,KAAK,CAAC,8BAA8B;wBAC9D,sBAAsB,EAAE,KAAK,CAAC,4BAA4B;wBAC1D,uBAAuB,EAAE,KAAK,CAAC,6BAA6B;wBAC5D,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,IAAI,CAAC;wBACvD,6BAA6B,EAC3B,KAAK,CAAC,mCAAmC;wBAC3C,iBAAiB,EAAE,CAAC;wBACpB,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;oBACH,OAAO;iBACR;gBAED,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAElC,MAAM,6BAA6B,GAAkC;oBACnE,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,IAAI,EAAE,KAAK,CAAC,UAAU;oBACtB,IAAI,EAAE,KAAK,CAAC,QAAQ;oBACpB,QAAQ,EAAE,KAAK,CAAC,YAAY;oBAC5B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;oBACxD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;oBACxD,MAAM,EAAE,KAAK,CAAC,oBAAoB;0BAC9B,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;0BAC1D,CAAC;oBACL,KAAK,EAAE,KAAK,CAAC,oBAAoB;iBAClC,CAAC;gBAEF,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBAC1B,iBAAiB,EAAE,6BAA6B;oBAChD,+BAA+B,EAAE,KAAK;iBACvC,CAAC,CAAC;aACJ;YACD,oBAAoB,EAAE,CAAC,SAAS,KAC9B,GAAG,CAAC;gBACF,gBAAgB,EAAE,SAAS;aAC5B,CAAC;YACJ,aAAa,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAClD,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KACvC,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;YACjC,aAAa,EAAE,CAAC,UAAU;gBACxB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;gBAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC;iBAClC;;;;gBAID,GAAG,CAAC;oBACF,UAAU;oBACV,iBAAiB,EAAE,CAAC;oBACpB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI;wBACpC,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,IAAI;wBAClB,yBAAyB,EAAE;4BACzB,GAAG,KAAK,CAAC,+BAA+B;yBACzC;wBACD,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC,2BAA2B,CAAC;wBAC7D,wBAAwB,EAAE,KAAK,CAAC,8BAA8B;wBAC9D,sBAAsB,EAAE,KAAK,CAAC,4BAA4B;wBAC1D,uBAAuB,EAAE,KAAK,CAAC,6BAA6B;wBAC5D,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,IAAI,CAAC;wBACvD,6BAA6B,EAC3B,KAAK,CAAC,mCAAmC;qBAC5C,CAAC;iBACH,CAAC,CAAC;aACJ;YACD,qBAAqB,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;YACpE,oBAAoB,EAAE,OAAO,IAAI;gBAC/B,GAAG,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/C;YACD,uBAAuB,EAAE,OAAO,OAAO;gBACrC,GAAG,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/C;YACD,0BAA0B,EAAE,CAAC,MAAM,EAAE,cAAc;gBACjD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,GACpE,6BAA6B,CAAC;gBAChC,GAAG,CAAC;oBACF,MAAM,EAAE,MAAM,IAAI,aAAa;oBAC/B,cAAc,EAAE,cAAc,IAAI,qBAAqB;iBACxD,CAAC,CAAC;aACJ;SACF,CAAC;QAEF,MAAM,WAAW,GAAqB;YACpC,GAAG,6BAA6B;YAChC,GAAG,YAAY;YACf,GAAG,SAAS;YACZ,GAAG;gBACD,aAAa,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;aAC3C;SACF,CAAC;QAEF,OAAO,WAAW,CAAC;KACpB,CAAC,CAAC;IAEH,cAAc,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IAE9B,OAAO,QAAQ,CAAC;AAClB,CAAC;;AChTD;;;MAGa,eAAe;IAC1B,KAAK,CAAmB;IACxB,MAAM,CAAoB;IAC1B,aAAa,CAA4B;IACzC,YAAY,CAA2B;IACvC,QAAQ,CAAuB;IAC/B,MAAM,CAAS;IAEP,cAAc,CAA6B;IAC3C,kBAAkB,GAEtB,EAAE,CAAC;;;;;;IAOP,YACE,MAAyB,EACzB,OAA2B,EAC3B,aAAiC;QAEjC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC/C,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;SACnG;QAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;SACxH;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;;YAET,WAAW,EAAE,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC;SAC5D,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IACE,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,cAAc,KAAK,WAAW;YACrC,OAAO,CAAC,OAAO,KAAK,6BAA6B;YACjD,UAAU,CAAC,0BAA0B,EACrC;YACA,UAAU,CAAC,0BAA0B,EAAE,CAAC;SACzC;QAED,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,aAAa,EAAE;YACjD,IAAI,EAAE,IAAI;YACV,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,EAAE;SACxD,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE9C,CAAC,OAAO,MAAM;YACZ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACzC;YAED,IAAI,MAAM,CAAC,YAAY,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC;oBACpB,iBAAiB,EAAE,MAAM,CAAC,YAAY;oBACtC,+BAA+B,EAAE,IAAI;iBACtC,CAAC,CAAC;aACJ;SACF,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACjB;IAEO,MAAM,WAAW,CACvB,MAAyB,EACzB,OAA2B;QAE3B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;QAE/C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,WAAW,GAAG,MAAMC,CAAc,EAAE,CAAC;YAC3C,MAAM,GAAG,WAAW,CAAC;SACtB;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,cAAc,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;SAC5C;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;SAC1C;aAAM,IAAI,MAAM,CAAC,WAAW,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAC5B,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;KACJ;IAED,SAAS,CACP,SAAY,EACZ,KAA8B;QAE9B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ;YAClD,QAAyC,CAAC,KAAK,CAAC,CAAC;SACnD,CAAC,CAAC;KACJ;IAED,SAAS,CACP,SAAY,EACZ,QAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;YACvC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACzC;QACA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAoC,CAAC,IAAI,CACzE,QAAQ,CACT,CAAC;QAEF,OAAO;YACJ,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAoC,GACpE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAClC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,QAAQ,CAAC,CAAC;SACnC,CAAC;KACH;;;;IAKD,yBAAyB,CAAC,IAIzB;QACC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;;QAG3C,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;YACtC,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC,CAAC;KACJ;;;;IAKD,uBAAuB,CAAC,IAIvB;QACC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;;QAGzC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACpC,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE;gBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC,CAAC;KACJ;;;;IAKD,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;YAC9B,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;KACjC;IAED,gBAAgB,GAAG,CAAC,KAGnB;QACC,MAAM,yBAAyB,GAAG;;;;YAIhC,CAAC;gBACC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;oBACtB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACpD,OAAO;iBACR;gBAED,IAAI,QAAyC,CAAC;gBAE9C,IAAI;oBACF,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvD,KAAK,CAAC,iBAAiB,EACvB,KAAK,CACN,CAAC;iBACH;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;oBAC9C,OAAO;iBACR;gBAED,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;oBACnE,OAAO;iBACR;gBAED,MAAM,KAAK,GAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;qBAChE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;qBAC1B,GAAG,CAAC,CAAC,GAAmB,MAAM;oBAC7B,EAAE,EAAE,MAAM,EAAE;oBACZ,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;oBAC/B,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,IAAI,EAAE,gBAAgB;iBACvB,CAAC,CAAC,CAAC;;;;gBAKN,IAAI,oBAAqD,CAAC;gBAC1D,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;oBAC/C,IACE,KAAK,CAAC,iBAAiB,CAAC,wBAAwB;wBAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;6BAC1D,MAAM,GAAG,CAAC,EACb;wBACA,MAAM,EACJ,wBAAwB,EAAE,CAAC,EAC3B,GAAG,6BAA6B,EACjC,GAAG,KAAK,CAAC,iBAAiB,CAAC;wBAE5B,IAAI;4BACF,oBAAoB;gCAClB,MAAM,IAAI,EAAE,YAAY,EAAE,sBAAsB,CAC9C,6BAA6B,EAC7B,IAAI,CACL,CAAC;yBACL;wBAAC,OAAO,KAAK,EAAE;4BACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;4BAC9C,OAAO;yBACR;qBACF;iBACF;qBAAM,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;;oBAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;oBAEvD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;0BAC9C,UAAU,CAAC,KAAK;0BAChB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAEvB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;;wBAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,CAAqB,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,CAC9C,CAAC;wBACF,MAAM,mBAAmB,GAAG;4BAC1B,GAAG,UAAU;4BACb,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;yBACjE,CAAC;wBAEF,IAAI;4BACF,oBAAoB;gCAClB,MAAM,IAAI,EAAE,YAAY,EAAE,sBAAsB,CAC9C,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EACnC,IAAI,CACL,CAAC;yBACL;wBAAC,OAAO,KAAK,EAAE;4BACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;4BAC9C,OAAO;yBACR;qBACF;iBACF;gBAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAClB,kBAAkB,EAAE,KAAK;oBACzB,yBAAyB,EAAE,KAAK;oBAChC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;oBACjD,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBACvC,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;oBAC9C,sBAAsB,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM;oBACzD,6BAA6B,EAAE,KAAK,CAAC,iBAAiB;oBACtD,IAAI,KAAK,CAAC,+BAA+B,IAAI;wBAC3C,+BAA+B,EAAE,KAAK;wBACtC,8BAA8B,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;wBACpD,4BAA4B,EAAE,oBAAoB,EAAE,IAAI,CAAC,MAAM;wBAC/D,6BAA6B,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;wBACvD,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;wBAC7C,mCAAmC,EAAE,KAAK,CAAC,iBAAiB;qBAC7D,CAAC;iBACH,CAAC,CAAC;aACJ,GAAG,CAAC;;;;YAKL,CAAC;gBACC,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,EAAE;oBAChE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAClB,qBAAqB,EAAE,KAAK;wBAC5B,IAAI,KAAK,CAAC,+BAA+B,IAAI;4BAC3C,2BAA2B,EAAE,KAAK;yBACnC,CAAC;qBACH,CAAC,CAAC;iBACJ;aACF,GAAG,CAAC;SACN,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACnC,IAAI,CAAC,cAAc,GAAG,UAAU,CAC9B,yBAAyB,EACzB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAChC,CAAC;SACH;aAAM;YACL,yBAAyB,EAAE,CAAC;SAC7B;KACF,CAAC;;;;;;AChWJ;;;;;;;;;AAUA;;;MAGa,WAAY,SAAQ,eAAe;IAC9C,YACE,MAAyB,EACzB,gBAAoC,SAAS;QAE7C,KAAK,CACH,MAAM,EACN;YACE,OAAO,EAAEC,IAAW;YACpB,UAAU,EAAEC,OAAc;SAC3B,EACD,aAAa,CACd,CAAC;KACH;;;;;","names":["reactModule","require$$0","require$$1","createStore","getFingerprint","packageName","packageVersion"],"sources":["src/classes/Logger.ts","../../node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js","src/clients/ad-clients/AdClient.ts","src/clients/ad-clients/AdMarketplaceClient.ts","src/clients/ad-clients/CustomAdClient.ts","src/clients/ad-clients/NativoClient.ts","src/clients/MeasureClient.ts","src/utils/core-utils/url.ts","src/utils/core-utils/sanitize.ts","src/clients/SearchClient.ts","../../node_modules/zustand/vanilla.js","../../node_modules/react/cjs/react.production.js","../../node_modules/react/index.js","../../node_modules/zustand/react.js","../../node_modules/zustand/index.js","src/clients/SummaryClient.ts","src/store/SearchcraftStoreFactory.ts","src/classes/SearchcraftCore.ts","src/index.ts"],"sourcesContent":["export enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\ninterface SearchcraftLoggerOptions {\n logLevel: LogLevel;\n logFormatter?: (level: LogLevel, message: string) => string;\n}\n\nclass SearchcraftLogger {\n private logLevel: LogLevel;\n private logFormatter: (level: LogLevel, message: string) => string;\n\n constructor(options: SearchcraftLoggerOptions) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n\n private defaultFormatter(level: LogLevel, message: string): string {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n\n debug(message: string): void {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n\n info(message: string): void {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n\n warn(message: string): void {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n\n error(message: string): void {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n\n log(level: LogLevel, message: string) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\n\nexport const Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n","function e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e))}catch(e){a(e)}}function u(e){try{c(t.throw(e))}catch(e){a(e)}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,u)}c((t=t.apply(e,r||[])).next())}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i)}catch(e){u=[6,e],t=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};function t(e,r){if(![\"exclude\",\"permissions_to_check\",\"retries\",\"timeout\"].includes(e))throw new Error(\"Unknown option \"+e);if([\"exclude\",\"permissions_to_check\"].includes(e)&&(!Array.isArray(r)||!r.every((function(e){return\"string\"==typeof e}))))throw new Error(\"The value of the exclude and permissions_to_check must be an array of strings\");if([\"retries\",\"timeout\"].includes(e)&&\"number\"!=typeof r)throw new Error(\"The value of retries must be a number\");n[e]=r}var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r)},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return!(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return[e[0],(0,e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0]}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e)}))}function h(e,r,n){return Promise.all(e.map((function(e){var t=performance.now();return Promise.race([e.then((function(e){return{value:e,elapsed:performance.now()-t}})),d(r,n).then((function(e){return{value:e,elapsed:performance.now()-t}}))])})))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return[2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else{var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a)}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),n?[2,{hash:t.toString(),data:e}]:[2,t.toString()];case 2:throw r.sent();case 3:return[2]}}))}))}function w(){return e(this,void 0,void 0,(function(){var e,t,o,i;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,h(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i={elapsed:{}},o.forEach((function(e,r){i[t[r]]=e.value,i.elapsed[t[r]]=e.elapsed})),[2,i];case 2:throw r.sent();case 3:return[2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a))}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return{name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return{name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return{name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return[2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode})},n.startRendering()}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e)}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()})}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font,e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c)}}return a}catch(e){}return\"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e])})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t)})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r))}))})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e)}),0),[2]}var i,u}))}))}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return\"Hello, world!\",e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r)})),t(i),[2]}))}))}))}catch(e){o({error:\"unsupported\"})}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0})}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return[3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"))}return new Promise((function(r){r({plugins:e})}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()})}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()})}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2)}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,!1,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0))}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return[2,{webgl:\"unsupported\"}]}return[2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o)}return a*o};function N(){return\"0.16.1\"}i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return[2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));export{g as getFingerprint,v as getFingerprintData,w as getFingerprintPerformance,N as getVersion,t as setOption};\n//# sourceMappingURL=thumbmark.esm.js.map\n","import type {\n AdClientResponseItem,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n} from '@types';\n\nexport class AdClient {\n config: SearchcraftConfig;\n\n constructor(config: SearchcraftConfig) {\n this.config = config;\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {}\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n _response: SearchcraftResponse,\n ) {}\n\n async onInputCleared() {}\n\n async onAdContainerRendered(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n\n async onAdContainerViewed(_data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {}\n}\n","import { nanoid } from 'nanoid';\nimport type {\n AdClientResponseItem,\n ADMClientResponseItem,\n ADMResponse,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n const admConfig = this.config.admAdConfig;\n\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json()) as ADMResponse;\n\n const productAds: ADMClientResponseItem[] = admResponse.product_ads.map(\n (ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }),\n );\n\n const textAds: ADMClientResponseItem[] = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n\n const allAds = productAds.concat(textAds);\n\n return allAds;\n }\n\n async onAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }): Promise<void> {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem as ADMClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n} from '@types';\nimport { AdClient } from './AdClient';\n\nexport class CustomAdClient extends AdClient {\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n}\n","import type {\n AdClientResponseItem,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n} from '@types';\n\nimport { AdClient } from './AdClient';\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\n\nexport class NativoClient extends AdClient {\n adCallTimeout?: NodeJS.Timeout;\n\n constructor(config: SearchcraftConfig) {\n super(config);\n this.addScriptTagToDocument();\n }\n\n async onQuerySubmitted(_properties: SearchClientRequestProperties) {\n this.addScriptTagToDocument();\n }\n\n async onQueryFetched(\n _properties: SearchClientRequestProperties,\n response: SearchcraftResponse,\n ) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n\n performAdCall(delay: number) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n } catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n\n async getAds(\n _properties: SearchClientRequestProperties,\n ): Promise<AdClientResponseItem[]> {\n return [];\n }\n\n private addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n\n private removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n","import { nanoid } from 'nanoid';\nimport type {\n MeasureEventName,\n MeasureRequest,\n MeasureRequestProperties,\n MeasureRequestUser,\n SearchcraftConfig,\n SearchcraftSDKInfo,\n} from '@types';\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\n\nexport class MeasureClient {\n private measureRequestTimeout: NodeJS.Timeout | undefined;\n private measureRequestsBatched: MeasureRequest[] = [];\n private config: SearchcraftConfig;\n private sdkInfo: SearchcraftSDKInfo;\n private userId: string;\n sessionId: string;\n\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n userId: string,\n ) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized');\n }\n\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n private get baseMeasureUrl(): string {\n return `${this.config.endpointURL}/measure`;\n }\n\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n private get measureRequestUser(): MeasureRequestUser {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (\n eventName: MeasureEventName,\n properties: Partial<MeasureRequestProperties> = {},\n user: Partial<MeasureRequestUser> = {},\n ) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request: MeasureRequest = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName ? [this.config.indexName] : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n },\n body,\n keepalive: true,\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to send request: ${response.status} ${response.statusText}`,\n );\n }\n } catch (error) {\n console.error('Error sending MeasureRequest:', error);\n throw error;\n }\n } else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n\n this.measureRequestTimeout = setTimeout(async () => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n },\n body: payload,\n keepalive: true,\n });\n\n this.measureRequestsBatched = [];\n if (!response.ok) {\n throw new Error(\n `Failed to send request: ${response.status} ${response.statusText}`,\n );\n }\n return;\n } catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n throw error;\n }\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n","export const removeTrailingSlashFromURL = (endpointURL: string) =>\n endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n","export const sanitize = (str: string) => {\n let sanitizedStr = '';\n\n // Trim whitespace\n sanitizedStr = str.trim();\n\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n\n if (quoteCount % 2 !== 0) {\n throw new Error(\n 'The search term contains an uneven number of quote characters.',\n );\n }\n\n return sanitizedStr;\n};\n","import { nanoid } from 'nanoid';\nimport type { SearchcraftCore } from '@classes';\n\nimport type {\n SearchClientQuery,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchClientRequestProperties,\n SearchClientRequest,\n} from '@types';\n\nimport { sanitize } from '@utils/core-utils';\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\n\nexport class SearchClient {\n private config: SearchcraftConfig;\n private userId: string;\n private parent: SearchcraftCore;\n private searchCompletedEventTimeout: NodeJS.Timeout | undefined;\n private abortController: AbortController | undefined;\n private supplementalAbortController: AbortController | undefined;\n\n constructor(\n parent: SearchcraftCore,\n config: SearchcraftConfig,\n userId: string,\n ) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n private get baseSearchUrl(): string {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort(\n 'The pending search request has been cancelled.',\n );\n this.supplementalAbortController?.abort(\n 'The pending search request has been cancelled.',\n );\n };\n\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (\n properties: SearchClientRequestProperties | string,\n isSupplemental = false,\n ) => {\n let response: SearchcraftResponse;\n let searchTerm = '';\n\n let abortController: AbortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n } else {\n this.abortController?.abort(\n 'A newer search request has replaced this one.',\n );\n abortController = new AbortController();\n this.abortController = abortController;\n }\n\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n } else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n\n this.parent.adClient?.onQuerySubmitted(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n );\n\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(\n searchTerm,\n abortController,\n );\n } else {\n response = await this.handleGetSearchResponseItemsWithObject(\n properties,\n abortController,\n );\n }\n\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n\n this.parent.adClient?.onQueryFetched(\n typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties,\n response,\n );\n }\n\n return response;\n };\n\n private handleGetSearchResponseItemsWithString = async (\n str: string,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n let searchClientRequest: SearchClientRequest;\n\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n } catch {\n throw new Error('Error: Query string is not valid json.');\n }\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n private handleGetSearchResponseItemsWithObject = async (\n properties: SearchClientRequestProperties,\n abortController: AbortController,\n ): Promise<SearchcraftResponse> => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n } satisfies SearchClientRequest;\n\n this.parent.store.setState({ searchClientRequest });\n\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(\n `Error: ${response.statusText} (Status: ${response.status})`,\n );\n }\n\n return (await response.json()) as SearchcraftResponse;\n };\n\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n private formatParamsForRequest(\n properties: SearchClientRequestProperties,\n ): SearchClientQuery[] {\n const queries: SearchClientQuery[] = [];\n let occur: 'must' | 'should' = 'should';\n\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n\n const searchTerm = properties.searchTerm;\n const query =\n properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n\n return queries;\n }\n}\n","'use strict';\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexports.createStore = createStore;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nexports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.0.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar React = require('react');\nvar vanilla = require('zustand/vanilla');\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexports.create = create;\nexports.useStore = useStore;\n","'use strict';\n\nvar vanilla = require('zustand/vanilla');\nvar react = require('zustand/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","import type { SearchcraftStore } from '@store';\n\nconst DEBOUNCE_DELAY = 1000;\n\nexport class SummaryClient {\n private set: SearchcraftStore['setState'];\n private get: SearchcraftStore['getState'];\n private abortController: AbortController | undefined;\n private timeout: NodeJS.Timeout | undefined;\n\n constructor(\n get: SearchcraftStore['getState'],\n set: SearchcraftStore['setState'],\n ) {\n this.get = get;\n this.set = set;\n }\n\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n\n if (!config.cortexURL) {\n console.error(\n 'Could not stream summary data, cortexURL was not specified in the config.',\n );\n return;\n }\n\n const indexName = state.core?.config.indexName;\n\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt:\n state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn(\n 'Please contact Searchcraft to enable AI summaries with your account',\n );\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n\n const delay =\n this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n","import { type StoreApi, createStore } from 'zustand';\n\nimport type {\n FacetPathsForIndexField,\n RangeValueForIndexField,\n SearchClientRequestProperties,\n} from '@types';\n\n// import { Logger, LogLevel } from '@classes';\n\nimport { DEFAULT_CORE_INSTANCE_ID } from '@classes/CoreInstanceRegistry';\nimport { SummaryClient } from '@clients/SummaryClient';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores: Record<string, StoreApi<SearchcraftState>> = {};\n\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (\n searchcraftId: string | undefined,\n initialState: Partial<SearchcraftStateValues> = {},\n): StoreApi<SearchcraftState> => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n\n const newStore = createStore<SearchcraftState>((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (facetPaths: FacetPathsForIndexField) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options?: { skipSummary?: boolean }) => {\n const state = get();\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n\n // Check if there are any active filters or pagination changes\n const hasActiveFilters =\n Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (\n isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)\n ) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(\n state.cachedSearchClientRequestProperties as string,\n );\n\n set({ isSearchInProgress: true });\n\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q: any) => !q.occur)\n : [initialQueryObj.query];\n\n const queries = [...baseQuery];\n\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach(\n (fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach(\n (fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n },\n );\n }\n\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n set({ isSearchInProgress: true });\n\n const searchClientRequestProperites: SearchClientRequestProperties = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setPopoverVisibility: (isVisible) =>\n set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) =>\n set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties:\n state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } =\n initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n\n return stateObject;\n });\n\n existingStores[id] = newStore;\n\n return newStore;\n};\n\nexport { createSearchcraftStore };\n","import { getFingerprint } from '@thumbmarkjs/thumbmarkjs';\nimport { nanoid } from 'nanoid';\n\nimport {\n type AdClient,\n AdMarketplaceClient,\n CustomAdClient,\n MeasureClient,\n NativoClient,\n SearchClient,\n} from '@clients';\n\nimport type {\n AdClientResponseItem,\n SearchClientRequestProperties,\n SearchClientResponseItem,\n SearchIndexHit,\n SearchcraftConfig,\n SearchcraftResponse,\n SearchcraftSDKInfo,\n SubscriptionEventCallback,\n SubscriptionEventMap,\n SubscriptionEventName,\n UnsubscribeFunction,\n} from '@types';\n\nimport { type SearchcraftStore, createSearchcraftStore } from '@store';\nimport { removeTrailingSlashFromURL } from '@utils/core-utils';\nimport { registry } from './CoreInstanceRegistry';\nimport { Logger } from './Logger';\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nexport class SearchcraftCore {\n store: SearchcraftStore;\n config: SearchcraftConfig;\n measureClient: MeasureClient | undefined;\n searchClient: SearchClient | undefined;\n adClient: AdClient | undefined;\n userId: string;\n\n private requestTimeout: NodeJS.Timeout | undefined;\n private subscriptionEvents: {\n [K in SubscriptionEventName]?: Array<SubscriptionEventCallback<K>>;\n } = {};\n\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n searchcraftId: string | undefined,\n ) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n\n if (!config.indexName && !config.federationName) {\n throw new Error('SDK Configuration Error: Either indexName or federationName must be specified.');\n }\n\n if (config.indexName && config.federationName) {\n throw new Error('SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.');\n }\n\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n\n if (\n typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__\n ) {\n globalThis.__scDefineCustomElements__();\n }\n\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n\n registry.addCoreInstance(this, searchcraftId);\n\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n\n private async initClients(\n config: SearchcraftConfig,\n sdkInfo: SearchcraftSDKInfo,\n ) {\n let userId = this.config.measureUserIdentifier;\n\n if (!userId) {\n const fingerprint = await getFingerprint();\n userId = fingerprint;\n }\n\n this.measureClient = new MeasureClient(config, sdkInfo, userId);\n this.searchClient = new SearchClient(this, config, userId);\n\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n } else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n } else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n\n emitEvent<T extends SubscriptionEventName>(\n eventName: T,\n event: SubscriptionEventMap[T],\n ) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n (callback as SubscriptionEventCallback<T>)(event);\n });\n }\n\n subscribe<T extends SubscriptionEventName>(\n eventName: T,\n callback: SubscriptionEventCallback<T>,\n ): UnsubscribeFunction {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]).push(\n callback,\n );\n\n return () => {\n (this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]) = (\n this.subscriptionEvents[eventName] as SubscriptionEventCallback<T>[]\n ).filter((cb) => cb !== callback);\n };\n }\n\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerRendered(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data: {\n adClientResponseItem?: AdClientResponseItem;\n adContainerId: string;\n searchTerm: string;\n }) {\n this.adClient?.onAdContainerViewed(data);\n\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n\n getResponseItems = (props: {\n requestProperties: SearchClientRequestProperties | string;\n shouldCacheResultsForEmptyState: boolean;\n }) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n\n let response: SearchcraftResponse | undefined;\n\n try {\n response = await this.searchClient.getSearchResponseItems(\n props.requestProperties,\n false,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n\n const items: SearchClientResponseItem[] = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit: SearchIndexHit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse: SearchcraftResponse | undefined;\n if (typeof props.requestProperties === 'object') {\n if (\n props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0\n ) {\n const {\n facetPathsForIndexFields: _,\n ...supplementalRequestProperties\n } = props.requestProperties;\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n supplementalRequestProperties,\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n } else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter(\n (q: { occur?: string }) => q.occur !== 'must',\n );\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(\n JSON.stringify(supplementalRequest),\n true,\n );\n } catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n\n clearTimeout(this.requestTimeout);\n\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(\n getResponseItemsDebounced,\n this.config.searchDebounceDelay,\n );\n } else {\n getResponseItemsDebounced();\n }\n };\n}\n","import { SearchcraftCore } from '@classes';\nimport type { SearchcraftConfig } from '@types';\nimport { name as packageName, version as packageVersion } from '../package.json';\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\n/**\n * The consumer-facing `Searchcraft` class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type { SearchcraftConfig };\nexport type { Components, JSX } from './components';\nexport { SearchcraftCore };\nexport type * from '@types';\n"],"version":3}