@envive-ai/react-hooks 0.1.6 → 0.1.7

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 (667) hide show
  1. package/dist/NewOrgConfig-C5YL4Y62.cjs +20 -0
  2. package/dist/NewOrgConfig-CRyIfb_l.js +15 -0
  3. package/dist/SystemSettingsContext-Cb9YHln8.cjs +20 -0
  4. package/dist/SystemSettingsContext-D3mmGGcv.js +13 -0
  5. package/dist/TrackComponentVisibleEvent-C7c_rHFW.cjs +59 -0
  6. package/dist/TrackComponentVisibleEvent-DXTEBjGM.js +52 -0
  7. package/dist/amplitudeContext-CB_F-nJY.d.cts +52 -0
  8. package/dist/amplitudeContext-Cak6ijMq.js +287 -0
  9. package/dist/amplitudeContext-DFYBDc0h.d.ts +52 -0
  10. package/dist/amplitudeContext-sTEsPaVG.cjs +309 -0
  11. package/dist/api-DSFlctlc.cjs +269 -0
  12. package/dist/api-JTNjuOfc.js +190 -0
  13. package/dist/{app-CjsQ2_n-.js → app-D_upYeqF.js} +6 -6
  14. package/dist/{app-CnKRZ9RW.cjs → app-KXTMPa4s.cjs} +8 -8
  15. package/dist/application/models/graphql/index.cjs +2 -1
  16. package/dist/application/models/graphql/index.d.ts +1 -1
  17. package/dist/application/models/graphql/index.js +2 -1
  18. package/dist/application/models/guards/api/index.cjs +2 -1
  19. package/dist/application/models/guards/api/index.d.ts +2 -2
  20. package/dist/application/models/guards/api/index.js +2 -1
  21. package/dist/application/models/index.cjs +11 -9
  22. package/dist/application/models/index.d.cts +8 -4
  23. package/dist/application/models/index.d.ts +11 -7
  24. package/dist/application/models/index.js +10 -7
  25. package/dist/application/models/utilityTypes/index.cjs +1 -1
  26. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  27. package/dist/application/models/utilityTypes/index.js +1 -1
  28. package/dist/application/models/variantInfo/index.cjs +1 -1
  29. package/dist/application/models/variantInfo/index.d.cts +1 -1
  30. package/dist/application/models/variantInfo/index.d.ts +1 -1
  31. package/dist/application/models/variantInfo/index.js +1 -1
  32. package/dist/application/utils/index.cjs +28 -22
  33. package/dist/application/utils/index.d.cts +12 -8
  34. package/dist/application/utils/index.d.ts +16 -12
  35. package/dist/application/utils/index.js +19 -13
  36. package/dist/{atomStore-B4jIaDPd.cjs → atomStore-DEZyFCNz.cjs} +1 -1
  37. package/dist/{atomStore-D8pjE1vL.js → atomStore-DnPEioF4.js} +1 -1
  38. package/dist/atoms/app/index.cjs +13 -9
  39. package/dist/atoms/app/index.d.cts +15 -11
  40. package/dist/atoms/app/index.d.ts +18 -14
  41. package/dist/atoms/app/index.js +13 -9
  42. package/dist/atoms/atomStore/index.cjs +2 -2
  43. package/dist/atoms/atomStore/index.d.cts +1 -1
  44. package/dist/atoms/atomStore/index.js +2 -2
  45. package/dist/atoms/chat/index.cjs +34 -28
  46. package/dist/atoms/chat/index.d.cts +35 -31
  47. package/dist/atoms/chat/index.d.ts +38 -34
  48. package/dist/atoms/chat/index.js +20 -14
  49. package/dist/atoms/globalSearch/index.cjs +1 -1
  50. package/dist/atoms/globalSearch/index.d.cts +5 -5
  51. package/dist/atoms/globalSearch/index.d.ts +5 -5
  52. package/dist/atoms/globalSearch/index.js +1 -1
  53. package/dist/atoms/org/index.cjs +6 -14
  54. package/dist/atoms/org/index.d.cts +27 -32
  55. package/dist/atoms/org/index.d.ts +30 -35
  56. package/dist/atoms/org/index.js +5 -11
  57. package/dist/atoms/search/index.cjs +44 -34
  58. package/dist/atoms/search/index.d.cts +9 -4
  59. package/dist/atoms/search/index.d.ts +12 -7
  60. package/dist/atoms/search/index.js +26 -16
  61. package/dist/atoms/search/types.cjs +5 -0
  62. package/dist/atoms/search/types.d.cts +2 -0
  63. package/dist/atoms/search/types.d.ts +2 -0
  64. package/dist/atoms/search/types.js +3 -0
  65. package/dist/cdnContext-BMjVfBft.cjs +53 -0
  66. package/dist/cdnContext-DgsJ00Tb.js +38 -0
  67. package/dist/{chat-CV6MXeID.js → chat-B4lkFIxz.js} +1 -1
  68. package/dist/chat-D1Eat8Ih.cjs +394 -0
  69. package/dist/chat-DPJGdUkz.js +258 -0
  70. package/dist/{chat-BubCW1as.cjs → chat-zA-K4tR_.cjs} +1 -1
  71. package/dist/chatElementDisplayLocation-9SW40Dd3.d.cts +25 -0
  72. package/dist/chatElementDisplayLocation-C1tRM5OD.d.ts +25 -0
  73. package/dist/chatSearch-B5jMnCYX.js +315 -0
  74. package/dist/chatSearch-DWMiyWN0.cjs +444 -0
  75. package/dist/chatState-BisPJd5g.cjs +120 -0
  76. package/dist/chatState-BrmBYY8l.js +34 -0
  77. package/dist/commerce-api-CxDIfeME.cjs +318 -0
  78. package/dist/commerce-api-DagLj3D_.js +311 -0
  79. package/dist/{components-B4T3Uzth.js → components-B1edduHz.js} +1 -1
  80. package/dist/{components-Cw9WjA6g.cjs → components-g0G58Kat.cjs} +1 -1
  81. package/dist/config/locators/components/chat/index.cjs +1 -1
  82. package/dist/config/locators/components/chat/index.d.cts +1 -1
  83. package/dist/config/locators/components/chat/index.d.ts +1 -1
  84. package/dist/config/locators/components/chat/index.js +1 -1
  85. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  86. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  87. package/dist/config/locators/components/index.cjs +1 -1
  88. package/dist/config/locators/components/index.d.cts +1 -1
  89. package/dist/config/locators/components/index.d.ts +1 -1
  90. package/dist/config/locators/components/index.js +1 -1
  91. package/dist/config/locators/components/search/index.d.cts +1 -1
  92. package/dist/config/locators/components/search/index.d.ts +1 -1
  93. package/dist/config/locators/index.cjs +42 -22
  94. package/dist/config/locators/index.d.cts +2 -2
  95. package/dist/config/locators/index.d.ts +3 -3
  96. package/dist/config/locators/index.js +25 -5
  97. package/dist/contexts/amplitudeContext/index.cjs +21 -0
  98. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  99. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  100. package/dist/contexts/amplitudeContext/index.js +19 -0
  101. package/dist/contexts/cdnContext/index.cjs +7 -0
  102. package/dist/contexts/cdnContext/index.d.cts +15 -0
  103. package/dist/contexts/cdnContext/index.d.ts +15 -0
  104. package/dist/contexts/cdnContext/index.js +6 -0
  105. package/dist/contexts/chatContext/index.cjs +329 -0
  106. package/dist/contexts/chatContext/index.d.cts +15 -0
  107. package/dist/contexts/chatContext/index.d.ts +15 -0
  108. package/dist/contexts/chatContext/index.js +322 -0
  109. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  110. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  111. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  112. package/dist/contexts/enviveConfigContext/index.js +6 -0
  113. package/dist/contexts/enviveCssContext/index.cjs +65 -0
  114. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  115. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  116. package/dist/contexts/enviveCssContext/index.js +62 -0
  117. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  118. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  119. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  120. package/dist/contexts/featureFlagContext/index.js +103 -0
  121. package/dist/contexts/featureFlagServiceContext/index.cjs +6 -0
  122. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  123. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  124. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  125. package/dist/contexts/graphqlContext/index.cjs +15 -0
  126. package/dist/contexts/graphqlContext/index.d.cts +12 -0
  127. package/dist/contexts/graphqlContext/index.d.ts +12 -0
  128. package/dist/contexts/graphqlContext/index.js +14 -0
  129. package/dist/contexts/localStorageContext/index.cjs +6 -0
  130. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  131. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  132. package/dist/contexts/localStorageContext/index.js +4 -0
  133. package/dist/contexts/newOrgConfigContext/index.cjs +19 -0
  134. package/dist/contexts/newOrgConfigContext/index.d.cts +30 -0
  135. package/dist/contexts/newOrgConfigContext/index.d.ts +30 -0
  136. package/dist/contexts/newOrgConfigContext/index.js +18 -0
  137. package/dist/contexts/searchContext/index.cjs +23 -0
  138. package/dist/contexts/searchContext/index.d.cts +16 -0
  139. package/dist/contexts/searchContext/index.d.ts +16 -0
  140. package/dist/contexts/searchContext/index.js +22 -0
  141. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  142. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  143. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  144. package/dist/contexts/sessionStorageContext/index.js +4 -0
  145. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  146. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  147. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  148. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  149. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  150. package/dist/contexts/systemSettingsContext/index.d.cts +36 -0
  151. package/dist/contexts/systemSettingsContext/index.d.ts +36 -0
  152. package/dist/contexts/systemSettingsContext/index.js +6 -0
  153. package/dist/contexts/types.cjs +7 -0
  154. package/dist/contexts/types.d.cts +4 -0
  155. package/dist/contexts/types.d.ts +4 -0
  156. package/dist/contexts/types.js +3 -0
  157. package/dist/contexts/userIdentityContext/index.cjs +26 -0
  158. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  159. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  160. package/dist/contexts/userIdentityContext/index.js +25 -0
  161. package/dist/domObserver-B6cRGTny.js +285 -0
  162. package/dist/domObserver-DQZwhPrc.cjs +304 -0
  163. package/dist/enviveConfig-BJZ4zTJo.js +62 -0
  164. package/dist/enviveConfig-DdBrcGSQ.cjs +130 -0
  165. package/dist/enviveConfigContext-78orE_uH.cjs +60 -0
  166. package/dist/enviveConfigContext-jBCCWQH9.js +45 -0
  167. package/dist/events/index.cjs +1 -1
  168. package/dist/events/index.d.ts +1 -1
  169. package/dist/events/index.js +1 -1
  170. package/dist/{events-BrLpaNxh.js → events-BHJJjPDN.js} +1 -1
  171. package/dist/{events-DwT6cEwI.cjs → events-B_fJZf9E.cjs} +1 -1
  172. package/dist/featureFlagServiceContext-ChL7DJ53.cjs +56 -0
  173. package/dist/featureFlagServiceContext-D1PzHsEs.d.ts +23 -0
  174. package/dist/featureFlagServiceContext-DQwlCTde.d.cts +23 -0
  175. package/dist/featureFlagServiceContext-DzFfmb1Z.js +42 -0
  176. package/dist/featureGates-Blx10fwB.js +27 -0
  177. package/dist/featureGates-DcZNrUma.cjs +33 -0
  178. package/dist/frontendConfig-DrvrQSm8.d.ts +857 -0
  179. package/dist/frontendConfig-wg41mBok.d.cts +857 -0
  180. package/dist/{globalSearch-BFvEg53C.cjs → globalSearch-Bnjlxtr5.cjs} +1 -1
  181. package/dist/{globalSearch-B6THR7Jx.js → globalSearch-CRWUqnjq.js} +1 -1
  182. package/dist/graphql-B9HhDXYt.cjs +53 -0
  183. package/dist/graphql-W7GMIHUu.js +36 -0
  184. package/dist/graphqlConfig-Bn-HLHsh.cjs +39 -0
  185. package/dist/graphqlConfig-DtZm_YaH.js +14 -0
  186. package/dist/graphqlContext-BJg7B--J.js +96 -0
  187. package/dist/graphqlContext-DI-_VRmb.cjs +111 -0
  188. package/dist/hooks/AmplitudeOperations/index.cjs +21 -0
  189. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  190. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  191. package/dist/hooks/AmplitudeOperations/index.js +21 -0
  192. package/dist/hooks/AppDetails/index.cjs +18 -0
  193. package/dist/hooks/AppDetails/index.d.cts +26 -0
  194. package/dist/hooks/AppDetails/index.d.ts +26 -0
  195. package/dist/hooks/AppDetails/index.js +18 -0
  196. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  197. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  198. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  199. package/dist/hooks/BlockBackButton/index.js +27 -0
  200. package/dist/hooks/CdnOperations/index.cjs +24 -0
  201. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  202. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  203. package/dist/hooks/CdnOperations/index.js +22 -0
  204. package/dist/hooks/ChatToggle/index.cjs +63 -0
  205. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  206. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  207. package/dist/hooks/ChatToggle/index.js +61 -0
  208. package/dist/hooks/ChatToggleAnalytics/index.cjs +37 -0
  209. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  210. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  211. package/dist/hooks/ChatToggleAnalytics/index.js +35 -0
  212. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  213. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  214. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  215. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  216. package/dist/hooks/Debounce/index.cjs +3 -0
  217. package/dist/hooks/Debounce/index.d.cts +5 -0
  218. package/dist/hooks/Debounce/index.d.ts +5 -0
  219. package/dist/hooks/Debounce/index.js +3 -0
  220. package/dist/hooks/ElementObserver/index.cjs +179 -0
  221. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  222. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  223. package/dist/hooks/ElementObserver/index.js +177 -0
  224. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  225. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  226. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  227. package/dist/hooks/GrabAndScroll/index.js +97 -0
  228. package/dist/hooks/GraphQLConfig/index.cjs +16 -0
  229. package/dist/hooks/GraphQLConfig/index.d.cts +15 -0
  230. package/dist/hooks/GraphQLConfig/index.d.ts +15 -0
  231. package/dist/hooks/GraphQLConfig/index.js +15 -0
  232. package/dist/hooks/IdentifyUser/index.cjs +59 -0
  233. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  234. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  235. package/dist/hooks/IdentifyUser/index.js +57 -0
  236. package/dist/hooks/ImageResolver/index.cjs +54 -0
  237. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  238. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  239. package/dist/hooks/ImageResolver/index.js +52 -0
  240. package/dist/hooks/Intersection/index.cjs +3 -0
  241. package/dist/hooks/Intersection/index.d.cts +7 -0
  242. package/dist/hooks/Intersection/index.d.ts +7 -0
  243. package/dist/hooks/Intersection/index.js +3 -0
  244. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  245. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  246. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  247. package/dist/hooks/IsSmallScreen/index.js +20 -0
  248. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  249. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  250. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  251. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  252. package/dist/hooks/MessageFilter/index.cjs +53 -0
  253. package/dist/hooks/MessageFilter/index.d.cts +29 -0
  254. package/dist/hooks/MessageFilter/index.d.ts +29 -0
  255. package/dist/hooks/MessageFilter/index.js +53 -0
  256. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  257. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  258. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  259. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  260. package/dist/hooks/NewOrgConfig/index.cjs +19 -0
  261. package/dist/hooks/NewOrgConfig/index.d.cts +22 -0
  262. package/dist/hooks/NewOrgConfig/index.d.ts +22 -0
  263. package/dist/hooks/NewOrgConfig/index.js +19 -0
  264. package/dist/hooks/Search/index.cjs +324 -0
  265. package/dist/hooks/Search/index.d.cts +66 -0
  266. package/dist/hooks/Search/index.d.ts +66 -0
  267. package/dist/hooks/Search/index.js +321 -0
  268. package/dist/hooks/SearchOperations/index.cjs +101 -0
  269. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  270. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  271. package/dist/hooks/SearchOperations/index.js +98 -0
  272. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  273. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  274. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  275. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  276. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  277. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  278. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  279. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  280. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  281. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  282. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  283. package/dist/hooks/SnapCalculator/index.js +27 -0
  284. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  285. package/dist/hooks/SystemSettingsContext/index.d.cts +22 -0
  286. package/dist/hooks/SystemSettingsContext/index.d.ts +22 -0
  287. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  288. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +21 -0
  289. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  290. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  291. package/dist/hooks/TrackComponentVisibleEvent/index.js +21 -0
  292. package/dist/hooks/UpdateAnalyticsProps/index.cjs +61 -0
  293. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  294. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  295. package/dist/hooks/UpdateAnalyticsProps/index.js +58 -0
  296. package/dist/index-BCLaqnc2.d.cts +689 -0
  297. package/dist/{index-ylUiJvnr.d.ts → index-BS7-_CW4.d.ts} +1 -1
  298. package/dist/index-Bmub8e38.d.cts +1 -1
  299. package/dist/index-Bs0QtkSu.d.ts +689 -0
  300. package/dist/index-CESxqFso.d.cts +1 -1
  301. package/dist/index-CKeS9dud.d.ts +28 -0
  302. package/dist/index-CiWEYzXl.d.cts +1 -1
  303. package/dist/index-CyXULMyI.d.cts +186 -0
  304. package/dist/index-Cz10TYQA.d.cts +28 -0
  305. package/dist/{index-B0NW9KTj.d.cts → index-D46Rd0io.d.cts} +1 -1
  306. package/dist/{index-C6KdON7d.d.ts → index-D8ThXrqI.d.ts} +1 -1
  307. package/dist/{index-PGF8BvxQ.d.ts → index-D9VegTU-.d.ts} +1 -1
  308. package/dist/{index-DOii3C6b.d.ts → index-DBqgBV9N.d.ts} +1 -1
  309. package/dist/{index-Cqg6ltII.d.ts → index-DNUKSg6R.d.ts} +1 -1
  310. package/dist/{index-BDPWBU3h.d.cts → index-DO0s5KNA.d.cts} +1 -1
  311. package/dist/{index-CcIG01PJ.d.ts → index-DuyZQOE1.d.ts} +2 -2
  312. package/dist/{index-Byb45OPg.d.cts → index-REhT-Pls.d.cts} +1 -1
  313. package/dist/index-fKJB9EFb.d.ts +186 -0
  314. package/dist/interceptors/index.cjs +2 -1
  315. package/dist/interceptors/index.d.cts +9 -10
  316. package/dist/interceptors/index.d.ts +12 -13
  317. package/dist/interceptors/index.js +2 -1
  318. package/dist/interceptors/types.cjs +1 -0
  319. package/dist/interceptors/types.d.cts +12 -0
  320. package/dist/interceptors/types.d.ts +12 -0
  321. package/dist/interceptors/types.js +3 -0
  322. package/dist/localStorageContext-6OrGDFid.js +95 -0
  323. package/dist/localStorageContext-Bld0OWmG.cjs +115 -0
  324. package/dist/logger-CSL2jqI9.cjs +26 -0
  325. package/dist/logger-D5MFf3nW.js +20 -0
  326. package/dist/{models-BkXg5eIP.cjs → models-Dn8Emdzc.js} +219 -458
  327. package/dist/models-ZpQcRZQK.cjs +1536 -0
  328. package/dist/newOrgConfigAtom--tewb_G0.js +8 -0
  329. package/dist/newOrgConfigAtom-DkSi45_Q.cjs +15 -0
  330. package/dist/newOrgConfigContext-B3aeblfE.cjs +68 -0
  331. package/dist/newOrgConfigContext-B5mzHKTG.js +53 -0
  332. package/dist/{nodeSelector-BxrS2S_k.d.ts → nodeSelector-DybpVr-i.d.ts} +1 -1
  333. package/dist/{nodeSelector-Dm4S-10n.d.cts → nodeSelector-XsUa5vNH.d.cts} +1 -1
  334. package/dist/org-B2uRkPt3.js +12 -0
  335. package/dist/org-ClUxpHPZ.cjs +43 -0
  336. package/dist/{orgAnalyticsConfig-BJ2A1RZ-.cjs → orgAnalyticsConfig-CuWXijsr.cjs} +1 -1
  337. package/dist/{orgAnalyticsConfig-ClrFy2qH.js → orgAnalyticsConfig-DOceTdNp.js} +1 -1
  338. package/dist/search-BIomqYy6.d.ts +20 -0
  339. package/dist/search-B_Hg-Es2.d.cts +20 -0
  340. package/dist/search-Bn4x-3TG.js +126 -0
  341. package/dist/search-DsQm_pAi.cjs +205 -0
  342. package/dist/{search-filter-types-fZf91Pdw.d.ts → search-filter-types-B5xcaEit.d.ts} +1 -1
  343. package/dist/{search-filter-types-DosbseF3.d.cts → search-filter-types-Byd0lEUa.d.cts} +1 -1
  344. package/dist/searchContext-Cn-pCoDy.cjs +145 -0
  345. package/dist/searchContext-fQDGSvUF.js +129 -0
  346. package/dist/searchServiceAdapter-BSPZOg1r.js +16 -0
  347. package/dist/searchServiceAdapter-DrjFCiw8.cjs +34 -0
  348. package/dist/sessionStorageContext-C5MUl2zf.js +52 -0
  349. package/dist/sessionStorageContext-CXE7iHtP.cjs +66 -0
  350. package/dist/shopifyUrlContext-7ppKx1jJ.cjs +75 -0
  351. package/dist/shopifyUrlContext-BSYWsoX9.js +61 -0
  352. package/dist/spiffyWidgets-CdxRcXhW.d.ts +20 -0
  353. package/dist/spiffyWidgets-DxGuuuCG.d.cts +20 -0
  354. package/dist/systemSettingsContext-BdAe_3Ll.cjs +60 -0
  355. package/dist/systemSettingsContext-Cjyo2o3N.js +39 -0
  356. package/dist/{test-types-CgVJtwUr.d.cts → test-types-DQB1JqOf.d.cts} +1 -1
  357. package/dist/{test-types-C9b_OdfO.d.ts → test-types-ZuRAYwox.d.ts} +1 -1
  358. package/dist/types/index.cjs +33 -5
  359. package/dist/types/index.d.cts +2 -2
  360. package/dist/types/index.d.ts +2 -2
  361. package/dist/types/index.js +30 -3
  362. package/dist/types-BCz-hOvv.d.ts +51 -0
  363. package/dist/types-BwNrLPSZ.cjs +106 -0
  364. package/dist/types-D3uOF0Oy.js +76 -0
  365. package/dist/types-DIk0FLwd.js +30 -0
  366. package/dist/types-DNLkuGWZ.cjs +48 -0
  367. package/dist/types-DzwBmZHy.d.cts +10 -0
  368. package/dist/types-Eip78dWv.d.cts +51 -0
  369. package/dist/types-YvACLe2e.d.ts +10 -0
  370. package/dist/types.d.cts +15 -0
  371. package/dist/types.d.ts +15 -0
  372. package/dist/unsupportedProductExceptions--t7AQFou.js +20 -0
  373. package/dist/unsupportedProductExceptions-Dak4AD-t.cjs +32 -0
  374. package/dist/urlsParser-BV5yF8sa.cjs +78 -0
  375. package/dist/urlsParser-DUgV_Qy9.js +42 -0
  376. package/dist/useAmplitudeOperations-C6Osqkso.js +34 -0
  377. package/dist/useAmplitudeOperations-Cco_B3A5.cjs +41 -0
  378. package/dist/useAppDetails-CGqtN6sJ.cjs +38 -0
  379. package/dist/useAppDetails-DwX2Rhed.js +30 -0
  380. package/dist/useDebounce-BJqnCBcl.cjs +26 -0
  381. package/dist/useDebounce-Ce31ph7m.js +19 -0
  382. package/dist/useGraphQLConfig-ByOZb3oZ.js +63 -0
  383. package/dist/useGraphQLConfig-DItL4BgM.cjs +76 -0
  384. package/dist/useIntersection-Czeo04jt.js +21 -0
  385. package/dist/useIntersection-DnZNLcnu.cjs +28 -0
  386. package/dist/{useMessageInterceptor-B87e3yu3.cjs → useMessageInterceptor-C9p9No1n.cjs} +3 -3
  387. package/dist/{useMessageInterceptor-Bb7YRaWk.js → useMessageInterceptor-tntd2rvB.js} +2 -2
  388. package/dist/userIdentityContext-C1HzZFb2.cjs +125 -0
  389. package/dist/userIdentityContext-CDfosvOO.js +109 -0
  390. package/dist/userIdentityContext-DBXoLrFu.d.cts +20 -0
  391. package/dist/userIdentityContext-W1OWF3cG.d.ts +20 -0
  392. package/dist/utilityTypes-CWJZb9BZ.js +1 -0
  393. package/dist/utilityTypes-YGiMSyV7.cjs +0 -0
  394. package/dist/utils-BA5HXmkL.cjs +74 -0
  395. package/dist/utils-BTDw2aMx.cjs +715 -0
  396. package/dist/utils-C7S9YiFp.js +54 -0
  397. package/dist/utils-CF13DfA1.js +606 -0
  398. package/dist/variantInfo-58JLeDJb.js +1 -0
  399. package/dist/variantInfo-DRFLcGc7.cjs +0 -0
  400. package/package.json +179 -7
  401. package/src/application/models/index.ts +0 -1
  402. package/src/application/utils/analyticsUtils.ts +1 -1
  403. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -1
  404. package/src/atoms/app/index.ts +1 -1
  405. package/src/atoms/chat/chatState.ts +1 -1
  406. package/src/atoms/chat/replies.ts +1 -1
  407. package/src/atoms/org/graphqlConfig.ts +1 -39
  408. package/src/atoms/org/index.ts +0 -1
  409. package/src/atoms/org/newOrgConfigAtom.ts +2 -6
  410. package/src/contexts/{amplitudeContext.tsx → amplitudeContext/amplitudeContext.tsx} +1 -2
  411. package/src/contexts/amplitudeContext/index.ts +1 -0
  412. package/src/contexts/{cdnContext.tsx → cdnContext/cdnContext.tsx} +1 -1
  413. package/src/contexts/cdnContext/index.ts +1 -0
  414. package/src/contexts/{chatContext.tsx → chatContext/chatContext.tsx} +3 -3
  415. package/src/contexts/chatContext/index.ts +1 -0
  416. package/src/contexts/{enviveConfigContext.tsx → enviveConfigContext/enviveConfigContext.tsx} +1 -1
  417. package/src/contexts/enviveConfigContext/index.ts +1 -0
  418. package/src/contexts/{enviveCssContext.tsx → enviveCssContext/enviveCssContext.tsx} +1 -1
  419. package/src/contexts/enviveCssContext/index.ts +1 -0
  420. package/src/contexts/{featureFlagContext.tsx → featureFlagContext/featureFlagContext.tsx} +1 -1
  421. package/src/contexts/featureFlagContext/index.ts +1 -0
  422. package/src/contexts/featureFlagServiceContext/index.ts +1 -0
  423. package/src/contexts/graphqlContext/index.ts +1 -0
  424. package/src/contexts/localStorageContext/index.ts +1 -0
  425. package/src/contexts/{localStorageContext.tsx → localStorageContext/localStorageContext.tsx} +2 -2
  426. package/src/contexts/newOrgConfigContext/index.ts +1 -0
  427. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +70 -0
  428. package/src/contexts/searchContext/index.ts +1 -0
  429. package/src/contexts/{searchContext.tsx → searchContext/searchContext.tsx} +5 -5
  430. package/src/contexts/sessionStorageContext/index.ts +1 -0
  431. package/src/contexts/{sessionStorageContext.tsx → sessionStorageContext/sessionStorageContext.tsx} +1 -1
  432. package/src/contexts/shopifyUrlContext/index.ts +1 -0
  433. package/src/contexts/systemSettingsContext/index.ts +1 -0
  434. package/src/contexts/userIdentityContext/index.ts +1 -0
  435. package/src/events/registerAnalyticsListeners.ts +2 -2
  436. package/src/favicon.ico +0 -0
  437. package/src/hooks/AmplitudeOperations/index.ts +1 -0
  438. package/src/hooks/{useAmplitudeOperations.ts → AmplitudeOperations/useAmplitudeOperations.ts} +1 -1
  439. package/src/hooks/AppDetails/index.ts +1 -0
  440. package/src/hooks/{useAppDetails.ts → AppDetails/useAppDetails.ts} +1 -3
  441. package/src/hooks/BlockBackButton/index.ts +1 -0
  442. package/src/hooks/CdnOperations/index.ts +1 -0
  443. package/src/hooks/{useCdnOperations.ts → CdnOperations/useCdnOperations.ts} +1 -1
  444. package/src/hooks/ChatToggle/index.ts +1 -0
  445. package/src/hooks/{useChatToggle.ts → ChatToggle/useChatToggle.ts} +1 -1
  446. package/src/hooks/ChatToggleAnalytics/index.ts +1 -0
  447. package/src/hooks/{useChatToggleAnalytics.ts → ChatToggleAnalytics/useChatToggleAnalytics.ts} +1 -1
  448. package/src/hooks/CustomerSupportHandoff/index.ts +1 -0
  449. package/src/hooks/Debounce/index.ts +1 -0
  450. package/src/hooks/ElementObserver/index.ts +1 -0
  451. package/src/hooks/GrabAndScroll/index.ts +1 -0
  452. package/src/hooks/GraphQLConfig/index.ts +1 -0
  453. package/src/hooks/{useGraphQLConfig.ts → GraphQLConfig/useGraphQLConfig.ts} +1 -1
  454. package/src/hooks/IdentifyUser/index.ts +1 -0
  455. package/src/hooks/{useIdentifyUser.ts → IdentifyUser/useIdentifyUser.ts} +1 -1
  456. package/src/hooks/ImageResolver/index.ts +1 -0
  457. package/src/hooks/Intersection/index.ts +1 -0
  458. package/src/hooks/IsSmallScreen/index.ts +1 -0
  459. package/src/hooks/LocalStorageOperations/index.ts +1 -0
  460. package/src/hooks/{useLocalStorageOperations.ts → LocalStorageOperations/useLocalStorageOperations.ts} +2 -2
  461. package/src/hooks/MessageFilter/index.ts +1 -0
  462. package/src/hooks/MessageScrollObserver/index.ts +1 -0
  463. package/src/hooks/NewOrgConfig/index.ts +1 -0
  464. package/src/hooks/{useNewOrgConfig.ts → NewOrgConfig/useNewOrgConfig.ts} +1 -1
  465. package/src/hooks/Search/index.ts +1 -0
  466. package/src/hooks/{useSearch.tsx → Search/useSearch.tsx} +5 -4
  467. package/src/hooks/SearchOperations/index.ts +1 -0
  468. package/src/hooks/SessionStorageOperations/index.ts +1 -0
  469. package/src/hooks/{useSessionStorageOperations.ts → SessionStorageOperations/useSessionStorageOperations.ts} +1 -1
  470. package/src/hooks/ShopifyUrlOperations/index.ts +1 -0
  471. package/src/hooks/{useShopifyUrlOperations.ts → ShopifyUrlOperations/useShopifyUrlOperations.ts} +1 -1
  472. package/src/hooks/SnapCalculator/index.ts +1 -0
  473. package/src/hooks/SystemSettingsContext/index.ts +1 -0
  474. package/src/hooks/SystemSettingsContext/useSystemSettingsContext.ts +14 -0
  475. package/src/hooks/TrackComponentVisibleEvent/index.ts +1 -0
  476. package/src/hooks/{useTrackComponentVisibleEvent.ts → TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts} +2 -2
  477. package/src/hooks/UpdateAnalyticsProps/index.ts +1 -0
  478. package/src/hooks/{useUpdateAnalyticsProps.ts → UpdateAnalyticsProps/useUpdateAnalyticsProps.ts} +1 -1
  479. package/dist/amplitudeContext-CHzas7Cf.d.cts +0 -52
  480. package/dist/amplitudeContext-D-7fmVh1.cjs +0 -356
  481. package/dist/amplitudeContext-hY3caPC6.js +0 -322
  482. package/dist/amplitudeContext-tJ4y-SzX.d.ts +0 -52
  483. package/dist/api-DjeZXxl_.js +0 -207
  484. package/dist/api-_JaUnIUj.cjs +0 -292
  485. package/dist/bandolier-DYEz4-8C.js +0 -1229
  486. package/dist/bandolier-o_-xrbOV.cjs +0 -1229
  487. package/dist/carpe-CsG5jCcl.cjs +0 -607
  488. package/dist/carpe-DONk00bZ.js +0 -605
  489. package/dist/cdnUtils-32v8bDX9.cjs +0 -16
  490. package/dist/cdnUtils-E4tLBt2g.js +0 -11
  491. package/dist/chat-CO7cRkaq.cjs +0 -506
  492. package/dist/chat-hcRc4RRd.js +0 -285
  493. package/dist/contexts/index.cjs +0 -57
  494. package/dist/contexts/index.d.cts +0 -10
  495. package/dist/contexts/index.d.ts +0 -10
  496. package/dist/contexts/index.js +0 -23
  497. package/dist/contexts-B4ihTBsV.cjs +0 -2980
  498. package/dist/contexts-DGlr7M1o.js +0 -2596
  499. package/dist/coterie-CKB93qfz.cjs +0 -239
  500. package/dist/coterie-DHcj2fRE.js +0 -239
  501. package/dist/custservice-types-Dy0kc9TW.cjs +0 -35
  502. package/dist/custservice-types-mnIunabv.js +0 -23
  503. package/dist/default-BnB4p0Se.cjs +0 -234
  504. package/dist/default-D6f5Dyt7.js +0 -199
  505. package/dist/default-ZKkE5zT4.cjs +0 -4
  506. package/dist/default-legGZJwI.js +0 -4
  507. package/dist/divIds-2dJlU3z8.cjs +0 -117
  508. package/dist/divIds-BUrN2vY-.js +0 -21
  509. package/dist/dreamlandBaby-BiRYYFav.js +0 -346
  510. package/dist/dreamlandBaby-zuvmfzfD.cjs +0 -346
  511. package/dist/embedded-BJLWIriJ.js +0 -23
  512. package/dist/embedded-Dl79TJLC.cjs +0 -131
  513. package/dist/entrypoints-Bs3pn6EV.js +0 -7
  514. package/dist/entrypoints-Dqi5pzWH.cjs +0 -19
  515. package/dist/enviveConfig-BccuzS2a.cjs +0 -240
  516. package/dist/enviveConfig-CzhTz8Aa.js +0 -152
  517. package/dist/fiveCbd-DwTTwC2j.cjs +0 -613
  518. package/dist/fiveCbd-Dz2NouOF.js +0 -613
  519. package/dist/forLoveAndLemons-DqSdyD6S.js +0 -665
  520. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +0 -667
  521. package/dist/graphql-BNW60InJ.cjs +0 -128
  522. package/dist/graphql-CjB8wHzm.js +0 -74
  523. package/dist/graphqlConfig-CYt6tWII.js +0 -30
  524. package/dist/graphqlConfig-DicykC-o.cjs +0 -61
  525. package/dist/greenpan-B_EbPkSP.js +0 -397
  526. package/dist/greenpan-kPE4fJgd.cjs +0 -397
  527. package/dist/grooveLife-Ckuir319.js +0 -342
  528. package/dist/grooveLife-DKSEQp1F.cjs +0 -342
  529. package/dist/homegrownCannabis-BVPa2pqe.js +0 -410
  530. package/dist/homegrownCannabis-BwIAkxuA.cjs +0 -410
  531. package/dist/hooks/index.cjs +0 -63
  532. package/dist/hooks/index.d.cts +0 -314
  533. package/dist/hooks/index.d.ts +0 -314
  534. package/dist/hooks/index.js +0 -23
  535. package/dist/index-BMPtlgac.d.ts +0 -191
  536. package/dist/index-C7pGDl1A.d.ts +0 -1609
  537. package/dist/index-C9lgsCWp.d.cts +0 -203
  538. package/dist/index-Cc-wBCn6.d.ts +0 -203
  539. package/dist/index-DTu2X-YS.d.cts +0 -1609
  540. package/dist/index-OEifcBsm.d.cts +0 -191
  541. package/dist/jackArcher-B39OEIj6.cjs +0 -727
  542. package/dist/jackArcher-BwkWGybC.js +0 -727
  543. package/dist/jordanCraig-CxRH_jLi.js +0 -1786
  544. package/dist/jordanCraig-RwmWw-jM.cjs +0 -1786
  545. package/dist/kindredBravely-D78VwL20.cjs +0 -490
  546. package/dist/kindredBravely-DQDpAzdl.js +0 -490
  547. package/dist/kutFromTheKloth-TcXQkIti.js +0 -369
  548. package/dist/kutFromTheKloth-dXRrNti0.cjs +0 -369
  549. package/dist/larryAndSerges-Bh5XEXsZ.js +0 -262
  550. package/dist/larryAndSerges-COdBzOzu.cjs +0 -262
  551. package/dist/leapsAndRebounds-BbXnqkl5.cjs +0 -360
  552. package/dist/leapsAndRebounds-mjCaH1k-.js +0 -360
  553. package/dist/longevityrx-DdV3v26F.cjs +0 -320
  554. package/dist/longevityrx-DfPDfvAt.js +0 -320
  555. package/dist/lookOptic-DgXFGBPP.cjs +0 -282
  556. package/dist/lookOptic-FgVW1afF.js +0 -282
  557. package/dist/mantraBrand-C5gVm3rk.cjs +0 -750
  558. package/dist/mantraBrand-uV8HCDR8.js +0 -750
  559. package/dist/medterra-BtDpr1Hw.cjs +0 -583
  560. package/dist/medterra-DgzE7-mj.js +0 -583
  561. package/dist/modells-CJjsxOIR.js +0 -484
  562. package/dist/modells-Ck5KbRFj.cjs +0 -484
  563. package/dist/models-UZ6HszfZ.js +0 -1281
  564. package/dist/org-C2RrBVQR.cjs +0 -81
  565. package/dist/org-xMytX--e.js +0 -38
  566. package/dist/pressedFloral-Bteoboms.js +0 -661
  567. package/dist/pressedFloral-CexgV-xy.cjs +0 -661
  568. package/dist/search-BMOAmrmY.js +0 -459
  569. package/dist/search-Df0Ifneg.cjs +0 -672
  570. package/dist/skinPerfection-BGzq9lq-.cjs +0 -334
  571. package/dist/skinPerfection-BlvcEcUE.js +0 -334
  572. package/dist/snapSupplements-CbbGzAgO.cjs +0 -285
  573. package/dist/snapSupplements-kcsPAOm9.js +0 -285
  574. package/dist/socialProofClasses-Db8gzsfi.cjs +0 -40
  575. package/dist/socialProofClasses-kwDvwLOZ.js +0 -10
  576. package/dist/spanx-B4WFA_rI.js +0 -661
  577. package/dist/spanx-BWoE4F8b.cjs +0 -663
  578. package/dist/spanxStaging-BOrOjhXn.js +0 -845
  579. package/dist/spanxStaging-BfdfIug4.cjs +0 -848
  580. package/dist/suggestionBarV2-types-IMMOmCir.js +0 -10
  581. package/dist/suggestionBarV2-types-nnGNgFvR.cjs +0 -16
  582. package/dist/supergoop-22dd5_BS.js +0 -323
  583. package/dist/supergoop-B-a4cku2.cjs +0 -323
  584. package/dist/types--pr1GQQx.js +0 -154
  585. package/dist/types-BVSyY3Hk.cjs +0 -196
  586. package/dist/uniqueVintage-CJXiNNe7.js +0 -1211
  587. package/dist/uniqueVintage-D0jzJWlo.cjs +0 -1213
  588. package/dist/userIdentityContext-BPqvVIg0.d.cts +0 -20
  589. package/dist/userIdentityContext-wbCRmlzp.d.ts +0 -20
  590. package/dist/utils-C9ZSCx12.js +0 -888
  591. package/dist/utils-D5HO61hG.cjs +0 -1016
  592. package/dist/venaCbd-Bhhu_qUf.cjs +0 -365
  593. package/dist/venaCbd-CanovPS_.js +0 -365
  594. package/dist/westonJonBoucher-BC0x1ktI.cjs +0 -422
  595. package/dist/westonJonBoucher-BUu1_wP1.js +0 -422
  596. package/dist/wineEnthusiast-BlCryfil.cjs +0 -940
  597. package/dist/wineEnthusiast-Ck1x5iJq.js +0 -940
  598. package/dist/wolfMattress-D9Mjq-HP.js +0 -372
  599. package/dist/wolfMattress-JssghhC-.cjs +0 -372
  600. package/dist/wolfTactical-C6exYhL7.cjs +0 -349
  601. package/dist/wolfTactical-CnV3KQdI.js +0 -349
  602. package/src/application/models/supportedOrgs.ts +0 -161
  603. package/src/atoms/org/orgPageConfig.ts +0 -42
  604. package/src/contexts/index.ts +0 -16
  605. package/src/contexts/newOrgConfigContext.tsx +0 -104
  606. package/src/contexts/orgConfigContext.tsx +0 -106
  607. package/src/hooks/index.ts +0 -27
  608. package/src/hooks/useSystemSettingsContext.ts +0 -12
  609. package/src/merchants/bandolier/bandolier.ts +0 -1371
  610. package/src/merchants/carpe/carpe.ts +0 -653
  611. package/src/merchants/coterie/coterie.ts +0 -277
  612. package/src/merchants/default.ts +0 -196
  613. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +0 -381
  614. package/src/merchants/fiveCbd/fiveCbd.ts +0 -691
  615. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +0 -751
  616. package/src/merchants/greenpan/greenpan.ts +0 -434
  617. package/src/merchants/grooveLife/grooveLife.ts +0 -392
  618. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +0 -474
  619. package/src/merchants/init-merchant.sh +0 -53
  620. package/src/merchants/jackArcher/jackArcher.ts +0 -989
  621. package/src/merchants/jordanCraig/jordanCraig.ts +0 -1927
  622. package/src/merchants/kindredBravely/kindredBravely.ts +0 -538
  623. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +0 -421
  624. package/src/merchants/larryAndSerges/larryAndSerges.ts +0 -318
  625. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +0 -424
  626. package/src/merchants/longevityrx/longevityrx.ts +0 -374
  627. package/src/merchants/lookOptic/lookOptic.ts +0 -323
  628. package/src/merchants/mantraBrand/mantraBrand.ts +0 -844
  629. package/src/merchants/medterra/medterra.ts +0 -673
  630. package/src/merchants/modells/modells.ts +0 -543
  631. package/src/merchants/pressedFloral/pressedFloral.ts +0 -728
  632. package/src/merchants/skinPerfection/skinPerfection.ts +0 -385
  633. package/src/merchants/snapSupplements/snapSupplements.ts +0 -328
  634. package/src/merchants/spanx/spanx.ts +0 -810
  635. package/src/merchants/spanx/spanxStaging.ts +0 -936
  636. package/src/merchants/supergoop/supergoop.ts +0 -375
  637. package/src/merchants/uniqueVintage/uniqueVintage.ts +0 -1314
  638. package/src/merchants/venaCbd/venaCbd.ts +0 -407
  639. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +0 -473
  640. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +0 -990
  641. package/src/merchants/wolfMattress/wolfMattress.ts +0 -411
  642. package/src/merchants/wolfTactical/wolfTactical.ts +0 -383
  643. /package/dist/{atomStore-KSoFS3Jj.cjs → AmplitudeOperations-CgIVPUlr.cjs} +0 -0
  644. /package/dist/{atomStore-CZnUUsrr.js → AmplitudeOperations-YpyaR7Mp.js} +0 -0
  645. /package/dist/{locators-fBXS_pxP.js → atomStore-C2OI76yN.js} +0 -0
  646. /package/dist/{locators-0YYZu9n4.cjs → atomStore-DWmT1six.cjs} +0 -0
  647. /package/dist/{utilityTypes-8sETsYPk.js → types-DQoXDiso.js} +0 -0
  648. /package/dist/{utilityTypes-COShxVir.cjs → types-o3zWarRp.cjs} +0 -0
  649. /package/dist/{variantInfo-orXoPBCU.cjs → types.cjs} +0 -0
  650. /package/dist/{variantInfo-DbVxA1yE.js → types.js} +0 -0
  651. /package/src/contexts/{featureFlagServiceContext.tsx → featureFlagServiceContext/featureFlagServiceContext.tsx} +0 -0
  652. /package/src/contexts/{graphqlContext.tsx → graphqlContext/graphqlContext.tsx} +0 -0
  653. /package/src/contexts/{shopifyUrlContext.tsx → shopifyUrlContext/shopifyUrlContext.tsx} +0 -0
  654. /package/src/contexts/{systemSettingsContext.tsx → systemSettingsContext/systemSettingsContext.tsx} +0 -0
  655. /package/src/contexts/{userIdentityContext.tsx → userIdentityContext/userIdentityContext.tsx} +0 -0
  656. /package/src/hooks/{useBlockBackButton.ts → BlockBackButton/useBlockBackButton.ts} +0 -0
  657. /package/src/hooks/{useCustomerSupportHandoff.ts → CustomerSupportHandoff/useCustomerSupportHandoff.ts} +0 -0
  658. /package/src/hooks/{useDebounce.ts → Debounce/useDebounce.ts} +0 -0
  659. /package/src/hooks/{useElementObserver.ts → ElementObserver/useElementObserver.ts} +0 -0
  660. /package/src/hooks/{useGrabAndScroll.ts → GrabAndScroll/useGrabAndScroll.ts} +0 -0
  661. /package/src/hooks/{useImageResolver.ts → ImageResolver/useImageResolver.ts} +0 -0
  662. /package/src/hooks/{useIntersection.ts → Intersection/useIntersection.ts} +0 -0
  663. /package/src/hooks/{useIsSmallScreen.ts → IsSmallScreen/useIsSmallScreen.ts} +0 -0
  664. /package/src/hooks/{useMessageFilter.ts → MessageFilter/useMessageFilter.ts} +0 -0
  665. /package/src/hooks/{useMessageScrollObserver.ts → MessageScrollObserver/useMessageScrollObserver.ts} +0 -0
  666. /package/src/hooks/{useSearchOperations.ts → SearchOperations/useSearchOperations.ts} +0 -0
  667. /package/src/hooks/{useSnapCalculator.ts → SnapCalculator/useSnapCalculator.ts} +0 -0
@@ -0,0 +1,689 @@
1
+ import { GetMerchantColorsQueryData } from "./index-Bmub8e38.cjs";
2
+ import { AcceptableFormFieldType, ApiFormResponseAttributes, ApiPageResponseAttributes, OrderResponseAttributes as OrderResponseAttributes$1, PageResponseAttributes, ProductResponseAttributes, Response as Response$1, ReviewResponseAttributes, SearchProductFilterAttributes, SearchProductResponseAttributes, SearchResponseAttributes, TextResponseAttributes } from "./index-CiWEYzXl.cjs";
3
+ import { CamelCasedPropertiesDeep, NonRecursiveType, UnknownArray, UpperCaseCharacters, WordSeparators } from "./index-CESxqFso.cjs";
4
+ import { ColorMapping, FrontendConfig, OrgConfig$1 as OrgConfig, OrganizationConfig as OrganizationConfig$1, PageVariantConfig, WidgetConfig, WidgetMountingConfig } from "./frontendConfig-wg41mBok.cjs";
5
+ import { VariantInfo } from "./index-D46Rd0io.cjs";
6
+ import { Context, CustServiceAttachment, FormSubmittedAttributes, FormType, FulfillmentDisplayStatus, GenerationParams, OrderItemInfo, OrderResponseAttributes, OrganizationConfig, OrganizationSettings, PDPAttributes, PLPAttributes, PLPIdAttributes, PageVisitCategory, ProductSearchFilterResponseAttributes, QueryTypedAttributes, SearchAttributes, StatsigExperiment, StatsigFeatureGate, Suggestion, SuggestionClickedAttributes, UserEvent, UserEventCategory } from "@spiffy-ai/commerce-api-client";
7
+
8
+ //#region src/application/models/cachedValue.d.ts
9
+ interface CachedValue {
10
+ value: unknown;
11
+ expiry: number;
12
+ }
13
+ //#endregion
14
+ //#region src/application/models/clientDetails.d.ts
15
+ interface ClientDetails {
16
+ os?: string;
17
+ osVersion?: string;
18
+ deviceBrand?: string;
19
+ deviceManufacturer?: string;
20
+ deviceModel?: string;
21
+ carrier?: string;
22
+ country?: string;
23
+ region?: string;
24
+ browser?: string;
25
+ browserVersion?: string;
26
+ browserIpAddress?: string;
27
+ userAgent?: string;
28
+ }
29
+ //#endregion
30
+ //#region src/application/models/conversationalSearchIds.d.ts
31
+ type ConversationalSearchIds = {
32
+ conversationalSearchEntrypointId?: string;
33
+ conversationalSearchInputId?: string;
34
+ conversationalSearchModalId?: string;
35
+ };
36
+ //#endregion
37
+ //#region src/application/models/dataLayer.d.ts
38
+ /**
39
+ * Base interface for common properties across all ecommerce events
40
+ */
41
+ interface BaseEcommerceEvent {
42
+ event: string;
43
+ ecommerce: UAEcommerceData | GA4EcommerceData;
44
+ }
45
+ /**
46
+ * Legacy universal analytics data. The actual payload contains more fields, but we
47
+ * only need the ones listed below.
48
+ */
49
+ interface UAEcommerceData {
50
+ add: {
51
+ products: {
52
+ name: string;
53
+ category: string;
54
+ price: string;
55
+ quantity: string;
56
+ }[];
57
+ currencyCode: string;
58
+ };
59
+ }
60
+ /**
61
+ * Google Analytics 4 data. The actual payload contains more fields, but we
62
+ * only need the ones listed below.
63
+ */
64
+ interface GA4EcommerceData {
65
+ currency: string;
66
+ items: {
67
+ item_name: string;
68
+ item_category: string;
69
+ price: number;
70
+ quantity: number;
71
+ }[];
72
+ }
73
+ interface UAEcommerceEvent extends BaseEcommerceEvent {
74
+ ecommerce: UAEcommerceData;
75
+ }
76
+ interface GA4EcommerceEvent extends BaseEcommerceEvent {
77
+ ecommerce: GA4EcommerceData;
78
+ }
79
+ //#endregion
80
+ //#region src/application/models/events.d.ts
81
+ declare enum SpiffyEventName {
82
+ WidgetOpen = "spiffy:widgetopen",
83
+ WidgetClose = "spiffy:widgetclose",
84
+ }
85
+ //#endregion
86
+ //#region src/application/models/googleAnalyticsEvents.d.ts
87
+ declare enum GoogleAnalyticsEvents {
88
+ ADD_TO_CART_v1 = "add_to_cart",
89
+ ADD_TO_CART_v2 = "addToCart",
90
+ }
91
+ //#endregion
92
+ //#region src/application/models/message.d.ts
93
+ declare enum MessageRole {
94
+ User = "user",
95
+ Assistant = "assistant",
96
+ }
97
+ declare enum MessageType {
98
+ Text = "text",
99
+ SuggestionClicked = "suggestion_clicked",
100
+ Product = "product",
101
+ ProductSearch = "product_search",
102
+ Review = "review",
103
+ QueryTyped = "query_typed",
104
+ Separator = "separator",
105
+ Page = "page",
106
+ Search = "search",
107
+ Attachment = "attachment",
108
+ CXAgentResponse = "cx_agent_response",
109
+ Form = "form",
110
+ Order = "order",
111
+ ProductSearchFilter = "product_search_filter",
112
+ }
113
+ type Message = {
114
+ id: string;
115
+ role: MessageRole;
116
+ createdAt: string;
117
+ } & (TextMessageMetadata | QueryTypedMetadata | SuggestionMessageMetadata | ProductMessageMetadata | ProductSearchMessageMetadata | ReviewMessageMetadata | SeparatorMessageMetadata | PageMessageMetadata | SearchMessageMetadata | AttachmentMetadata | CXAgentResponseMetadata | FormMessageMetadata | OrderMessageMetadata | ProductSearchFilterMetadata);
118
+ type AttachmentMetadata = {
119
+ type: MessageType.Attachment;
120
+ metadata: {
121
+ message?: string;
122
+ attachment: CustServiceAttachment[];
123
+ };
124
+ };
125
+ type CXAgentResponseMetadata = {
126
+ type: MessageType.CXAgentResponse;
127
+ metadata: {
128
+ message: string;
129
+ agentName: string;
130
+ };
131
+ };
132
+ type TextMessageMetadata = {
133
+ type: MessageType.Text;
134
+ metadata: TextResponseAttributes['attributes'];
135
+ };
136
+ type QueryTypedMetadata = {
137
+ type: MessageType.QueryTyped;
138
+ metadata: TextResponseAttributes['attributes'];
139
+ };
140
+ type SuggestionMessageMetadata = {
141
+ type: MessageType.SuggestionClicked;
142
+ metadata: {
143
+ suggestionId: string;
144
+ suggestionContent: string;
145
+ };
146
+ };
147
+ type ProductMessageMetadata = {
148
+ type: MessageType.Product;
149
+ metadata: ProductResponseAttributes['attributes'];
150
+ };
151
+ type ProductSearchMessageMetadata = {
152
+ type: MessageType.ProductSearch;
153
+ metadata: SearchProductResponseAttributes['attributes'];
154
+ };
155
+ type ReviewMessageMetadata = {
156
+ type: MessageType.Review;
157
+ metadata: ReviewResponseAttributes['attributes'];
158
+ };
159
+ type SeparatorMessageMetadata = {
160
+ type: MessageType.Separator;
161
+ };
162
+ type PageMessageMetadata = {
163
+ type: MessageType.Page;
164
+ metadata: PageResponseAttributes['attributes'];
165
+ };
166
+ type SearchMessageMetadata = {
167
+ type: MessageType.Search;
168
+ metadata: SearchResponseAttributes['attributes'];
169
+ };
170
+ type ProductSearchFilterMetadata = {
171
+ type: MessageType.ProductSearchFilter;
172
+ metadata: SearchProductFilterAttributes['attributes'];
173
+ };
174
+ type FormField = {
175
+ key: string;
176
+ title: string;
177
+ type: AcceptableFormFieldType;
178
+ required: boolean;
179
+ format?: 'email';
180
+ value?: string;
181
+ };
182
+ type FormMessageMetadata = {
183
+ type: MessageType.Form;
184
+ metadata: {
185
+ formType?: FormType;
186
+ fields: FormField[];
187
+ };
188
+ };
189
+ type OrderMessageMetadata = {
190
+ type: MessageType.Order;
191
+ metadata: OrderResponseAttributes$1['attributes'];
192
+ };
193
+ //#endregion
194
+ //#region src/application/models/mobilePLPChatPlacementParameter.d.ts
195
+ interface MobilePLPChatPlacementParameter {
196
+ rowIndex: number;
197
+ }
198
+ //#endregion
199
+ //#region src/application/models/orgsEnum.d.ts
200
+ declare const OrgShortName: {
201
+ readonly Coterie: "coterie";
202
+ readonly ForLoveAndLemons: "for-love-and-lemons";
203
+ readonly Greenpan: "greenpan";
204
+ readonly JordanCraig: "jordan-craig";
205
+ readonly LarryAndSerges: "larry_and_serges";
206
+ readonly LeapsAndRebounds: "leaps-and-rebounds";
207
+ readonly MantraBrand: "mantra-brand";
208
+ readonly Spanx: "spanx";
209
+ readonly SpanxStaging: "staging-spanx";
210
+ readonly Supergoop: "supergoop";
211
+ readonly UniqueVintage: "unique-vintage";
212
+ readonly JackArcher: "jack-archer";
213
+ readonly SkinPerfection: "skin-perfection";
214
+ readonly LookOptic: "look-optic";
215
+ readonly FiveCbd: "five-cbd";
216
+ readonly SnapSupplements: "snap-supplements";
217
+ readonly Longevityrx: "longevityrx";
218
+ readonly VenaCbd: "vena-cbd";
219
+ readonly Medterra: "medterra";
220
+ readonly Modells: "modells";
221
+ readonly PressedFloral: "pressed-floral";
222
+ readonly KindredBravely: "kindred-bravely";
223
+ readonly WineEnthusiast: "wine-enthusiast";
224
+ readonly HomegrownCannabis: "homegrown-cannabis";
225
+ readonly DreamlandBaby: "dreamland-baby";
226
+ readonly Bandolier: "bandolier";
227
+ readonly WestonJonBoucher: "weston-jon-boucher";
228
+ readonly KutFromTheKloth: "kut-from-the-kloth";
229
+ readonly GrooveLife: "groove-life";
230
+ readonly Carpe: "carpe";
231
+ readonly WolfTactical: "wolf-tactical";
232
+ readonly WolfMattress: "wolfmattress";
233
+ readonly Default: "default";
234
+ };
235
+ //#endregion
236
+ //#region src/application/models/productExperiment.d.ts
237
+ declare enum ProductExperiment {
238
+ Default = "default",
239
+ }
240
+ //#endregion
241
+ //#region src/application/models/spanxTakeAQuizCtaParameter.d.ts
242
+ interface SpanxTakeAQuizCtaParameter {
243
+ text?: string;
244
+ value?: string;
245
+ }
246
+ //#endregion
247
+ //#region src/application/models/api/context.d.ts
248
+ interface Context$1 extends CamelCasedPropertiesDeep<Context> {}
249
+ //#endregion
250
+ //#region src/application/models/api/generationParams.d.ts
251
+ interface GenerationParams$1 extends CamelCasedPropertiesDeep<GenerationParams> {}
252
+ //#endregion
253
+ //#region src/application/models/api/userEvent.d.ts
254
+ interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {}
255
+ interface PLPAttributes$1 extends CamelCasedPropertiesDeep<PLPAttributes> {}
256
+ interface SearchAttributes$1 extends CamelCasedPropertiesDeep<SearchAttributes> {}
257
+ interface QueryTypedAttributes$1 extends CamelCasedPropertiesDeep<QueryTypedAttributes> {}
258
+ interface FormSubmittedAttributes$1 {
259
+ filledSchema: Record<string, unknown>;
260
+ formResponseId: string;
261
+ formType: FormType;
262
+ }
263
+ interface PageVisitAttributes {
264
+ url: string;
265
+ pageVisitCategory: PageVisitCategory;
266
+ }
267
+ interface SuggestionClickedAttributes$1 extends CamelCasedPropertiesDeep<SuggestionClickedAttributes> {}
268
+ type UserEventAttributes = PDPAttributes$1 | PLPAttributes$1 | QueryTypedAttributes$1 | SearchAttributes$1 | SuggestionClickedAttributes$1 | PageVisitAttributes;
269
+ interface PDPUserEvent {
270
+ category: UserEventCategory.PdpVisit | UserEventCategory.AddToCart;
271
+ attributes: PDPAttributes$1;
272
+ }
273
+ interface PLPUserEvent {
274
+ category: UserEventCategory.PlpVisit;
275
+ attributes: PLPAttributes$1;
276
+ }
277
+ interface QueryTypedUserEvent {
278
+ category: UserEventCategory.QueryTyped;
279
+ attributes: QueryTypedAttributes$1;
280
+ }
281
+ interface SearchUserEvent {
282
+ category: UserEventCategory.Search;
283
+ attributes: SearchAttributes$1;
284
+ }
285
+ interface SuggestionsClickedUserEvent {
286
+ category: UserEventCategory.SuggestionClicked;
287
+ attributes: SuggestionClickedAttributes$1;
288
+ }
289
+ interface AppLoadedUserEvent {
290
+ category: UserEventCategory.AppLoaded;
291
+ }
292
+ interface AppUnloadedEvent {
293
+ category: UserEventCategory.AppUnloaded;
294
+ }
295
+ interface PageVisitEvent {
296
+ category: UserEventCategory.PageVisit;
297
+ attributes: PageVisitAttributes;
298
+ }
299
+ interface FormSubmitted {
300
+ category: UserEventCategory.FormSubmitted;
301
+ attributes: FormSubmittedAttributes$1;
302
+ }
303
+ type UserEvent$1 = CamelCasedPropertiesDeep<Pick<UserEvent, 'event_id' | 'category' | 'created_at'>> & (SuggestionsClickedUserEvent | AppLoadedUserEvent | PDPUserEvent | QueryTypedUserEvent | SearchUserEvent | AppUnloadedEvent | PLPUserEvent | PageVisitEvent | FormSubmitted);
304
+ //#endregion
305
+ //#region src/application/models/api/nextMessageRequest.d.ts
306
+ interface NextMessageRequest$1 {
307
+ id: string;
308
+ context: Context$1;
309
+ userEvents?: UserEvent$1[];
310
+ featureFlags?: Record<string, boolean>;
311
+ generationParams?: GenerationParams$1;
312
+ }
313
+ //#endregion
314
+ //#region src/application/models/api/suggestion.d.ts
315
+ interface Suggestion$1 extends CamelCasedPropertiesDeep<Suggestion> {}
316
+ //#endregion
317
+ //#region src/application/models/api/supportedEventRequest.d.ts
318
+ interface SupportedEventRequest$1 {
319
+ id: string;
320
+ context: Context$1;
321
+ userEvent: UserEvent$1;
322
+ }
323
+ //#endregion
324
+ //#region src/application/models/graphql/queries/getMerchantOrgIdQuery.d.ts
325
+ declare const getMerchantOrgIdQuery = "\n query {\n me {\n org {\n id\n }\n }\n }\n";
326
+ //#endregion
327
+ //#region src/application/models/guards/isBaseEcommerceEvent.d.ts
328
+ /**
329
+ * Checks if an event is a base Google Analytics ecommerce event.
330
+ *
331
+ * @param data The event to check.
332
+ *
333
+ * @returns True if the event is a base ecommerce event, false otherwise.
334
+ */
335
+ declare const isBaseEcommerceEvent: (data: unknown) => data is BaseEcommerceEvent;
336
+ //#endregion
337
+ //#region src/application/models/guards/isGA4EcommerceEvent.d.ts
338
+ /**
339
+ * Checks if an event is a Google Analytics 4 ecommerce event.
340
+ *
341
+ * @param data The event to check.
342
+ *
343
+ * @returns True if the event is a GA4 ecommerce event, false otherwise.
344
+ */
345
+ declare const isGA4EcommerceEvent: (data: unknown) => data is GA4EcommerceEvent;
346
+ //#endregion
347
+ //#region src/application/models/guards/isLegacyUAEcommerceEvent.d.ts
348
+ /**
349
+ * Checks if an event is a legacy Universal Analytics ecommerce event.
350
+ *
351
+ * @param data The event to check.
352
+ *
353
+ * @returns True if the event is a legacy UA ecommerce event, false otherwise.
354
+ */
355
+ declare const isLegacyUAEcommerceEvent: (data: unknown) => data is UAEcommerceEvent;
356
+ //#endregion
357
+ //#region src/application/models/guards/isMobilePLPChatPlacementParameter.d.ts
358
+ interface MobilePlpChatPlacementParameter {
359
+ row_index: number;
360
+ }
361
+ declare const isMobilePLPChatPlacementParameter: (value: unknown) => value is MobilePlpChatPlacementParameter;
362
+ //#endregion
363
+ //#region src/application/models/guards/isSpanxTakeAQuizCtaParameter.d.ts
364
+ declare const isSpanxTakeAQuizCtaParameter: (value: unknown) => value is SpanxTakeAQuizCtaParameter;
365
+ //#endregion
366
+ //#region src/application/models/guards/isVariantInfo.d.ts
367
+ /**
368
+ * Type guard to check if an object is a valid VariantInfo.
369
+ *
370
+ * @param variantInfo - The unknown object to check.
371
+ *
372
+ * @returns True if the data is a valid VariantInfo object, false otherwise.
373
+ */
374
+ declare const isVariantInfo: (variantInfo: unknown) => variantInfo is VariantInfo;
375
+ //#endregion
376
+ //#region src/application/models/guards/utils.d.ts
377
+ /**
378
+ * Checks if an object has a property of a specific type
379
+ *
380
+ * @param obj - The object to check
381
+ * @param prop - The property name to check
382
+ * @param type - The expected type of the property
383
+ * @param isOptional - Whether the property is optional (defaults to false)
384
+ *
385
+ * @returns boolean indicating if the object has the property of the specified type
386
+ */
387
+ declare const hasPropertyOfType: <T extends object>(obj: unknown, prop: keyof T, type: "string" | "number" | "boolean" | "object" | "array", isOptional?: boolean) => obj is T;
388
+ //#endregion
389
+ //#region src/application/models/guards/api/isApiFormResponse.d.ts
390
+ /**
391
+ * Type guard to check if the provided data has the all of the properties (with the correct types) of
392
+ * a FormResponseAttribute
393
+ *
394
+ * @param data - The data to check
395
+ *
396
+ * @returns true if the data has the correct properties, false otherwise
397
+ */
398
+ declare const isApiFormResponseAttributes: (data: unknown) => data is ApiFormResponseAttributes;
399
+ //#endregion
400
+ //#region src/application/models/guards/api/isApiFormSubmittedResponseAttributes.d.ts
401
+ declare const isApiFormSubmittedResponseAttributes: (data: unknown) => data is FormSubmittedAttributes;
402
+ //#endregion
403
+ //#region src/application/models/guards/api/isApiOrderResponseAttributes.d.ts
404
+ interface ApiOrderItemInfo extends Omit<OrderItemInfo, 'delivered_at' | 'estimated_delivery_at' | 'in_transit_at'> {
405
+ delivered_at?: string;
406
+ estimated_delivery_at?: string;
407
+ in_transit_at?: string;
408
+ }
409
+ interface ApiOrderResponseAttributes extends Omit<OrderResponseAttributes, 'created_at' | 'latest_event_date' | 'line_items'> {
410
+ created_at: string;
411
+ latest_event_date: string;
412
+ line_items: ApiOrderItemInfo[];
413
+ }
414
+ declare const isApiOrderResponseAttributes: (data: unknown) => data is ApiOrderResponseAttributes;
415
+ //#endregion
416
+ //#region src/application/models/guards/api/isApiOrganizationConfig.d.ts
417
+ interface ApiOrgAnalyticsConfigAmplitude {
418
+ session_replay_enabled: boolean;
419
+ session_replay_sample_rate: number;
420
+ tracking_enabled: boolean;
421
+ }
422
+ interface ApiOrgAnalyticsConfigCustomerService {
423
+ provider: string;
424
+ }
425
+ interface ApiOrgAnalyticsConfigGoogleAnalytics {
426
+ measurement_id: string;
427
+ }
428
+ interface ApiOrgAnalyticsConfig {
429
+ amplitude?: ApiOrgAnalyticsConfigAmplitude;
430
+ customer_service?: ApiOrgAnalyticsConfigCustomerService;
431
+ google_analytics?: ApiOrgAnalyticsConfigGoogleAnalytics;
432
+ }
433
+ interface ApiOrganizationConfig extends OrganizationConfig {
434
+ config: ApiOrgAnalyticsConfig;
435
+ }
436
+ /**
437
+ *
438
+ * @param data
439
+ * @returns
440
+ */
441
+ declare const isApiOrganizationConfig: (data: unknown) => data is ApiOrganizationConfig;
442
+ //#endregion
443
+ //#region src/application/models/guards/api/isApiOrgConfigResults.d.ts
444
+ interface ApiOrgConfigResults {
445
+ configs: ApiOrganizationConfig[];
446
+ experiments: StatsigExperiment[];
447
+ gates: StatsigFeatureGate[];
448
+ org: OrganizationSettings;
449
+ }
450
+ /**
451
+ *
452
+ * @param data
453
+ * @returns
454
+ */
455
+ declare const isApiOrgConfigResults: (data: unknown) => data is Required<ApiOrgConfigResults>;
456
+ //#endregion
457
+ //#region src/application/models/guards/api/isApiPageResponseAttributes.d.ts
458
+ declare const isApiPageResponseAttributes: (obj: unknown) => obj is ApiPageResponseAttributes;
459
+ //#endregion
460
+ //#region src/application/models/guards/api/isApiPLPEventAttributes.d.ts
461
+ declare const isApiPLPIdAttribute: (data: unknown) => data is PLPIdAttributes;
462
+ declare const isApiPLPEventAttributes: (data: unknown) => data is PLPAttributes;
463
+ //#endregion
464
+ //#region src/application/models/guards/api/isApiProductSearchFilterAttributes.d.ts
465
+ declare const isApiProductSearchFilterResponseAttributes: (attributes: unknown) => attributes is ProductSearchFilterResponseAttributes;
466
+ //#endregion
467
+ //#region src/application/models/guards/graphQL/isGraphQLColorsConfig.d.ts
468
+ declare const isGraphQLColorsConfig: (data: unknown) => data is GetMerchantColorsQueryData;
469
+ //#endregion
470
+ //#region src/application/models/utilityTypes/delimiterCase.d.ts
471
+ type UpperCaseToLowerCase<T extends string> = T extends Uppercase<T> ? Lowercase<T> : T;
472
+ type SplitIncludingDelimiters_<Source extends string, Delimiter extends string> = Source extends '' ? [] : Source extends `${infer FirstPart}${Delimiter}${infer SecondPart}` ? Source extends `${FirstPart}${infer UsedDelimiter}${SecondPart}` ? UsedDelimiter extends Delimiter ? Source extends `${infer FirstPart}${UsedDelimiter}${infer SecondPart}` ? [...SplitIncludingDelimiters<FirstPart, Delimiter>, UsedDelimiter, ...SplitIncludingDelimiters<SecondPart, Delimiter>] : never : never : never : [Source];
473
+ /**
474
+ * Unlike a simpler split, this one includes the delimiter splitted on in the resulting array literal. This is to enable splitting on, for example, upper-case characters.
475
+ *
476
+ * @category Template literal
477
+ */
478
+ type SplitIncludingDelimiters<Source extends string, Delimiter extends string> = SplitIncludingDelimiters_<UpperCaseToLowerCase<Source>, Delimiter>;
479
+ /**
480
+ *Format a specific part of the splitted string literal that `StringArrayToDelimiterCase<>` fuses together, ensuring desired casing.
481
+ *
482
+ *@see StringArrayToDelimiterCase
483
+ */
484
+ type StringPartToDelimiterCase<StringPart extends string, Start extends boolean, UsedWordSeparators extends string, UsedUpperCaseCharacters extends string, Delimiter extends string> = StringPart extends UsedWordSeparators ? Delimiter : Start extends true ? Lowercase<StringPart> : StringPart extends UsedUpperCaseCharacters ? `${Delimiter}${Lowercase<StringPart>}` : StringPart;
485
+ /**
486
+ * Takes the result of a splitted string literal and recursively concatenates it together into the desired casing.
487
+ *
488
+ * It receives `UsedWordSeparators` and `UsedUpperCaseCharacters` as input to ensure it's fully encapsulated.
489
+ *
490
+ * @see SplitIncludingDelimiters
491
+ */
492
+ type StringArrayToDelimiterCase<Parts extends readonly any[], Start extends boolean, UsedWordSeparators extends string, UsedUpperCaseCharacters extends string, Delimiter extends string> = Parts extends [`${infer FirstPart}`, ...infer RemainingParts] ? `${StringPartToDelimiterCase<FirstPart, Start, UsedWordSeparators, UsedUpperCaseCharacters, Delimiter>}${StringArrayToDelimiterCase<RemainingParts, false, UsedWordSeparators, UsedUpperCaseCharacters, Delimiter>}` : Parts extends [string] ? string : '';
493
+ /**
494
+ * Convert a string literal to a custom string delimiter casing.
495
+ *
496
+ * This can be useful when, for example, converting a camel-cased object property to an oddly cased one.
497
+ *
498
+ * @see KebabCase
499
+ * @see SnakeCase
500
+ *
501
+ * @example
502
+ * ```
503
+ * import type {DelimiterCase} from 'type-fest';
504
+ *
505
+ * // Simple
506
+ *
507
+ * const someVariable: DelimiterCase<'fooBar', '#'> = 'foo#bar';
508
+ *
509
+ * // Advanced
510
+ *
511
+ * type OddlyCasedProperties<T> = {
512
+ * [K in keyof T as DelimiterCase<K, '#'>]: T[K]
513
+ * };
514
+ *
515
+ * interface SomeOptions {
516
+ * dryRun: boolean;
517
+ * includeFile: string;
518
+ * foo: number;
519
+ * }
520
+ *
521
+ * const rawCliOptions: OddlyCasedProperties<SomeOptions> = {
522
+ * 'dry#run': true,
523
+ * 'include#file': 'bar.js',
524
+ * foo: 123
525
+ * };
526
+ * ```
527
+ *
528
+ * @category Change case
529
+ * @category Template literal
530
+ */
531
+ type DelimiterCase<Value, Delimiter extends string> = string extends Value ? Value : Value extends string ? StringArrayToDelimiterCase<SplitIncludingDelimiters<Value, WordSeparators | UpperCaseCharacters>, true, WordSeparators, UpperCaseCharacters, Delimiter> : Value;
532
+ //#endregion
533
+ //#region src/application/models/utilityTypes/delimiterCasedPropertiesDeep.d.ts
534
+ /**
535
+ * Convert object properties to delimiter case recursively.
536
+ *
537
+ * This can be useful when, for example, converting some API types from a different style.
538
+ *
539
+ * @see DelimiterCase
540
+ * @see DelimiterCasedProperties
541
+ *
542
+ * @example
543
+ * ```
544
+ * import type {DelimiterCasedPropertiesDeep} from 'type-fest';
545
+ *
546
+ * interface User {
547
+ * userId: number;
548
+ * userName: string;
549
+ * }
550
+ *
551
+ * interface UserWithFriends {
552
+ * userInfo: User;
553
+ * userFriends: User[];
554
+ * }
555
+ *
556
+ * const result: DelimiterCasedPropertiesDeep<UserWithFriends, '-'> = {
557
+ * 'user-info': {
558
+ * 'user-id': 1,
559
+ * 'user-name': 'Tom',
560
+ * },
561
+ * 'user-friends': [
562
+ * {
563
+ * 'user-id': 2,
564
+ * 'user-name': 'Jerry',
565
+ * },
566
+ * {
567
+ * 'user-id': 3,
568
+ * 'user-name': 'Spike',
569
+ * },
570
+ * ],
571
+ * };
572
+ * ```
573
+ *
574
+ * @category Change case
575
+ * @category Template literal
576
+ * @category Object
577
+ */
578
+ type DelimiterCasedPropertiesDeep<Value, Delimiter extends string> = Value extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, Delimiter> : Value extends Set<infer U> ? Set<DelimiterCasedPropertiesDeep<U, Delimiter>> : { [K in keyof Value as DelimiterCase<K, Delimiter>]: DelimiterCasedPropertiesDeep<Value[K], Delimiter> };
579
+ type DelimiterCasedPropertiesArrayDeep<Value extends UnknownArray, Delimiter extends string> = Value extends [] ? [] : Value extends [infer U, ...infer V] ? [DelimiterCasedPropertiesDeep<U, Delimiter>, ...DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [infer U, ...infer V] ? readonly [DelimiterCasedPropertiesDeep<U, Delimiter>, ...DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [...infer U, infer V] ? [...DelimiterCasedPropertiesDeep<U, Delimiter>, DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [...infer U, infer V] ? readonly [...DelimiterCasedPropertiesDeep<U, Delimiter>, DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends Array<infer U> ? Array<DelimiterCasedPropertiesDeep<U, Delimiter>> : Value extends ReadonlyArray<infer U> ? ReadonlyArray<DelimiterCasedPropertiesDeep<U, Delimiter>> : never;
580
+ //#endregion
581
+ //#region src/application/models/utilityTypes/snakeCasedPropertiesDeep.d.ts
582
+ /**
583
+ * Convert object properties to snake case recursively.
584
+ *
585
+ * This can be useful when, for example, converting some API types from a different style.
586
+ *
587
+ * @see SnakeCase
588
+ * @see SnakeCasedProperties
589
+ *
590
+ * @example
591
+ * ```
592
+ * import type {SnakeCasedPropertiesDeep} from 'type-fest';
593
+ *
594
+ * interface User {
595
+ * userId: number;
596
+ * userName: string;
597
+ * }
598
+ *
599
+ * interface UserWithFriends {
600
+ * userInfo: User;
601
+ * userFriends: User[];
602
+ * }
603
+ *
604
+ * const result: SnakeCasedPropertiesDeep<UserWithFriends> = {
605
+ * user_info: {
606
+ * user_id: 1,
607
+ * user_name: 'Tom',
608
+ * },
609
+ * user_friends: [
610
+ * {
611
+ * user_id: 2,
612
+ * user_name: 'Jerry',
613
+ * },
614
+ * {
615
+ * user_id: 3,
616
+ * user_name: 'Spike',
617
+ * },
618
+ * ],
619
+ * };
620
+ * ```
621
+ *
622
+ * @category Change case
623
+ * @category Template literal
624
+ * @category Object
625
+ */
626
+ type SnakeCasedPropertiesDeep<Value> = DelimiterCasedPropertiesDeep<Value, '_'>;
627
+ //#endregion
628
+ //#region src/application/models/utils/snakeToCamelTransformer.d.ts
629
+ /**
630
+ * Generic utility to transform snake_case object keys to camelCase at runtime.
631
+ * This is the runtime equivalent of the CamelCasedPropertiesDeep type utility.
632
+ */
633
+ /**
634
+ * Recursively transforms all object keys from snake_case to camelCase
635
+ */
636
+ declare const transformSnakeToCamel: (obj: unknown) => unknown;
637
+ /**
638
+ * Recursively transforms all object keys from camelCase to snake_case
639
+ */
640
+ declare const transformCamelToSnake: (obj: unknown) => unknown;
641
+ //#endregion
642
+ //#region src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.d.ts
643
+ /**
644
+ * Converts a string to a FulfillmentDisplayStatus enum value.
645
+ *
646
+ * @param status - The string to convert.
647
+ *
648
+ * @returns The FulfillmentDisplayStatus enum value or undefined if the string
649
+ * does not map to a valid enum
650
+ */
651
+ declare const stringToFulfillmentDisplayStatusEnumValue: (status: string) => FulfillmentDisplayStatus | undefined;
652
+ //#endregion
653
+ //#region src/application/models/validators/validateGraphQLColorsConfig.d.ts
654
+ declare const validateGraphQLColorsConfig: (data: unknown) => ColorMapping | undefined;
655
+ //#endregion
656
+ //#region src/application/models/validators/validateGraphQLFrontendConfig.d.ts
657
+ declare const validateAndTransformPageVariants: (config: Record<string, unknown>) => PageVariantConfig;
658
+ declare const validateAndTransformMountingConfig: (config: Record<string, unknown>, configKey: string) => WidgetMountingConfig;
659
+ declare const validateAndTransformWidgetConfig: (config: Record<string, unknown>, configKey: string) => WidgetConfig;
660
+ declare const validateGraphQLFrontendConfig: (data: unknown) => FrontendConfig | undefined;
661
+ //#endregion
662
+ //#region src/application/models/validators/validateGraphQLOrgId.d.ts
663
+ declare const validateGraphQLOrgId: (data: unknown) => string | undefined;
664
+ //#endregion
665
+ //#region src/application/models/validators/validateMobilePLPChatPlacementParameter.d.ts
666
+ declare const validateMobilePLPChatPlacementParameter: (value: unknown) => MobilePLPChatPlacementParameter | undefined;
667
+ //#endregion
668
+ //#region src/application/models/validators/validateOrganizationConfig.d.ts
669
+ declare const validateOrganizationConfig: (data: unknown) => OrganizationConfig$1 | undefined;
670
+ //#endregion
671
+ //#region src/application/models/validators/validateOrgConfigResults.d.ts
672
+ /**
673
+ *
674
+ * @param data
675
+ * @returns
676
+ */
677
+ declare const validateOrgConfigResults: (data: unknown) => OrgConfig | undefined;
678
+ //#endregion
679
+ //#region src/application/models/validators/validateResponse.d.ts
680
+ declare const validateResponse: (data: unknown) => Response$1 | undefined;
681
+ //#endregion
682
+ //#region src/application/models/validators/validateSuggestion.d.ts
683
+ declare const validateSuggestion: (data: unknown) => Suggestion$1 | undefined;
684
+ //#endregion
685
+ //#region src/application/models/validators/validateUserEvent.d.ts
686
+ declare const validateUserEvent: (data: unknown) => UserEvent$1 | undefined;
687
+ //#endregion
688
+ export { ApiOrderItemInfo, ApiOrderResponseAttributes, ApiOrganizationConfig, AppLoadedUserEvent, AppUnloadedEvent, BaseEcommerceEvent, type CachedValue, type ClientDetails, Context$1 as Context, ConversationalSearchIds, DelimiterCase, DelimiterCasedPropertiesDeep, FormField, FormSubmitted, FormSubmittedAttributes$1 as FormSubmittedAttributes, GA4EcommerceEvent, GenerationParams$1 as GenerationParams, GoogleAnalyticsEvents, Message, MessageRole, MessageType, MobilePLPChatPlacementParameter, NextMessageRequest$1 as NextMessageRequest, OrgShortName, PDPAttributes$1 as PDPAttributes, PDPUserEvent, PLPAttributes$1 as PLPAttributes, PLPUserEvent, PageVisitAttributes, PageVisitEvent, ProductExperiment, ProductMessageMetadata, ProductSearchMessageMetadata, QueryTypedAttributes$1 as QueryTypedAttributes, QueryTypedUserEvent, SearchAttributes$1 as SearchAttributes, SearchUserEvent, SnakeCasedPropertiesDeep, SpanxTakeAQuizCtaParameter, SpiffyEventName, SplitIncludingDelimiters, Suggestion$1 as Suggestion, SuggestionClickedAttributes$1 as SuggestionClickedAttributes, SuggestionsClickedUserEvent, SupportedEventRequest$1 as SupportedEventRequest, UAEcommerceEvent, UserEvent$1 as UserEvent, UserEventAttributes, getMerchantOrgIdQuery, hasPropertyOfType, isApiFormResponseAttributes, isApiFormSubmittedResponseAttributes, isApiOrderResponseAttributes, isApiOrgConfigResults, isApiOrganizationConfig, isApiPLPEventAttributes, isApiPLPIdAttribute, isApiPageResponseAttributes, isApiProductSearchFilterResponseAttributes, isBaseEcommerceEvent, isGA4EcommerceEvent, isGraphQLColorsConfig, isLegacyUAEcommerceEvent, isMobilePLPChatPlacementParameter, isSpanxTakeAQuizCtaParameter, isVariantInfo, stringToFulfillmentDisplayStatusEnumValue, transformCamelToSnake, transformSnakeToCamel, validateAndTransformMountingConfig, validateAndTransformPageVariants, validateAndTransformWidgetConfig, validateGraphQLColorsConfig, validateGraphQLFrontendConfig, validateGraphQLOrgId, validateMobilePLPChatPlacementParameter, validateOrgConfigResults, validateOrganizationConfig, validateResponse, validateSuggestion, validateUserEvent };
689
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQkNMYXFuYzIuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jYWNoZWRWYWx1ZS5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jbGllbnREZXRhaWxzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbnZlcnNhdGlvbmFsU2VhcmNoSWRzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2RhdGFMYXllci5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ldmVudHMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ29vZ2xlQW5hbHl0aWNzRXZlbnRzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL21lc3NhZ2UuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlci5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9vcmdzRW51bS5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9wcm9kdWN0RXhwZXJpbWVudC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9zcGFueFRha2VBUXVpekN0YVBhcmFtZXRlci5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvY29udGV4dC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvZ2VuZXJhdGlvblBhcmFtcy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvdXNlckV2ZW50LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9uZXh0TWVzc2FnZVJlcXVlc3QuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3N1Z2dlc3Rpb24uZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3N1cHBvcnRlZEV2ZW50UmVxdWVzdC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9pc0Jhc2VFY29tbWVyY2VFdmVudC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvaXNHQTRFY29tbWVyY2VFdmVudC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvaXNMZWdhY3lVQUVjb21tZXJjZUV2ZW50LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9pc01vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXIuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2lzU3BhbnhUYWtlQVF1aXpDdGFQYXJhbWV0ZXIuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2lzVmFyaWFudEluZm8uZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlGb3JtUmVzcG9uc2UuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaUZvcm1TdWJtaXR0ZWRSZXNwb25zZUF0dHJpYnV0ZXMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaU9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlPcmdhbml6YXRpb25Db25maWcuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaU9yZ0NvbmZpZ1Jlc3VsdHMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVBhZ2VSZXNwb25zZUF0dHJpYnV0ZXMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVBMUEV2ZW50QXR0cmlidXRlcy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFNlYXJjaEZpbHRlckF0dHJpYnV0ZXMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2dyYXBoUUwvaXNHcmFwaFFMQ29sb3JzQ29uZmlnLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcy9kZWxpbWl0ZXJDYXNlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcy9kZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcy9zbmFrZUNhc2VkUHJvcGVydGllc0RlZXAuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbHMvc25ha2VUb0NhbWVsVHJhbnNmb3JtZXIuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbHMvc3RyaW5nVG9GdWxmaWxsbWVudERpc3BsYXlTdGF0dXNFbnVtVmFsdWUuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZUdyYXBoUUxDb2xvcnNDb25maWcuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZUdyYXBoUUxGcm9udGVuZENvbmZpZy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlR3JhcGhRTE9yZ0lkLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVPcmdhbml6YXRpb25Db25maWcuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZU9yZ0NvbmZpZ1Jlc3VsdHMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZVJlc3BvbnNlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVTdWdnZXN0aW9uLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVVc2VyRXZlbnQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ2FjaGVkVmFsdWUge1xuICAgIHZhbHVlOiB1bmtub3duO1xuICAgIGV4cGlyeTogbnVtYmVyO1xufVxuZXhwb3J0IHR5cGUgeyBDYWNoZWRWYWx1ZSB9O1xuIiwiaW50ZXJmYWNlIENsaWVudERldGFpbHMge1xuICAgIG9zPzogc3RyaW5nO1xuICAgIG9zVmVyc2lvbj86IHN0cmluZztcbiAgICBkZXZpY2VCcmFuZD86IHN0cmluZztcbiAgICBkZXZpY2VNYW51ZmFjdHVyZXI/OiBzdHJpbmc7XG4gICAgZGV2aWNlTW9kZWw/OiBzdHJpbmc7XG4gICAgY2Fycmllcj86IHN0cmluZztcbiAgICBjb3VudHJ5Pzogc3RyaW5nO1xuICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICBicm93c2VyPzogc3RyaW5nO1xuICAgIGJyb3dzZXJWZXJzaW9uPzogc3RyaW5nO1xuICAgIGJyb3dzZXJJcEFkZHJlc3M/OiBzdHJpbmc7XG4gICAgdXNlckFnZW50Pzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgeyBDbGllbnREZXRhaWxzLCB9O1xuIiwiZXhwb3J0IHR5cGUgQ29udmVyc2F0aW9uYWxTZWFyY2hJZHMgPSB7XG4gICAgY29udmVyc2F0aW9uYWxTZWFyY2hFbnRyeXBvaW50SWQ/OiBzdHJpbmc7XG4gICAgY29udmVyc2F0aW9uYWxTZWFyY2hJbnB1dElkPzogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbmFsU2VhcmNoTW9kYWxJZD86IHN0cmluZztcbn07XG4iLCIvKipcbiAqIEJhc2UgaW50ZXJmYWNlIGZvciBjb21tb24gcHJvcGVydGllcyBhY3Jvc3MgYWxsIGVjb21tZXJjZSBldmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRWNvbW1lcmNlRXZlbnQge1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgZWNvbW1lcmNlOiBVQUVjb21tZXJjZURhdGEgfCBHQTRFY29tbWVyY2VEYXRhO1xufVxuLyoqXG4gKiBMZWdhY3kgdW5pdmVyc2FsIGFuYWx5dGljcyBkYXRhLiBUaGUgYWN0dWFsIHBheWxvYWQgY29udGFpbnMgbW9yZSBmaWVsZHMsIGJ1dCB3ZVxuICogb25seSBuZWVkIHRoZSBvbmVzIGxpc3RlZCBiZWxvdy5cbiAqL1xuaW50ZXJmYWNlIFVBRWNvbW1lcmNlRGF0YSB7XG4gICAgYWRkOiB7XG4gICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgICAgICAgICAgcHJpY2U6IHN0cmluZztcbiAgICAgICAgICAgIHF1YW50aXR5OiBzdHJpbmc7XG4gICAgICAgIH1bXTtcbiAgICAgICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgfTtcbn1cbi8qKlxuICogR29vZ2xlIEFuYWx5dGljcyA0IGRhdGEuIFRoZSBhY3R1YWwgcGF5bG9hZCBjb250YWlucyBtb3JlIGZpZWxkcywgYnV0IHdlXG4gKiBvbmx5IG5lZWQgdGhlIG9uZXMgbGlzdGVkIGJlbG93LlxuICovXG5pbnRlcmZhY2UgR0E0RWNvbW1lcmNlRGF0YSB7XG4gICAgY3VycmVuY3k6IHN0cmluZztcbiAgICBpdGVtczoge1xuICAgICAgICBpdGVtX25hbWU6IHN0cmluZztcbiAgICAgICAgaXRlbV9jYXRlZ29yeTogc3RyaW5nO1xuICAgICAgICBwcmljZTogbnVtYmVyO1xuICAgICAgICBxdWFudGl0eTogbnVtYmVyO1xuICAgIH1bXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVUFFY29tbWVyY2VFdmVudCBleHRlbmRzIEJhc2VFY29tbWVyY2VFdmVudCB7XG4gICAgZWNvbW1lcmNlOiBVQUVjb21tZXJjZURhdGE7XG59XG5leHBvcnQgaW50ZXJmYWNlIEdBNEVjb21tZXJjZUV2ZW50IGV4dGVuZHMgQmFzZUVjb21tZXJjZUV2ZW50IHtcbiAgICBlY29tbWVyY2U6IEdBNEVjb21tZXJjZURhdGE7XG59XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVjbGFyZSBlbnVtIFNwaWZmeUV2ZW50TmFtZSB7XG4gICAgV2lkZ2V0T3BlbiA9IFwic3BpZmZ5OndpZGdldG9wZW5cIixcbiAgICBXaWRnZXRDbG9zZSA9IFwic3BpZmZ5OndpZGdldGNsb3NlXCJcbn1cbiIsImRlY2xhcmUgZW51bSBHb29nbGVBbmFseXRpY3NFdmVudHMge1xuICAgIEFERF9UT19DQVJUX3YxID0gXCJhZGRfdG9fY2FydFwiLFxuICAgIEFERF9UT19DQVJUX3YyID0gXCJhZGRUb0NhcnRcIlxufVxuZXhwb3J0IHsgR29vZ2xlQW5hbHl0aWNzRXZlbnRzIH07XG4iLCJpbXBvcnQgeyBDdXN0U2VydmljZUF0dGFjaG1lbnQsIEZvcm1UeXBlIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IE9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzLCBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLCBSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMsIFBhZ2VSZXNwb25zZUF0dHJpYnV0ZXMsIFRleHRSZXNwb25zZUF0dHJpYnV0ZXMsIFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcywgU2VhcmNoUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcywgQWNjZXB0YWJsZUZvcm1GaWVsZFR5cGUsIFNlYXJjaFByb2R1Y3RGaWx0ZXJBdHRyaWJ1dGVzIH0gZnJvbSAnLi9hcGkvcmVzcG9uc2UnO1xuZXhwb3J0IGRlY2xhcmUgZW51bSBNZXNzYWdlUm9sZSB7XG4gICAgVXNlciA9IFwidXNlclwiLFxuICAgIEFzc2lzdGFudCA9IFwiYXNzaXN0YW50XCJcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gTWVzc2FnZVR5cGUge1xuICAgIFRleHQgPSBcInRleHRcIixcbiAgICBTdWdnZXN0aW9uQ2xpY2tlZCA9IFwic3VnZ2VzdGlvbl9jbGlja2VkXCIsXG4gICAgUHJvZHVjdCA9IFwicHJvZHVjdFwiLFxuICAgIFByb2R1Y3RTZWFyY2ggPSBcInByb2R1Y3Rfc2VhcmNoXCIsXG4gICAgUmV2aWV3ID0gXCJyZXZpZXdcIixcbiAgICBRdWVyeVR5cGVkID0gXCJxdWVyeV90eXBlZFwiLFxuICAgIFNlcGFyYXRvciA9IFwic2VwYXJhdG9yXCIsXG4gICAgUGFnZSA9IFwicGFnZVwiLFxuICAgIFNlYXJjaCA9IFwic2VhcmNoXCIsXG4gICAgQXR0YWNobWVudCA9IFwiYXR0YWNobWVudFwiLFxuICAgIENYQWdlbnRSZXNwb25zZSA9IFwiY3hfYWdlbnRfcmVzcG9uc2VcIixcbiAgICBGb3JtID0gXCJmb3JtXCIsXG4gICAgT3JkZXIgPSBcIm9yZGVyXCIsXG4gICAgUHJvZHVjdFNlYXJjaEZpbHRlciA9IFwicHJvZHVjdF9zZWFyY2hfZmlsdGVyXCJcbn1cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICByb2xlOiBNZXNzYWdlUm9sZTtcbiAgICBjcmVhdGVkQXQ6IHN0cmluZztcbn0gJiAoVGV4dE1lc3NhZ2VNZXRhZGF0YSB8IFF1ZXJ5VHlwZWRNZXRhZGF0YSB8IFN1Z2dlc3Rpb25NZXNzYWdlTWV0YWRhdGEgfCBQcm9kdWN0TWVzc2FnZU1ldGFkYXRhIHwgUHJvZHVjdFNlYXJjaE1lc3NhZ2VNZXRhZGF0YSB8IFJldmlld01lc3NhZ2VNZXRhZGF0YSB8IFNlcGFyYXRvck1lc3NhZ2VNZXRhZGF0YSB8IFBhZ2VNZXNzYWdlTWV0YWRhdGEgfCBTZWFyY2hNZXNzYWdlTWV0YWRhdGEgfCBBdHRhY2htZW50TWV0YWRhdGEgfCBDWEFnZW50UmVzcG9uc2VNZXRhZGF0YSB8IEZvcm1NZXNzYWdlTWV0YWRhdGEgfCBPcmRlck1lc3NhZ2VNZXRhZGF0YSB8IFByb2R1Y3RTZWFyY2hGaWx0ZXJNZXRhZGF0YSk7XG50eXBlIEF0dGFjaG1lbnRNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5BdHRhY2htZW50O1xuICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgICAgIGF0dGFjaG1lbnQ6IEN1c3RTZXJ2aWNlQXR0YWNobWVudFtdO1xuICAgIH07XG59O1xudHlwZSBDWEFnZW50UmVzcG9uc2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5DWEFnZW50UmVzcG9uc2U7XG4gICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICB9O1xufTtcbnR5cGUgVGV4dE1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5UZXh0O1xuICAgIG1ldGFkYXRhOiBUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xudHlwZSBRdWVyeVR5cGVkTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZDtcbiAgICBtZXRhZGF0YTogVGV4dFJlc3BvbnNlQXR0cmlidXRlc1snYXR0cmlidXRlcyddO1xufTtcbnR5cGUgU3VnZ2VzdGlvbk1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5TdWdnZXN0aW9uQ2xpY2tlZDtcbiAgICBtZXRhZGF0YToge1xuICAgICAgICBzdWdnZXN0aW9uSWQ6IHN0cmluZztcbiAgICAgICAgc3VnZ2VzdGlvbkNvbnRlbnQ6IHN0cmluZztcbiAgICB9O1xufTtcbmV4cG9ydCB0eXBlIFByb2R1Y3RNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuUHJvZHVjdDtcbiAgICBtZXRhZGF0YTogUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1snYXR0cmlidXRlcyddO1xufTtcbmV4cG9ydCB0eXBlIFByb2R1Y3RTZWFyY2hNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuUHJvZHVjdFNlYXJjaDtcbiAgICBtZXRhZGF0YTogU2VhcmNoUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1snYXR0cmlidXRlcyddO1xufTtcbnR5cGUgUmV2aWV3TWVzc2FnZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlJldmlldztcbiAgICBtZXRhZGF0YTogUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xudHlwZSBTZXBhcmF0b3JNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuU2VwYXJhdG9yO1xufTtcbnR5cGUgUGFnZU1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5QYWdlO1xuICAgIG1ldGFkYXRhOiBQYWdlUmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xudHlwZSBTZWFyY2hNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuU2VhcmNoO1xuICAgIG1ldGFkYXRhOiBTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXTtcbn07XG50eXBlIFByb2R1Y3RTZWFyY2hGaWx0ZXJNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5Qcm9kdWN0U2VhcmNoRmlsdGVyO1xuICAgIG1ldGFkYXRhOiBTZWFyY2hQcm9kdWN0RmlsdGVyQXR0cmlidXRlc1snYXR0cmlidXRlcyddO1xufTtcbmV4cG9ydCB0eXBlIEZvcm1GaWVsZCA9IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHR5cGU6IEFjY2VwdGFibGVGb3JtRmllbGRUeXBlO1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIGZvcm1hdD86ICdlbWFpbCc7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG59O1xudHlwZSBGb3JtTWVzc2FnZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLkZvcm07XG4gICAgbWV0YWRhdGE6IHtcbiAgICAgICAgZm9ybVR5cGU/OiBGb3JtVHlwZTtcbiAgICAgICAgZmllbGRzOiBGb3JtRmllbGRbXTtcbiAgICB9O1xufTtcbnR5cGUgT3JkZXJNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuT3JkZXI7XG4gICAgbWV0YWRhdGE6IE9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IGludGVyZmFjZSBNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xufVxuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgT3JnU2hvcnROYW1lOiB7XG4gICAgcmVhZG9ubHkgQ290ZXJpZTogXCJjb3RlcmllXCI7XG4gICAgcmVhZG9ubHkgRm9yTG92ZUFuZExlbW9uczogXCJmb3ItbG92ZS1hbmQtbGVtb25zXCI7XG4gICAgcmVhZG9ubHkgR3JlZW5wYW46IFwiZ3JlZW5wYW5cIjtcbiAgICByZWFkb25seSBKb3JkYW5DcmFpZzogXCJqb3JkYW4tY3JhaWdcIjtcbiAgICByZWFkb25seSBMYXJyeUFuZFNlcmdlczogXCJsYXJyeV9hbmRfc2VyZ2VzXCI7XG4gICAgcmVhZG9ubHkgTGVhcHNBbmRSZWJvdW5kczogXCJsZWFwcy1hbmQtcmVib3VuZHNcIjtcbiAgICByZWFkb25seSBNYW50cmFCcmFuZDogXCJtYW50cmEtYnJhbmRcIjtcbiAgICByZWFkb25seSBTcGFueDogXCJzcGFueFwiO1xuICAgIHJlYWRvbmx5IFNwYW54U3RhZ2luZzogXCJzdGFnaW5nLXNwYW54XCI7XG4gICAgcmVhZG9ubHkgU3VwZXJnb29wOiBcInN1cGVyZ29vcFwiO1xuICAgIHJlYWRvbmx5IFVuaXF1ZVZpbnRhZ2U6IFwidW5pcXVlLXZpbnRhZ2VcIjtcbiAgICByZWFkb25seSBKYWNrQXJjaGVyOiBcImphY2stYXJjaGVyXCI7XG4gICAgcmVhZG9ubHkgU2tpblBlcmZlY3Rpb246IFwic2tpbi1wZXJmZWN0aW9uXCI7XG4gICAgcmVhZG9ubHkgTG9va09wdGljOiBcImxvb2stb3B0aWNcIjtcbiAgICByZWFkb25seSBGaXZlQ2JkOiBcImZpdmUtY2JkXCI7XG4gICAgcmVhZG9ubHkgU25hcFN1cHBsZW1lbnRzOiBcInNuYXAtc3VwcGxlbWVudHNcIjtcbiAgICByZWFkb25seSBMb25nZXZpdHlyeDogXCJsb25nZXZpdHlyeFwiO1xuICAgIHJlYWRvbmx5IFZlbmFDYmQ6IFwidmVuYS1jYmRcIjtcbiAgICByZWFkb25seSBNZWR0ZXJyYTogXCJtZWR0ZXJyYVwiO1xuICAgIHJlYWRvbmx5IE1vZGVsbHM6IFwibW9kZWxsc1wiO1xuICAgIHJlYWRvbmx5IFByZXNzZWRGbG9yYWw6IFwicHJlc3NlZC1mbG9yYWxcIjtcbiAgICByZWFkb25seSBLaW5kcmVkQnJhdmVseTogXCJraW5kcmVkLWJyYXZlbHlcIjtcbiAgICByZWFkb25seSBXaW5lRW50aHVzaWFzdDogXCJ3aW5lLWVudGh1c2lhc3RcIjtcbiAgICByZWFkb25seSBIb21lZ3Jvd25DYW5uYWJpczogXCJob21lZ3Jvd24tY2FubmFiaXNcIjtcbiAgICByZWFkb25seSBEcmVhbWxhbmRCYWJ5OiBcImRyZWFtbGFuZC1iYWJ5XCI7XG4gICAgcmVhZG9ubHkgQmFuZG9saWVyOiBcImJhbmRvbGllclwiO1xuICAgIHJlYWRvbmx5IFdlc3RvbkpvbkJvdWNoZXI6IFwid2VzdG9uLWpvbi1ib3VjaGVyXCI7XG4gICAgcmVhZG9ubHkgS3V0RnJvbVRoZUtsb3RoOiBcImt1dC1mcm9tLXRoZS1rbG90aFwiO1xuICAgIHJlYWRvbmx5IEdyb292ZUxpZmU6IFwiZ3Jvb3ZlLWxpZmVcIjtcbiAgICByZWFkb25seSBDYXJwZTogXCJjYXJwZVwiO1xuICAgIHJlYWRvbmx5IFdvbGZUYWN0aWNhbDogXCJ3b2xmLXRhY3RpY2FsXCI7XG4gICAgcmVhZG9ubHkgV29sZk1hdHRyZXNzOiBcIndvbGZtYXR0cmVzc1wiO1xuICAgIHJlYWRvbmx5IERlZmF1bHQ6IFwiZGVmYXVsdFwiO1xufTtcbiIsImV4cG9ydCBkZWNsYXJlIGVudW0gUHJvZHVjdEV4cGVyaW1lbnQge1xuICAgIERlZmF1bHQgPSBcImRlZmF1bHRcIlxufVxuIiwiZXhwb3J0IGludGVyZmFjZSBTcGFueFRha2VBUXVpekN0YVBhcmFtZXRlciB7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbn1cbiIsImltcG9ydCB7IENvbnRleHQgYXMgQXBpQ29udGV4dCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHQgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpQ29udGV4dD4ge1xufVxuIiwiaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyBhcyBBcGlHZW5lcmF0aW9uUGFyYW1zIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbGl0eVR5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGlvblBhcmFtcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlHZW5lcmF0aW9uUGFyYW1zPiB7XG59XG4iLCJpbXBvcnQgeyBQRFBBdHRyaWJ1dGVzIGFzIEFwaVBEUEF0dHJpYnV0ZXMsIFBMUEF0dHJpYnV0ZXMgYXMgQXBpUExQQXR0cmlidXRlcywgUXVlcnlUeXBlZEF0dHJpYnV0ZXMgYXMgQXBpUXVlcnlUeXBlZEF0dHJpYnV0ZXMsIFNlYXJjaEF0dHJpYnV0ZXMgYXMgQXBpU2VhcmNoQXR0cmlidXRlcywgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzIGFzIEFwaVN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcywgVXNlckV2ZW50IGFzIEFwaVVzZXJFdmVudCwgRm9ybVR5cGUsIFBhZ2VWaXNpdENhdGVnb3J5LCBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFBEUEF0dHJpYnV0ZXMgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpUERQQXR0cmlidXRlcz4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBQTFBBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVBMUEF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlTZWFyY2hBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzIHtcbiAgICBmaWxsZWRTY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGZvcm1SZXNwb25zZUlkOiBzdHJpbmc7XG4gICAgZm9ybVR5cGU6IEZvcm1UeXBlO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdlVmlzaXRBdHRyaWJ1dGVzIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCB0eXBlIFVzZXJFdmVudEF0dHJpYnV0ZXMgPSBQRFBBdHRyaWJ1dGVzIHwgUExQQXR0cmlidXRlcyB8IFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIHwgU2VhcmNoQXR0cmlidXRlcyB8IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyB8IFBhZ2VWaXNpdEF0dHJpYnV0ZXM7XG5leHBvcnQgaW50ZXJmYWNlIFBEUFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0IHwgVXNlckV2ZW50Q2F0ZWdvcnkuQWRkVG9DYXJ0O1xuICAgIGF0dHJpYnV0ZXM6IFBEUEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBMUFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0O1xuICAgIGF0dHJpYnV0ZXM6IFBMUEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VHlwZWRVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkO1xuICAgIGF0dHJpYnV0ZXM6IFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TZWFyY2g7XG4gICAgYXR0cmlidXRlczogU2VhcmNoQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbnNDbGlja2VkVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQ7XG4gICAgYXR0cmlidXRlczogU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBBcHBMb2FkZWRVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5BcHBMb2FkZWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFwcFVubG9hZGVkRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5BcHBVbmxvYWRlZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVZpc2l0RXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQ7XG4gICAgYXR0cmlidXRlczogUGFnZVZpc2l0QXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVN1Ym1pdHRlZCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQ7XG4gICAgYXR0cmlidXRlczogRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgdHlwZSBVc2VyRXZlbnQgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8UGljazxBcGlVc2VyRXZlbnQsICdldmVudF9pZCcgfCAnY2F0ZWdvcnknIHwgJ2NyZWF0ZWRfYXQnPj4gJiAoU3VnZ2VzdGlvbnNDbGlja2VkVXNlckV2ZW50IHwgQXBwTG9hZGVkVXNlckV2ZW50IHwgUERQVXNlckV2ZW50IHwgUXVlcnlUeXBlZFVzZXJFdmVudCB8IFNlYXJjaFVzZXJFdmVudCB8IEFwcFVubG9hZGVkRXZlbnQgfCBQTFBVc2VyRXZlbnQgfCBQYWdlVmlzaXRFdmVudCB8IEZvcm1TdWJtaXR0ZWQpO1xuIiwiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICcuL3VzZXJFdmVudCc7XG5pbXBvcnQgeyBHZW5lcmF0aW9uUGFyYW1zIH0gZnJvbSAnLi9nZW5lcmF0aW9uUGFyYW1zJztcbmV4cG9ydCBpbnRlcmZhY2UgTmV4dE1lc3NhZ2VSZXF1ZXN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvbnRleHQ6IENvbnRleHQ7XG4gICAgdXNlckV2ZW50cz86IFVzZXJFdmVudFtdO1xuICAgIGZlYXR1cmVGbGFncz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xufVxuIiwiaW1wb3J0IHsgU3VnZ2VzdGlvbiBhcyBBcGlTdWdnZXN0aW9uIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbGl0eVR5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbiBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlTdWdnZXN0aW9uPiB7XG59XG4iLCJpbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICcuL3VzZXJFdmVudCc7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydGVkRXZlbnRSZXF1ZXN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvbnRleHQ6IENvbnRleHQ7XG4gICAgdXNlckV2ZW50OiBVc2VyRXZlbnQ7XG59XG4iLCJkZWNsYXJlIGNvbnN0IGdldE1lcmNoYW50T3JnSWRRdWVyeSA9IFwiXFxuICBxdWVyeSB7XFxuICAgIG1lIHtcXG4gICAgICBvcmcge1xcbiAgICAgICAgaWRcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIjtcbmV4cG9ydCB7IGdldE1lcmNoYW50T3JnSWRRdWVyeSB9O1xuIiwiaW1wb3J0IHR5cGUgeyBCYXNlRWNvbW1lcmNlRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogQ2hlY2tzIGlmIGFuIGV2ZW50IGlzIGEgYmFzZSBHb29nbGUgQW5hbHl0aWNzIGVjb21tZXJjZSBldmVudC5cbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgdG8gY2hlY2suXG4gKlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBiYXNlIGVjb21tZXJjZSBldmVudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0Jhc2VFY29tbWVyY2VFdmVudDogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgQmFzZUVjb21tZXJjZUV2ZW50O1xuIiwiaW1wb3J0IHR5cGUgeyBHQTRFY29tbWVyY2VFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuLyoqXG4gKiBDaGVja3MgaWYgYW4gZXZlbnQgaXMgYSBHb29nbGUgQW5hbHl0aWNzIDQgZWNvbW1lcmNlIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBldmVudCB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBldmVudCBpcyBhIEdBNCBlY29tbWVyY2UgZXZlbnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNHQTRFY29tbWVyY2VFdmVudDogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgR0E0RWNvbW1lcmNlRXZlbnQ7XG4iLCJpbXBvcnQgdHlwZSB7IFVBRWNvbW1lcmNlRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogQ2hlY2tzIGlmIGFuIGV2ZW50IGlzIGEgbGVnYWN5IFVuaXZlcnNhbCBBbmFseXRpY3MgZWNvbW1lcmNlIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBldmVudCB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBldmVudCBpcyBhIGxlZ2FjeSBVQSBlY29tbWVyY2UgZXZlbnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNMZWdhY3lVQUVjb21tZXJjZUV2ZW50OiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBVQUVjb21tZXJjZUV2ZW50O1xuIiwiaW50ZXJmYWNlIE1vYmlsZVBscENoYXRQbGFjZW1lbnRQYXJhbWV0ZXIge1xuICAgIHJvd19pbmRleDogbnVtYmVyO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyOiAodmFsdWU6IHVua25vd24pID0+IHZhbHVlIGlzIE1vYmlsZVBscENoYXRQbGFjZW1lbnRQYXJhbWV0ZXI7XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBTcGFueFRha2VBUXVpekN0YVBhcmFtZXRlciB9IGZyb20gJy4uL3NwYW54VGFrZUFRdWl6Q3RhUGFyYW1ldGVyJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzU3BhbnhUYWtlQVF1aXpDdGFQYXJhbWV0ZXI6ICh2YWx1ZTogdW5rbm93bikgPT4gdmFsdWUgaXMgU3BhbnhUYWtlQVF1aXpDdGFQYXJhbWV0ZXI7XG4iLCJpbXBvcnQgeyBWYXJpYW50SW5mbyB9IGZyb20gJy4uL3ZhcmlhbnRJbmZvJztcbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhbiBvYmplY3QgaXMgYSB2YWxpZCBWYXJpYW50SW5mby5cbiAqXG4gKiBAcGFyYW0gdmFyaWFudEluZm8gLSBUaGUgdW5rbm93biBvYmplY3QgdG8gY2hlY2suXG4gKlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZGF0YSBpcyBhIHZhbGlkIFZhcmlhbnRJbmZvIG9iamVjdCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc1ZhcmlhbnRJbmZvOiAodmFyaWFudEluZm86IHVua25vd24pID0+IHZhcmlhbnRJbmZvIGlzIFZhcmlhbnRJbmZvO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYW4gb2JqZWN0IGhhcyBhIHByb3BlcnR5IG9mIGEgc3BlY2lmaWMgdHlwZVxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcGFyYW0gcHJvcCAtIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIGNoZWNrXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwcm9wZXJ0eVxuICogQHBhcmFtIGlzT3B0aW9uYWwgLSBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBvcHRpb25hbCAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKlxuICogQHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBvYmplY3QgaGFzIHRoZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaGFzUHJvcGVydHlPZlR5cGU6IDxUIGV4dGVuZHMgb2JqZWN0PihvYmo6IHVua25vd24sIHByb3A6IGtleW9mIFQsIHR5cGU6IFwic3RyaW5nXCIgfCBcIm51bWJlclwiIHwgXCJib29sZWFuXCIgfCBcIm9iamVjdFwiIHwgXCJhcnJheVwiLCBpc09wdGlvbmFsPzogYm9vbGVhbikgPT4gb2JqIGlzIFQ7XG4iLCJpbXBvcnQgeyBBcGlGb3JtUmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIHByb3ZpZGVkIGRhdGEgaGFzIHRoZSBhbGwgb2YgdGhlIHByb3BlcnRpZXMgKHdpdGggdGhlIGNvcnJlY3QgdHlwZXMpIG9mXG4gKiBhIEZvcm1SZXNwb25zZUF0dHJpYnV0ZVxuICpcbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBkYXRhIGhhcyB0aGUgY29ycmVjdCBwcm9wZXJ0aWVzLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlGb3JtUmVzcG9uc2VBdHRyaWJ1dGVzOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBBcGlGb3JtUmVzcG9uc2VBdHRyaWJ1dGVzO1xuIiwiaW1wb3J0IHsgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlGb3JtU3VibWl0dGVkUmVzcG9uc2VBdHRyaWJ1dGVzOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBGb3JtU3VibWl0dGVkQXR0cmlidXRlcztcbiIsImltcG9ydCB7IE9yZGVySXRlbUluZm8sIE9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmV4cG9ydCBpbnRlcmZhY2UgQXBpT3JkZXJJdGVtSW5mbyBleHRlbmRzIE9taXQ8T3JkZXJJdGVtSW5mbywgJ2RlbGl2ZXJlZF9hdCcgfCAnZXN0aW1hdGVkX2RlbGl2ZXJ5X2F0JyB8ICdpbl90cmFuc2l0X2F0Jz4ge1xuICAgIGRlbGl2ZXJlZF9hdD86IHN0cmluZztcbiAgICBlc3RpbWF0ZWRfZGVsaXZlcnlfYXQ/OiBzdHJpbmc7XG4gICAgaW5fdHJhbnNpdF9hdD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT3JkZXJSZXNwb25zZUF0dHJpYnV0ZXMgZXh0ZW5kcyBPbWl0PE9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzLCAnY3JlYXRlZF9hdCcgfCAnbGF0ZXN0X2V2ZW50X2RhdGUnIHwgJ2xpbmVfaXRlbXMnPiB7XG4gICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgIGxhdGVzdF9ldmVudF9kYXRlOiBzdHJpbmc7XG4gICAgbGluZV9pdGVtczogQXBpT3JkZXJJdGVtSW5mb1tdO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlPcmRlclJlc3BvbnNlQXR0cmlidXRlczogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgQXBpT3JkZXJSZXNwb25zZUF0dHJpYnV0ZXM7XG4iLCJpbXBvcnQgeyBPcmdhbml6YXRpb25Db25maWcgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZSB7XG4gICAgc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZDogYm9vbGVhbjtcbiAgICBzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZTogbnVtYmVyO1xuICAgIHRyYWNraW5nX2VuYWJsZWQ6IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlIHtcbiAgICBwcm92aWRlcjogc3RyaW5nO1xufVxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcyB7XG4gICAgbWVhc3VyZW1lbnRfaWQ6IHN0cmluZztcbn1cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWcge1xuICAgIGFtcGxpdHVkZT86IEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZTtcbiAgICBjdXN0b21lcl9zZXJ2aWNlPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlO1xuICAgIGdvb2dsZV9hbmFseXRpY3M/OiBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFwaU9yZ2FuaXphdGlvbkNvbmZpZyBleHRlbmRzIE9yZ2FuaXphdGlvbkNvbmZpZyB7XG4gICAgY29uZmlnOiBBcGlPcmdBbmFseXRpY3NDb25maWc7XG59XG4vKipcbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlPcmdhbml6YXRpb25Db25maWc6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIEFwaU9yZ2FuaXphdGlvbkNvbmZpZztcbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IFN0YXRzaWdFeHBlcmltZW50IGFzIEFwaU9yZ0NvbmZpZ0V4cGVyaW1lbnQsIFN0YXRzaWdGZWF0dXJlR2F0ZSBhcyBBcGlPcmdDb25maWdGZWF0dXJlR2F0ZSwgT3JnYW5pemF0aW9uU2V0dGluZ3MgYXMgQXBpT3JnQ29uZmlnT3JnYW5pemF0aW9uU2V0dGluZ3MgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQXBpT3JnYW5pemF0aW9uQ29uZmlnIH0gZnJvbSAnLi9pc0FwaU9yZ2FuaXphdGlvbkNvbmZpZyc7XG5pbnRlcmZhY2UgQXBpT3JnQ29uZmlnUmVzdWx0cyB7XG4gICAgY29uZmlnczogQXBpT3JnYW5pemF0aW9uQ29uZmlnW107XG4gICAgZXhwZXJpbWVudHM6IEFwaU9yZ0NvbmZpZ0V4cGVyaW1lbnRbXTtcbiAgICBnYXRlczogQXBpT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgICBvcmc6IEFwaU9yZ0NvbmZpZ09yZ2FuaXphdGlvblNldHRpbmdzO1xufVxuLyoqXG4gKlxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpT3JnQ29uZmlnUmVzdWx0czogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgUmVxdWlyZWQ8QXBpT3JnQ29uZmlnUmVzdWx0cz47XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBBcGlQYWdlUmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0FwaVBhZ2VSZXNwb25zZUF0dHJpYnV0ZXM6IChvYmo6IHVua25vd24pID0+IG9iaiBpcyBBcGlQYWdlUmVzcG9uc2VBdHRyaWJ1dGVzO1xuIiwiaW1wb3J0IHsgUExQQXR0cmlidXRlcywgUExQSWRBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpUExQSWRBdHRyaWJ1dGU6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIFBMUElkQXR0cmlidXRlcztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpUExQRXZlbnRBdHRyaWJ1dGVzOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBQTFBBdHRyaWJ1dGVzO1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaEZpbHRlclJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0FwaVByb2R1Y3RTZWFyY2hGaWx0ZXJSZXNwb25zZUF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzOiB1bmtub3duKSA9PiBhdHRyaWJ1dGVzIGlzIFByb2R1Y3RTZWFyY2hGaWx0ZXJSZXNwb25zZUF0dHJpYnV0ZXM7XG4iLCJpbXBvcnQgeyBHZXRNZXJjaGFudENvbG9yc1F1ZXJ5RGF0YSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0dyYXBoUUxDb2xvcnNDb25maWc6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIEdldE1lcmNoYW50Q29sb3JzUXVlcnlEYXRhO1xuIiwiaW1wb3J0IHR5cGUgeyBVcHBlckNhc2VDaGFyYWN0ZXJzLCBXb3JkU2VwYXJhdG9ycyB9IGZyb20gJy4vaW50ZXJuYWwnO1xudHlwZSBVcHBlckNhc2VUb0xvd2VyQ2FzZTxUIGV4dGVuZHMgc3RyaW5nPiA9IFQgZXh0ZW5kcyBVcHBlcmNhc2U8VD4gPyBMb3dlcmNhc2U8VD4gOiBUO1xudHlwZSBTcGxpdEluY2x1ZGluZ0RlbGltaXRlcnNfPFNvdXJjZSBleHRlbmRzIHN0cmluZywgRGVsaW1pdGVyIGV4dGVuZHMgc3RyaW5nPiA9IFNvdXJjZSBleHRlbmRzICcnID8gW10gOiBTb3VyY2UgZXh0ZW5kcyBgJHtpbmZlciBGaXJzdFBhcnR9JHtEZWxpbWl0ZXJ9JHtpbmZlciBTZWNvbmRQYXJ0fWAgPyBTb3VyY2UgZXh0ZW5kcyBgJHtGaXJzdFBhcnR9JHtpbmZlciBVc2VkRGVsaW1pdGVyfSR7U2Vjb25kUGFydH1gID8gVXNlZERlbGltaXRlciBleHRlbmRzIERlbGltaXRlciA/IFNvdXJjZSBleHRlbmRzIGAke2luZmVyIEZpcnN0UGFydH0ke1VzZWREZWxpbWl0ZXJ9JHtpbmZlciBTZWNvbmRQYXJ0fWAgPyBbXG4gICAgLi4uU3BsaXRJbmNsdWRpbmdEZWxpbWl0ZXJzPEZpcnN0UGFydCwgRGVsaW1pdGVyPixcbiAgICBVc2VkRGVsaW1pdGVyLFxuICAgIC4uLlNwbGl0SW5jbHVkaW5nRGVsaW1pdGVyczxTZWNvbmRQYXJ0LCBEZWxpbWl0ZXI+XG5dIDogbmV2ZXIgOiBuZXZlciA6IG5ldmVyIDogW1NvdXJjZV07XG4vKipcbiAqIFVubGlrZSBhIHNpbXBsZXIgc3BsaXQsIHRoaXMgb25lIGluY2x1ZGVzIHRoZSBkZWxpbWl0ZXIgc3BsaXR0ZWQgb24gaW4gdGhlIHJlc3VsdGluZyBhcnJheSBsaXRlcmFsLiBUaGlzIGlzIHRvIGVuYWJsZSBzcGxpdHRpbmcgb24sIGZvciBleGFtcGxlLCB1cHBlci1jYXNlIGNoYXJhY3RlcnMuXG4gKlxuICogQGNhdGVnb3J5IFRlbXBsYXRlIGxpdGVyYWxcbiAqL1xuZXhwb3J0IHR5cGUgU3BsaXRJbmNsdWRpbmdEZWxpbWl0ZXJzPFNvdXJjZSBleHRlbmRzIHN0cmluZywgRGVsaW1pdGVyIGV4dGVuZHMgc3RyaW5nPiA9IFNwbGl0SW5jbHVkaW5nRGVsaW1pdGVyc188VXBwZXJDYXNlVG9Mb3dlckNhc2U8U291cmNlPiwgRGVsaW1pdGVyPjtcbi8qKlxuICpGb3JtYXQgYSBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBzcGxpdHRlZCBzdHJpbmcgbGl0ZXJhbCB0aGF0IGBTdHJpbmdBcnJheVRvRGVsaW1pdGVyQ2FzZTw+YCBmdXNlcyB0b2dldGhlciwgZW5zdXJpbmcgZGVzaXJlZCBjYXNpbmcuXG4gKlxuICpAc2VlIFN0cmluZ0FycmF5VG9EZWxpbWl0ZXJDYXNlXG4gKi9cbnR5cGUgU3RyaW5nUGFydFRvRGVsaW1pdGVyQ2FzZTxTdHJpbmdQYXJ0IGV4dGVuZHMgc3RyaW5nLCBTdGFydCBleHRlbmRzIGJvb2xlYW4sIFVzZWRXb3JkU2VwYXJhdG9ycyBleHRlbmRzIHN0cmluZywgVXNlZFVwcGVyQ2FzZUNoYXJhY3RlcnMgZXh0ZW5kcyBzdHJpbmcsIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBTdHJpbmdQYXJ0IGV4dGVuZHMgVXNlZFdvcmRTZXBhcmF0b3JzID8gRGVsaW1pdGVyIDogU3RhcnQgZXh0ZW5kcyB0cnVlID8gTG93ZXJjYXNlPFN0cmluZ1BhcnQ+IDogU3RyaW5nUGFydCBleHRlbmRzIFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzID8gYCR7RGVsaW1pdGVyfSR7TG93ZXJjYXNlPFN0cmluZ1BhcnQ+fWAgOiBTdHJpbmdQYXJ0O1xuLyoqXG4gKiBUYWtlcyB0aGUgcmVzdWx0IG9mIGEgc3BsaXR0ZWQgc3RyaW5nIGxpdGVyYWwgYW5kIHJlY3Vyc2l2ZWx5IGNvbmNhdGVuYXRlcyBpdCB0b2dldGhlciBpbnRvIHRoZSBkZXNpcmVkIGNhc2luZy5cbiAqXG4gKiBJdCByZWNlaXZlcyBgVXNlZFdvcmRTZXBhcmF0b3JzYCBhbmQgYFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzYCBhcyBpbnB1dCB0byBlbnN1cmUgaXQncyBmdWxseSBlbmNhcHN1bGF0ZWQuXG4gKlxuICogQHNlZSBTcGxpdEluY2x1ZGluZ0RlbGltaXRlcnNcbiAqL1xudHlwZSBTdHJpbmdBcnJheVRvRGVsaW1pdGVyQ2FzZTxQYXJ0cyBleHRlbmRzIHJlYWRvbmx5IGFueVtdLCBTdGFydCBleHRlbmRzIGJvb2xlYW4sIFVzZWRXb3JkU2VwYXJhdG9ycyBleHRlbmRzIHN0cmluZywgVXNlZFVwcGVyQ2FzZUNoYXJhY3RlcnMgZXh0ZW5kcyBzdHJpbmcsIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBQYXJ0cyBleHRlbmRzIFtgJHtpbmZlciBGaXJzdFBhcnR9YCwgLi4uaW5mZXIgUmVtYWluaW5nUGFydHNdID8gYCR7U3RyaW5nUGFydFRvRGVsaW1pdGVyQ2FzZTxGaXJzdFBhcnQsIFN0YXJ0LCBVc2VkV29yZFNlcGFyYXRvcnMsIFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzLCBEZWxpbWl0ZXI+fSR7U3RyaW5nQXJyYXlUb0RlbGltaXRlckNhc2U8UmVtYWluaW5nUGFydHMsIGZhbHNlLCBVc2VkV29yZFNlcGFyYXRvcnMsIFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzLCBEZWxpbWl0ZXI+fWAgOiBQYXJ0cyBleHRlbmRzIFtzdHJpbmddID8gc3RyaW5nIDogJyc7XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgbGl0ZXJhbCB0byBhIGN1c3RvbSBzdHJpbmcgZGVsaW1pdGVyIGNhc2luZy5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiwgZm9yIGV4YW1wbGUsIGNvbnZlcnRpbmcgYSBjYW1lbC1jYXNlZCBvYmplY3QgcHJvcGVydHkgdG8gYW4gb2RkbHkgY2FzZWQgb25lLlxuICpcbiAqIEBzZWUgS2ViYWJDYXNlXG4gKiBAc2VlIFNuYWtlQ2FzZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIGltcG9ydCB0eXBlIHtEZWxpbWl0ZXJDYXNlfSBmcm9tICd0eXBlLWZlc3QnO1xuICpcbiAqIC8vIFNpbXBsZVxuICpcbiAqIGNvbnN0IHNvbWVWYXJpYWJsZTogRGVsaW1pdGVyQ2FzZTwnZm9vQmFyJywgJyMnPiA9ICdmb28jYmFyJztcbiAqXG4gKiAvLyBBZHZhbmNlZFxuICpcbiAqIHR5cGUgT2RkbHlDYXNlZFByb3BlcnRpZXM8VD4gPSB7XG4gKiBcdFtLIGluIGtleW9mIFQgYXMgRGVsaW1pdGVyQ2FzZTxLLCAnIyc+XTogVFtLXVxuICogfTtcbiAqXG4gKiBpbnRlcmZhY2UgU29tZU9wdGlvbnMge1xuICogXHRkcnlSdW46IGJvb2xlYW47XG4gKiBcdGluY2x1ZGVGaWxlOiBzdHJpbmc7XG4gKiBcdGZvbzogbnVtYmVyO1xuICogfVxuICpcbiAqIGNvbnN0IHJhd0NsaU9wdGlvbnM6IE9kZGx5Q2FzZWRQcm9wZXJ0aWVzPFNvbWVPcHRpb25zPiA9IHtcbiAqIFx0J2RyeSNydW4nOiB0cnVlLFxuICogXHQnaW5jbHVkZSNmaWxlJzogJ2Jhci5qcycsXG4gKiBcdGZvbzogMTIzXG4gKiB9O1xuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IENoYW5nZSBjYXNlXG4gKiBAY2F0ZWdvcnkgVGVtcGxhdGUgbGl0ZXJhbFxuICovXG5leHBvcnQgdHlwZSBEZWxpbWl0ZXJDYXNlPFZhbHVlLCBEZWxpbWl0ZXIgZXh0ZW5kcyBzdHJpbmc+ID0gc3RyaW5nIGV4dGVuZHMgVmFsdWUgPyBWYWx1ZSA6IFZhbHVlIGV4dGVuZHMgc3RyaW5nID8gU3RyaW5nQXJyYXlUb0RlbGltaXRlckNhc2U8U3BsaXRJbmNsdWRpbmdEZWxpbWl0ZXJzPFZhbHVlLCBXb3JkU2VwYXJhdG9ycyB8IFVwcGVyQ2FzZUNoYXJhY3RlcnM+LCB0cnVlLCBXb3JkU2VwYXJhdG9ycywgVXBwZXJDYXNlQ2hhcmFjdGVycywgRGVsaW1pdGVyPiA6IFZhbHVlO1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBEZWxpbWl0ZXJDYXNlIH0gZnJvbSAnLi9kZWxpbWl0ZXJDYXNlJztcbmltcG9ydCB0eXBlIHsgTm9uUmVjdXJzaXZlVHlwZSB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHR5cGUgeyBVbmtub3duQXJyYXkgfSBmcm9tICcuL3Vua25vd25BcnJheSc7XG4vKipcbiAqIENvbnZlcnQgb2JqZWN0IHByb3BlcnRpZXMgdG8gZGVsaW1pdGVyIGNhc2UgcmVjdXJzaXZlbHkuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4sIGZvciBleGFtcGxlLCBjb252ZXJ0aW5nIHNvbWUgQVBJIHR5cGVzIGZyb20gYSBkaWZmZXJlbnQgc3R5bGUuXG4gKlxuICogQHNlZSBEZWxpbWl0ZXJDYXNlXG4gKiBAc2VlIERlbGltaXRlckNhc2VkUHJvcGVydGllc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIGltcG9ydCB0eXBlIHtEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwfSBmcm9tICd0eXBlLWZlc3QnO1xuICpcbiAqIGludGVyZmFjZSBVc2VyIHtcbiAqIFx0dXNlcklkOiBudW1iZXI7XG4gKiBcdHVzZXJOYW1lOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogaW50ZXJmYWNlIFVzZXJXaXRoRnJpZW5kcyB7XG4gKiBcdHVzZXJJbmZvOiBVc2VyO1xuICogXHR1c2VyRnJpZW5kczogVXNlcltdO1xuICogfVxuICpcbiAqIGNvbnN0IHJlc3VsdDogRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVc2VyV2l0aEZyaWVuZHMsICctJz4gPSB7XG4gKiBcdCd1c2VyLWluZm8nOiB7XG4gKiBcdCd1c2VyLWlkJzogMSxcbiAqIFx0XHQndXNlci1uYW1lJzogJ1RvbScsXG4gKiBcdH0sXG4gKiBcdCd1c2VyLWZyaWVuZHMnOiBbXG4gKiBcdFx0e1xuICogXHRcdFx0J3VzZXItaWQnOiAyLFxuICogXHRcdFx0J3VzZXItbmFtZSc6ICdKZXJyeScsXG4gKiBcdFx0fSxcbiAqIFx0XHR7XG4gKiBcdFx0XHQndXNlci1pZCc6IDMsXG4gKiBcdFx0XHQndXNlci1uYW1lJzogJ1NwaWtlJyxcbiAqIFx0XHR9LFxuICogXHRdLFxuICogfTtcbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBDaGFuZ2UgY2FzZVxuICogQGNhdGVnb3J5IFRlbXBsYXRlIGxpdGVyYWxcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqL1xuZXhwb3J0IHR5cGUgRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxWYWx1ZSwgRGVsaW1pdGVyIGV4dGVuZHMgc3RyaW5nPiA9IFZhbHVlIGV4dGVuZHMgTm9uUmVjdXJzaXZlVHlwZSA/IFZhbHVlIDogVmFsdWUgZXh0ZW5kcyBVbmtub3duQXJyYXkgPyBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNBcnJheURlZXA8VmFsdWUsIERlbGltaXRlcj4gOiBWYWx1ZSBleHRlbmRzIFNldDxpbmZlciBVPiA/IFNldDxEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFUsIERlbGltaXRlcj4+IDoge1xuICAgIFtLIGluIGtleW9mIFZhbHVlIGFzIERlbGltaXRlckNhc2U8SywgRGVsaW1pdGVyPl06IERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VmFsdWVbS10sIERlbGltaXRlcj47XG59O1xudHlwZSBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNBcnJheURlZXA8VmFsdWUgZXh0ZW5kcyBVbmtub3duQXJyYXksIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBWYWx1ZSBleHRlbmRzIFtdID8gW10gOiBWYWx1ZSBleHRlbmRzIFtpbmZlciBVLCAuLi5pbmZlciBWXSA/IFtEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFUsIERlbGltaXRlcj4sIC4uLkRlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8ViwgRGVsaW1pdGVyPl0gOiBWYWx1ZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBVLCAuLi5pbmZlciBWXSA/IHJlYWRvbmx5IFtcbiAgICBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFUsIERlbGltaXRlcj4sXG4gICAgLi4uRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxWLCBEZWxpbWl0ZXI+XG5dIDogVmFsdWUgZXh0ZW5kcyByZWFkb25seSBbLi4uaW5mZXIgVSwgaW5mZXIgVl0gPyBbXG4gICAgLi4uRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+LFxuICAgIERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8ViwgRGVsaW1pdGVyPlxuXSA6IFZhbHVlIGV4dGVuZHMgcmVhZG9ubHkgWy4uLmluZmVyIFUsIGluZmVyIFZdID8gcmVhZG9ubHkgW1xuICAgIC4uLkRlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VSwgRGVsaW1pdGVyPixcbiAgICBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFYsIERlbGltaXRlcj5cbl0gOiBWYWx1ZSBleHRlbmRzIEFycmF5PGluZmVyIFU+ID8gQXJyYXk8RGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+PiA6IFZhbHVlIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+PiA6IG5ldmVyO1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnLi9kZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwJztcbi8qKlxuICogQ29udmVydCBvYmplY3QgcHJvcGVydGllcyB0byBzbmFrZSBjYXNlIHJlY3Vyc2l2ZWx5LlxuICpcbiAqIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuLCBmb3IgZXhhbXBsZSwgY29udmVydGluZyBzb21lIEFQSSB0eXBlcyBmcm9tIGEgZGlmZmVyZW50IHN0eWxlLlxuICpcbiAqIEBzZWUgU25ha2VDYXNlXG4gKiBAc2VlIFNuYWtlQ2FzZWRQcm9wZXJ0aWVzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogaW1wb3J0IHR5cGUge1NuYWtlQ2FzZWRQcm9wZXJ0aWVzRGVlcH0gZnJvbSAndHlwZS1mZXN0JztcbiAqXG4gKiBpbnRlcmZhY2UgVXNlciB7XG4gKiBcdHVzZXJJZDogbnVtYmVyO1xuICogXHR1c2VyTmFtZTogc3RyaW5nO1xuICogfVxuICpcbiAqIGludGVyZmFjZSBVc2VyV2l0aEZyaWVuZHMge1xuICogXHR1c2VySW5mbzogVXNlcjtcbiAqIFx0dXNlckZyaWVuZHM6IFVzZXJbXTtcbiAqIH1cbiAqXG4gKiBjb25zdCByZXN1bHQ6IFNuYWtlQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVc2VyV2l0aEZyaWVuZHM+ID0ge1xuICogXHR1c2VyX2luZm86IHtcbiAqIFx0XHR1c2VyX2lkOiAxLFxuICogXHRcdHVzZXJfbmFtZTogJ1RvbScsXG4gKiBcdH0sXG4gKiBcdHVzZXJfZnJpZW5kczogW1xuICogXHRcdHtcbiAqIFx0XHRcdHVzZXJfaWQ6IDIsXG4gKiBcdFx0XHR1c2VyX25hbWU6ICdKZXJyeScsXG4gKiBcdFx0fSxcbiAqIFx0XHR7XG4gKiBcdFx0XHR1c2VyX2lkOiAzLFxuICogXHRcdFx0dXNlcl9uYW1lOiAnU3Bpa2UnLFxuICogXHRcdH0sXG4gKiBcdF0sXG4gKiB9O1xuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IENoYW5nZSBjYXNlXG4gKiBAY2F0ZWdvcnkgVGVtcGxhdGUgbGl0ZXJhbFxuICogQGNhdGVnb3J5IE9iamVjdFxuICovXG5leHBvcnQgdHlwZSBTbmFrZUNhc2VkUHJvcGVydGllc0RlZXA8VmFsdWU+ID0gRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxWYWx1ZSwgJ18nPjtcbiIsIi8qKlxuICogR2VuZXJpYyB1dGlsaXR5IHRvIHRyYW5zZm9ybSBzbmFrZV9jYXNlIG9iamVjdCBrZXlzIHRvIGNhbWVsQ2FzZSBhdCBydW50aW1lLlxuICogVGhpcyBpcyB0aGUgcnVudGltZSBlcXVpdmFsZW50IG9mIHRoZSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgdHlwZSB1dGlsaXR5LlxuICovXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHRyYW5zZm9ybXMgYWxsIG9iamVjdCBrZXlzIGZyb20gc25ha2VfY2FzZSB0byBjYW1lbENhc2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdHJhbnNmb3JtU25ha2VUb0NhbWVsOiAob2JqOiB1bmtub3duKSA9PiB1bmtub3duO1xuLyoqXG4gKiBSZWN1cnNpdmVseSB0cmFuc2Zvcm1zIGFsbCBvYmplY3Qga2V5cyBmcm9tIGNhbWVsQ2FzZSB0byBzbmFrZV9jYXNlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHRyYW5zZm9ybUNhbWVsVG9TbmFrZTogKG9iajogdW5rbm93bikgPT4gdW5rbm93bjtcbiIsImltcG9ydCB7IEZ1bGZpbGxtZW50RGlzcGxheVN0YXR1cyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgRnVsZmlsbG1lbnREaXNwbGF5U3RhdHVzIGVudW0gdmFsdWUuXG4gKlxuICogQHBhcmFtIHN0YXR1cyAtIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgRnVsZmlsbG1lbnREaXNwbGF5U3RhdHVzIGVudW0gdmFsdWUgb3IgdW5kZWZpbmVkIGlmIHRoZSBzdHJpbmdcbiAqIGRvZXMgbm90IG1hcCB0byBhIHZhbGlkIGVudW1cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3Qgc3RyaW5nVG9GdWxmaWxsbWVudERpc3BsYXlTdGF0dXNFbnVtVmFsdWU6IChzdGF0dXM6IHN0cmluZykgPT4gRnVsZmlsbG1lbnREaXNwbGF5U3RhdHVzIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnXCI7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZUdyYXBoUUxDb2xvcnNDb25maWc6IChkYXRhOiB1bmtub3duKSA9PiBDb2xvck1hcHBpbmcgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWcnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnLCBQYWdlVmFyaWFudENvbmZpZywgV2lkZ2V0TW91bnRpbmdDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHM6IChjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQYWdlVmFyaWFudENvbmZpZztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWc6IChjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBjb25maWdLZXk6IHN0cmluZykgPT4gV2lkZ2V0TW91bnRpbmdDb25maWc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZUFuZFRyYW5zZm9ybVdpZGdldENvbmZpZzogKGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGNvbmZpZ0tleTogc3RyaW5nKSA9PiBXaWRnZXRDb25maWc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZUdyYXBoUUxGcm9udGVuZENvbmZpZzogKGRhdGE6IHVua25vd24pID0+IEZyb250ZW5kQ29uZmlnIHwgdW5kZWZpbmVkO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVHcmFwaFFMT3JnSWQ6IChkYXRhOiB1bmtub3duKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyIH0gZnJvbSAnLi4vbW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlcic7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZU1vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXI6ICh2YWx1ZTogdW5rbm93bikgPT4gTW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlciB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ2FuaXphdGlvbkNvbmZpZyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZU9yZ2FuaXphdGlvbkNvbmZpZzogKGRhdGE6IHVua25vd24pID0+IE9yZ2FuaXphdGlvbkNvbmZpZyB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IE9yZ0NvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuLyoqXG4gKlxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlT3JnQ29uZmlnUmVzdWx0czogKGRhdGE6IHVua25vd24pID0+IE9yZ0NvbmZpZyB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9pbmRleCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZVJlc3BvbnNlOiAoZGF0YTogdW5rbm93bikgPT4gUmVzcG9uc2UgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBTdWdnZXN0aW9uIH0gZnJvbSAnLi4vYXBpL3N1Z2dlc3Rpb24nO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVTdWdnZXN0aW9uOiAoZGF0YTogdW5rbm93bikgPT4gU3VnZ2VzdGlvbiB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvaW5kZXgnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVVc2VyRXZlbnQ6IChkYXRhOiB1bmtub3duKSA9PiBVc2VyRXZlbnQgfCB1bmRlZmluZWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBSSxjQUFjLENBQUMsSUFBRzs7OztBQ0F0QixJQUFJLGdCQUFnQixDQUFDLElBQUc7Ozs7QUNBeEIsSUFBVywwQkFBMEIsQ0FBQyxJQUFBOzs7O0FDQXRDLElBQUUscUJBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNGLElBQUksa0JBQWtCLENBQUMsSUFBSTtBQUMzQixJQUFFLG1CQUFBLENBQUEsSUFBQTtBQUNGLElBQVcsbUJBQW1CO0NBQUM7T0FBSztPQUFBO0NBQUE7QUFDcEMsSUFB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