@envive-ai/react-hooks 0.1.4 → 0.1.6

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 (488) hide show
  1. package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
  2. package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
  3. package/dist/amplitudeContext-hY3caPC6.js +322 -0
  4. package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
  5. package/dist/api-DjeZXxl_.js +207 -0
  6. package/dist/api-_JaUnIUj.cjs +292 -0
  7. package/dist/app-CjsQ2_n-.js +132 -0
  8. package/dist/app-CnKRZ9RW.cjs +178 -0
  9. package/dist/application/models/graphql/index.cjs +3 -12
  10. package/dist/application/models/graphql/index.d.cts +1 -1
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/graphql/index.js +1 -10
  13. package/dist/application/models/guards/api/index.cjs +1 -2
  14. package/dist/application/models/guards/api/index.d.cts +2 -2
  15. package/dist/application/models/guards/api/index.d.ts +2 -2
  16. package/dist/application/models/guards/api/index.js +1 -2
  17. package/dist/application/models/index.cjs +48 -54
  18. package/dist/application/models/index.d.cts +7 -9
  19. package/dist/application/models/index.d.ts +7 -9
  20. package/dist/application/models/index.js +7 -11
  21. package/dist/application/models/utilityTypes/index.cjs +1 -1
  22. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  23. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  24. package/dist/application/models/utilityTypes/index.js +1 -1
  25. package/dist/application/models/variantInfo/index.cjs +1 -1
  26. package/dist/application/models/variantInfo/index.d.cts +1 -1
  27. package/dist/application/models/variantInfo/index.d.ts +1 -1
  28. package/dist/application/models/variantInfo/index.js +1 -1
  29. package/dist/application/utils/index.cjs +40 -37
  30. package/dist/application/utils/index.d.cts +18 -14
  31. package/dist/application/utils/index.d.ts +17 -13
  32. package/dist/application/utils/index.js +13 -10
  33. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
  34. package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
  35. package/dist/atoms/app/index.cjs +14 -16
  36. package/dist/atoms/app/index.d.cts +20 -19
  37. package/dist/atoms/app/index.d.ts +20 -19
  38. package/dist/atoms/app/index.js +10 -11
  39. package/dist/atoms/atomStore/index.cjs +2 -1
  40. package/dist/atoms/atomStore/index.d.cts +1 -1
  41. package/dist/atoms/atomStore/index.js +2 -1
  42. package/dist/atoms/chat/index.cjs +44 -40
  43. package/dist/atoms/chat/index.d.cts +35 -36
  44. package/dist/atoms/chat/index.d.ts +35 -36
  45. package/dist/atoms/chat/index.js +14 -10
  46. package/dist/atoms/globalSearch/index.cjs +1 -1
  47. package/dist/atoms/globalSearch/index.d.cts +5 -5
  48. package/dist/atoms/globalSearch/index.d.ts +5 -5
  49. package/dist/atoms/globalSearch/index.js +1 -1
  50. package/dist/atoms/org/index.cjs +26 -37
  51. package/dist/atoms/org/index.d.cts +37 -47
  52. package/dist/atoms/org/index.d.ts +37 -47
  53. package/dist/atoms/org/index.js +11 -11
  54. package/dist/atoms/search/index.cjs +47 -41
  55. package/dist/atoms/search/index.d.cts +7 -9
  56. package/dist/atoms/search/index.d.ts +7 -9
  57. package/dist/atoms/search/index.js +16 -10
  58. package/dist/bandolier-DYEz4-8C.js +1229 -0
  59. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  60. package/dist/carpe-CsG5jCcl.cjs +607 -0
  61. package/dist/carpe-DONk00bZ.js +605 -0
  62. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  63. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  64. package/dist/{chat-BgONoYU7.cjs → chat-BubCW1as.cjs} +1 -1
  65. package/dist/chat-CO7cRkaq.cjs +506 -0
  66. package/dist/{chat-CLJ4NWcN.js → chat-CV6MXeID.js} +1 -1
  67. package/dist/chat-hcRc4RRd.js +285 -0
  68. package/dist/{components-CV1fhAkj.js → components-B4T3Uzth.js} +1 -1
  69. package/dist/{components-BKZbet67.cjs → components-Cw9WjA6g.cjs} +1 -1
  70. package/dist/config/locators/components/chat/index.cjs +1 -1
  71. package/dist/config/locators/components/chat/index.d.cts +1 -1
  72. package/dist/config/locators/components/chat/index.d.ts +1 -1
  73. package/dist/config/locators/components/chat/index.js +1 -1
  74. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  75. package/dist/config/locators/components/index.cjs +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/index.js +1 -1
  79. package/dist/config/locators/index.cjs +4 -4
  80. package/dist/config/locators/index.d.cts +2 -2
  81. package/dist/config/locators/index.d.ts +3 -3
  82. package/dist/config/locators/index.js +4 -4
  83. package/dist/contexts/index.cjs +45 -14
  84. package/dist/contexts/index.d.cts +10 -78
  85. package/dist/contexts/index.d.ts +10 -78
  86. package/dist/contexts/index.js +22 -11
  87. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  88. package/dist/contexts-DGlr7M1o.js +2596 -0
  89. package/dist/coterie-CKB93qfz.cjs +239 -0
  90. package/dist/{coterie-yQ-_JXSw.cjs → coterie-DHcj2fRE.js} +64 -65
  91. package/dist/{custservice-types-C83itZmy.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  92. package/dist/{custservice-types-DPQ-4TI6.js → custservice-types-mnIunabv.js} +1 -1
  93. package/dist/default-BnB4p0Se.cjs +234 -0
  94. package/dist/default-D6f5Dyt7.js +199 -0
  95. package/dist/default-ZKkE5zT4.cjs +4 -0
  96. package/dist/default-legGZJwI.js +4 -0
  97. package/dist/{divIds-DEL_-qU0.cjs → divIds-2dJlU3z8.cjs} +1 -15
  98. package/dist/{divIds-CWkntTsx.js → divIds-BUrN2vY-.js} +2 -4
  99. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  100. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  101. package/dist/{embedded-C5uJqmuD.js → embedded-BJLWIriJ.js} +1 -1
  102. package/dist/{embedded--2L0F4b5.cjs → embedded-Dl79TJLC.cjs} +1 -1
  103. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  104. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  105. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  106. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  107. package/dist/events/index.cjs +1 -1
  108. package/dist/events/index.d.cts +1 -1
  109. package/dist/events/index.js +1 -1
  110. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  111. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  112. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  113. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  114. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  115. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  116. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  117. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  118. package/dist/graphql-BNW60InJ.cjs +128 -0
  119. package/dist/graphql-CjB8wHzm.js +74 -0
  120. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  121. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  122. package/dist/greenpan-B_EbPkSP.js +397 -0
  123. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  124. package/dist/grooveLife-Ckuir319.js +342 -0
  125. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  126. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  127. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  128. package/dist/hooks/index.cjs +40 -16
  129. package/dist/hooks/index.d.cts +122 -95
  130. package/dist/hooks/index.d.ts +122 -95
  131. package/dist/hooks/index.js +22 -11
  132. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  133. package/dist/{index-jBATkcc_.d.cts → index-BDPWBU3h.d.cts} +1 -1
  134. package/dist/index-BMPtlgac.d.ts +191 -0
  135. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  136. package/dist/{index-C62lPpy4.d.cts → index-Byb45OPg.d.cts} +1 -1
  137. package/dist/{index-DPx8s5YH.d.ts → index-C6KdON7d.d.ts} +1 -1
  138. package/dist/index-C7pGDl1A.d.ts +1609 -0
  139. package/dist/{index-CYtsPztZ.d.cts → index-C9lgsCWp.d.cts} +32 -32
  140. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  141. package/dist/{index-C_C0tLeD.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  142. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  143. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  144. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  145. package/dist/{index-CExtydIH.d.ts → index-DOii3C6b.d.ts} +1 -1
  146. package/dist/index-DTu2X-YS.d.cts +1609 -0
  147. package/dist/index-OEifcBsm.d.cts +191 -0
  148. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  149. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  150. package/dist/interceptors/index.cjs +2 -12
  151. package/dist/interceptors/index.d.cts +8 -13
  152. package/dist/interceptors/index.d.ts +8 -13
  153. package/dist/interceptors/index.js +2 -11
  154. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  155. package/dist/{jackArcher-CXf_IAmC.js → jackArcher-BwkWGybC.js} +24 -25
  156. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  157. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  158. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  159. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  160. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  161. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  162. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  163. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  164. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  165. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  166. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  167. package/dist/longevityrx-DfPDfvAt.js +320 -0
  168. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  169. package/dist/{lookOptic-BGhU4910.js → lookOptic-FgVW1afF.js} +19 -20
  170. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  171. package/dist/{mantraBrand-DrqG9uqO.js → mantraBrand-uV8HCDR8.js} +22 -23
  172. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  173. package/dist/medterra-DgzE7-mj.js +583 -0
  174. package/dist/modells-CJjsxOIR.js +484 -0
  175. package/dist/modells-Ck5KbRFj.cjs +484 -0
  176. package/dist/models-BkXg5eIP.cjs +1534 -0
  177. package/dist/models-UZ6HszfZ.js +1281 -0
  178. package/dist/{nodeSelector-BiCDowlK.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  179. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  180. package/dist/org-C2RrBVQR.cjs +81 -0
  181. package/dist/org-xMytX--e.js +38 -0
  182. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  183. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  184. package/dist/pressedFloral-Bteoboms.js +661 -0
  185. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  186. package/dist/search-BMOAmrmY.js +459 -0
  187. package/dist/search-Df0Ifneg.cjs +672 -0
  188. package/dist/{search-filter-types-BNTLVXqQ.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  189. package/dist/{search-filter-types-DkmH1TxJ.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  190. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  191. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  192. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  193. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  194. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  195. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  196. package/dist/spanx-B4WFA_rI.js +661 -0
  197. package/dist/spanx-BWoE4F8b.cjs +663 -0
  198. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  199. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  200. package/dist/{suggestionBarV2-types-CwOXzIKq.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  201. package/dist/{suggestionBarV2-types-Dc4-zJlV.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  202. package/dist/supergoop-22dd5_BS.js +323 -0
  203. package/dist/supergoop-B-a4cku2.cjs +323 -0
  204. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  205. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  206. package/dist/types/index.cjs +2 -2
  207. package/dist/types/index.d.cts +2 -2
  208. package/dist/types/index.d.ts +2 -2
  209. package/dist/types/index.js +2 -2
  210. package/dist/types--pr1GQQx.js +154 -0
  211. package/dist/types-BVSyY3Hk.cjs +196 -0
  212. package/dist/{uniqueVintage-Cui74mlJ.js → uniqueVintage-CJXiNNe7.js} +19 -20
  213. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  214. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  215. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  216. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  217. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  218. package/dist/utils-C9ZSCx12.js +888 -0
  219. package/dist/utils-D5HO61hG.cjs +1016 -0
  220. package/dist/variantInfo-DbVxA1yE.js +1 -0
  221. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  222. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  223. package/dist/venaCbd-CanovPS_.js +365 -0
  224. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  225. package/dist/{westonJonBoucher-C95EuCl-.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  226. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  227. package/dist/{wineEnthusiast-DeTFY8Gm.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  228. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  229. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  230. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  231. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  232. package/package.json +101 -19
  233. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  234. package/src/application/models/colorsConfig.ts +18 -18
  235. package/src/application/models/frontendConfig.ts +3 -3
  236. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  237. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  238. package/src/application/models/index.ts +0 -2
  239. package/src/application/models/localStorageEventListener.ts +2 -2
  240. package/src/application/models/supportedOrgs.ts +1 -1
  241. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  242. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  243. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  244. package/src/application/utils/analyticsUtils.ts +53 -22
  245. package/src/application/utils/cdnUtils.ts +11 -0
  246. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  247. package/src/atoms/app/index.ts +7 -17
  248. package/src/atoms/app/variant.ts +13 -4
  249. package/src/atoms/chat/chatState.ts +28 -18
  250. package/src/atoms/chat/messageQueue.ts +36 -5
  251. package/src/atoms/chat/replies.ts +45 -37
  252. package/src/atoms/envive/enviveConfig.ts +10 -6
  253. package/src/atoms/org/graphqlConfig.ts +21 -4
  254. package/src/atoms/org/index.ts +7 -7
  255. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  256. package/src/atoms/org/orgPageConfig.ts +6 -5
  257. package/src/atoms/search/chatSearch.ts +11 -5
  258. package/src/atoms/search/searchAPI.ts +68 -48
  259. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  260. package/src/contexts/amplitudeContext.tsx +466 -0
  261. package/src/contexts/cdnContext.tsx +48 -0
  262. package/src/contexts/chatContext.tsx +15 -12
  263. package/src/contexts/enviveConfigContext.tsx +22 -17
  264. package/src/contexts/enviveCssContext.tsx +34 -5
  265. package/src/contexts/featureFlagContext.tsx +193 -0
  266. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  267. package/src/contexts/graphqlContext.tsx +165 -0
  268. package/src/contexts/index.ts +13 -3
  269. package/src/contexts/localStorageContext.tsx +159 -0
  270. package/src/contexts/newOrgConfigContext.tsx +104 -0
  271. package/src/contexts/orgConfigContext.tsx +92 -92
  272. package/src/contexts/searchContext.tsx +187 -0
  273. package/src/contexts/sessionStorageContext.tsx +80 -0
  274. package/src/contexts/shopifyUrlContext.tsx +97 -0
  275. package/src/contexts/types.ts +12 -8
  276. package/src/contexts/userIdentityContext.tsx +197 -0
  277. package/src/events/registerAnalyticsListeners.ts +32 -38
  278. package/src/hooks/index.ts +10 -6
  279. package/src/hooks/useAmplitudeOperations.ts +35 -0
  280. package/src/hooks/useAppDetails.ts +49 -0
  281. package/src/hooks/useCdnOperations.ts +16 -0
  282. package/src/hooks/useChatToggle.ts +5 -4
  283. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  284. package/src/hooks/useGraphQLConfig.ts +63 -0
  285. package/src/hooks/useIdentifyUser.ts +33 -0
  286. package/src/hooks/useImageResolver.ts +18 -10
  287. package/src/hooks/useLocalStorageOperations.ts +92 -0
  288. package/src/hooks/useNewOrgConfig.ts +7 -0
  289. package/src/hooks/useSearch.tsx +21 -18
  290. package/src/hooks/useSearchOperations.ts +97 -0
  291. package/src/hooks/useSessionStorageOperations.ts +28 -0
  292. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  293. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  294. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  295. package/src/interceptors/index.ts +0 -1
  296. package/src/interceptors/useMessageInterceptor.ts +5 -8
  297. package/src/merchants/bandolier/bandolier.ts +10 -28
  298. package/src/merchants/carpe/carpe.ts +5 -8
  299. package/src/merchants/coterie/coterie.ts +3 -6
  300. package/src/merchants/default.ts +73 -70
  301. package/src/merchants/domInsertion.ts +30 -0
  302. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  303. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  304. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  305. package/src/merchants/greenpan/greenpan.ts +6 -12
  306. package/src/merchants/gridInsertion.ts +19 -0
  307. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  308. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  309. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  310. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  311. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  312. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  313. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  314. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  315. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  316. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  317. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  318. package/src/merchants/medterra/medterra.ts +14 -11
  319. package/src/merchants/modells/modells.ts +6 -9
  320. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  321. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  322. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  323. package/src/merchants/spanx/spanx.ts +6 -6
  324. package/src/merchants/spanx/spanxStaging.ts +6 -12
  325. package/src/merchants/supergoop/supergoop.ts +11 -12
  326. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  327. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  328. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  329. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  330. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  331. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  332. package/src/types/config-versions.ts +6 -0
  333. package/src/types.ts +0 -53
  334. package/dist/adapters/amplitude/index.cjs +0 -14
  335. package/dist/adapters/amplitude/index.d.cts +0 -6
  336. package/dist/adapters/amplitude/index.d.ts +0 -6
  337. package/dist/adapters/amplitude/index.js +0 -12
  338. package/dist/api-B2euFL-5.cjs +0 -269
  339. package/dist/api-XRr_lAG6.js +0 -190
  340. package/dist/application/config/index.cjs +0 -43
  341. package/dist/application/config/index.d.cts +0 -15
  342. package/dist/application/config/index.d.ts +0 -15
  343. package/dist/application/config/index.js +0 -41
  344. package/dist/application/service/customerService/index.cjs +0 -4
  345. package/dist/application/service/customerService/index.d.cts +0 -3
  346. package/dist/application/service/customerService/index.d.ts +0 -3
  347. package/dist/application/service/customerService/index.js +0 -4
  348. package/dist/application/service/index.cjs +0 -41
  349. package/dist/application/service/index.d.cts +0 -399
  350. package/dist/application/service/index.d.ts +0 -399
  351. package/dist/application/service/index.js +0 -12
  352. package/dist/bandolier-B76-OE75.cjs +0 -1230
  353. package/dist/bandolier-DRn_x1g1.js +0 -1230
  354. package/dist/carpe-kHi4RLB5.cjs +0 -608
  355. package/dist/carpe-qrSU99gq.js +0 -606
  356. package/dist/contexts-CQDwe3rK.cjs +0 -14333
  357. package/dist/contexts-e2sM-B9g.js +0 -12919
  358. package/dist/coterie-mMirPcHP.js +0 -240
  359. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  360. package/dist/customerService-BHQRnLhC.js +0 -23
  361. package/dist/default-8Jfv8ehQ.cjs +0 -199
  362. package/dist/default-C8PQf-38.js +0 -176
  363. package/dist/default-LukSiCz1.js +0 -4
  364. package/dist/default-rJSJ887P.cjs +0 -4
  365. package/dist/dreamlandBaby-DHltv12Z.cjs +0 -347
  366. package/dist/dreamlandBaby-cG0HM9bt.js +0 -347
  367. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  368. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  369. package/dist/fiveCbd-Cvnwh03g.cjs +0 -614
  370. package/dist/fiveCbd-DhYMlsf9.js +0 -614
  371. package/dist/forLoveAndLemons-C8DuUexW.js +0 -666
  372. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +0 -668
  373. package/dist/greenpan-B4Pu65kV.js +0 -398
  374. package/dist/greenpan-BL5p6j7f.cjs +0 -398
  375. package/dist/grooveLife-DjKWHoN3.cjs +0 -343
  376. package/dist/grooveLife-JK0TyaPz.js +0 -343
  377. package/dist/homegrownCannabis-DxqSDkmS.js +0 -411
  378. package/dist/homegrownCannabis-ZnfCqW-m.cjs +0 -411
  379. package/dist/index-BfuO9b0Q.d.ts +0 -749
  380. package/dist/index-CNsGWfS6.d.cts +0 -749
  381. package/dist/index-DFL1dIT_.d.ts +0 -7
  382. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  383. package/dist/index-VSFakgAI.d.cts +0 -95
  384. package/dist/index-zZjcds15.d.cts +0 -7
  385. package/dist/jackArcher-mGkojXek.cjs +0 -728
  386. package/dist/jordanCraig-BvCvPRoR.js +0 -1787
  387. package/dist/jordanCraig-Dv8pVCiS.cjs +0 -1787
  388. package/dist/kindredBravely-UQP7wiNu.cjs +0 -491
  389. package/dist/kindredBravely-X8F_LNph.js +0 -491
  390. package/dist/kutFromTheKloth-BhYKk3CN.cjs +0 -370
  391. package/dist/kutFromTheKloth-D1xsTSJr.js +0 -370
  392. package/dist/larryAndSerges-1411NuZa.cjs +0 -262
  393. package/dist/larryAndSerges-DVIRLItu.js +0 -262
  394. package/dist/leapsAndRebounds-BJ8mwr33.js +0 -361
  395. package/dist/leapsAndRebounds-UcP9EJVO.cjs +0 -361
  396. package/dist/logger-Dln20ans.cjs +0 -26
  397. package/dist/logger-pdEEY8T2.js +0 -20
  398. package/dist/longevityrx-BFSv9GF5.cjs +0 -321
  399. package/dist/longevityrx-Cp6wleWr.js +0 -321
  400. package/dist/lookOptic-KieSqskd.cjs +0 -283
  401. package/dist/mantraBrand-CHQw-0nw.cjs +0 -751
  402. package/dist/medterra-CLG6Co1C.cjs +0 -584
  403. package/dist/medterra-D8ZX9NZC.js +0 -584
  404. package/dist/modells-BzyPwN2m.cjs +0 -485
  405. package/dist/modells-CAfqOCW4.js +0 -485
  406. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  407. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  408. package/dist/pressedFloral-DULBuQwR.cjs +0 -662
  409. package/dist/pressedFloral-Dp-7Fk3S.js +0 -662
  410. package/dist/skinPerfection-BxuYCeJX.js +0 -335
  411. package/dist/skinPerfection-Cd3XZ6By.cjs +0 -335
  412. package/dist/snapSupplements-Bf6htPM0.js +0 -286
  413. package/dist/snapSupplements-ZFnXyMuZ.cjs +0 -286
  414. package/dist/spanx-CwDPQaGj.js +0 -662
  415. package/dist/spanx-Cyd4qDlK.cjs +0 -664
  416. package/dist/spanxStaging-D43nyAGy.js +0 -846
  417. package/dist/spanxStaging-ijbYnHzr.cjs +0 -849
  418. package/dist/supergoop-BnbFG7hm.cjs +0 -338
  419. package/dist/supergoop-CY043wIg.js +0 -336
  420. package/dist/types-BF_CJeck.js +0 -177
  421. package/dist/types-CD4LFta-.d.cts +0 -33
  422. package/dist/types-CNH4sfF-.cjs +0 -231
  423. package/dist/types-DBdI0j89.d.ts +0 -33
  424. package/dist/uniqueVintage-R2Jcu1y1.cjs +0 -1214
  425. package/dist/variant-CKVRF2-W.d.ts +0 -13
  426. package/dist/variant-raYuOP4L.d.cts +0 -13
  427. package/dist/venaCbd-o5_vOp4e.js +0 -366
  428. package/dist/venaCbd-r-IxEVc1.cjs +0 -366
  429. package/dist/westonJonBoucher-DjGEW3ZB.cjs +0 -423
  430. package/dist/wineEnthusiast-DvfcV5B3.cjs +0 -941
  431. package/dist/wolfMattress-6xPfOJt3.js +0 -373
  432. package/dist/wolfMattress-BjGnGKjP.cjs +0 -373
  433. package/dist/wolfTactical-Bi3WZu0m.cjs +0 -350
  434. package/dist/wolfTactical-C_F9-oPX.js +0 -350
  435. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  436. package/src/adapters/amplitude/index.ts +0 -2
  437. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  438. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  439. package/src/application/config/generalStaticConfig.ts +0 -40
  440. package/src/application/config/index.ts +0 -1
  441. package/src/application/models/domMutationContinuation.ts +0 -7
  442. package/src/application/models/domObservationStrategy.ts +0 -9
  443. package/src/application/service/cachingService.ts +0 -84
  444. package/src/application/service/cdnService.ts +0 -20
  445. package/src/application/service/customerService/index.ts +0 -8
  446. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  447. package/src/application/service/domMutationObserver.ts +0 -320
  448. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  449. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  450. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  451. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  452. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  453. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  454. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  455. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  456. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  457. package/src/application/service/featureFlagService.ts +0 -130
  458. package/src/application/service/index.ts +0 -31
  459. package/src/application/service/kustomerIntegrationService.ts +0 -111
  460. package/src/application/service/localStorageService.ts +0 -77
  461. package/src/application/service/pageVariantService.ts +0 -866
  462. package/src/application/service/searchService.ts +0 -147
  463. package/src/application/service/sessionStorageService.ts +0 -27
  464. package/src/application/service/shopifyUrlService.ts +0 -63
  465. package/src/application/service/userIdentityService.ts +0 -114
  466. package/src/application/service/windowChatToggleService.ts +0 -80
  467. package/src/application/service/windowDataLayerService.ts +0 -181
  468. package/src/application/service/windowFrontendConfigService.ts +0 -129
  469. package/src/atoms/org/merchantCss.ts +0 -158
  470. package/src/atoms/org/org.ts +0 -291
  471. package/src/atoms/org/orgUIConfig.ts +0 -142
  472. package/src/enabled-features.ts +0 -83
  473. package/src/hooks/useDynamicVariants.ts +0 -210
  474. package/src/hooks/useFileUpload.ts +0 -63
  475. package/src/hooks/useHideElements.ts +0 -82
  476. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  477. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  478. package/src/hooks/useSnapControl.ts +0 -155
  479. package/src/interceptors/useFormEscalation.ts +0 -57
  480. /package/dist/{variantInfo-CzhR5W6h.js → atomStore-CZnUUsrr.js} +0 -0
  481. /package/dist/{variantInfo-CNRTY0gH.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  482. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  483. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  484. /package/dist/{locators-Dc5ZT0aF.js → utilityTypes-8sETsYPk.js} +0 -0
  485. /package/dist/{locators-lQMJj830.cjs → utilityTypes-COShxVir.cjs} +0 -0
  486. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  487. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  488. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -1,1230 +0,0 @@
1
- require('./logger-Dln20ans.cjs');
2
- require('./api-B2euFL-5.cjs');
3
- const require_contexts = require('./contexts-CQDwe3rK.cjs');
4
- const require_types = require('./types-CNH4sfF-.cjs');
5
- require('./atomStore-JwGb7pcy.cjs');
6
- require('./customerService-BG1uNZZ1.cjs');
7
- require('./globalSearch-BTeZxvk1.cjs');
8
- require('./utilityTypes-C4h2wgAK.cjs');
9
- require('./variantInfo-CNRTY0gH.cjs');
10
- require('./events-Da7gpmGv.cjs');
11
- const require_suggestionBarV2_types = require('./suggestionBarV2-types-Dc4-zJlV.cjs');
12
- const require_divIds = require('./divIds-DEL_-qU0.cjs');
13
- require('./chat-BgONoYU7.cjs');
14
- require('./components-BKZbet67.cjs');
15
- const require_embedded = require('./embedded--2L0F4b5.cjs');
16
- require('./locators-lQMJj830.cjs');
17
- const require_default = require('./default-8Jfv8ehQ.cjs');
18
-
19
- //#region src/merchants/bandolier/bandolier.ts
20
- const bandolierColors = {
21
- [require_types.ColorNames.TextPrimary]: "#000000",
22
- [require_types.ColorNames.TextSecondary]: "#6C6C6C",
23
- [require_types.ColorNames.TextAccent]: "#AF986E",
24
- [require_types.ColorNames.TextLink]: "#000000",
25
- [require_types.ColorNames.TextLight]: "#FFFFFF",
26
- [require_types.ColorNames.BackgroundPrimary]: "#000000",
27
- [require_types.ColorNames.BackgroundSecondary]: "#ECECEC",
28
- [require_types.ColorNames.BackgroundSecondaryDark]: "#E2E2E2",
29
- [require_types.ColorNames.BackgroundTertiary]: "#ECECEC",
30
- [require_types.ColorNames.BackgroundDark]: "#000000",
31
- [require_types.ColorNames.BackgroundLight]: "#FFFFFF",
32
- [require_types.ColorNames.BackgroundSaturated]: "#CCCCCC",
33
- [require_types.ColorNames.BorderLight]: "#ECECEC",
34
- [require_types.ColorNames.BorderMedium]: "#EAEAEA",
35
- [require_types.ColorNames.BorderDark]: "#6C6C6C",
36
- [require_types.ColorNames.BorderOutline]: "#000000",
37
- [require_types.ColorNames.AccentPrimary]: "#AF986E",
38
- [require_types.ColorNames.AccentSecondary]: "#DCB4AE"
39
- };
40
- const bandolierOrgUIConfig = () => {
41
- const defaultBandolierOrgConfig = require_default.defaultOrgUIConfig(require_types.OrgShortName.Bandolier);
42
- return {
43
- ...defaultBandolierOrgConfig,
44
- merchantVariantSettings: { dynamicVariants: {
45
- enabled: false,
46
- refreshInterval: 400
47
- } },
48
- chatMessageConfig: {
49
- ...defaultBandolierOrgConfig.chatMessageConfig,
50
- assistantChatTitle: "Ask Maggie",
51
- variant: "accent"
52
- },
53
- chatHeader: {
54
- ...defaultBandolierOrgConfig.chatHeader,
55
- imageSrc: require_contexts.CdnService.getAssetURL("bandolier-logo.svg", require_types.OrgShortName.Bandolier)
56
- },
57
- chatPreviewConfig: {
58
- ...defaultBandolierOrgConfig.chatPreviewConfig,
59
- buttonTextColor: require_types.colorVar(require_types.ColorNames.TextLink),
60
- buttonBackgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondary),
61
- buttonBackgroundHoverColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark),
62
- buttonTextHoverColor: require_types.colorVar(require_types.ColorNames.TextLink),
63
- iconFillColor: require_types.colorVar(require_types.ColorNames.TextAccent),
64
- copies: {
65
- pdp: [
66
- "does this fit my device model?",
67
- "is this adjustable?",
68
- "why choose this over a bulky bag?",
69
- "what do reviewers love most?",
70
- "can I use this every day?"
71
- ],
72
- plp: []
73
- },
74
- headerConfig: { ...defaultBandolierOrgConfig.chatPreviewConfig.headerConfig },
75
- footerConfig: { ...defaultBandolierOrgConfig.chatPreviewConfig.footerConfig }
76
- },
77
- floatingEntrypointConfig: {
78
- ...defaultBandolierOrgConfig.floatingEntrypointConfig,
79
- showOption: "always",
80
- expandedColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
81
- expansionText: {
82
- pdp: "Could this be your perfect everyday essential?",
83
- plp: "What can we help you find today?"
84
- }
85
- },
86
- productCardConfig: { ...defaultBandolierOrgConfig.productCardConfig },
87
- pageCardConfig: {
88
- ...defaultBandolierOrgConfig.pageCardConfig,
89
- variant: "filled",
90
- hoverVariant: "lift",
91
- iconVariant: "primary"
92
- },
93
- productReviewConfig: { ...defaultBandolierOrgConfig.productReviewConfig },
94
- welcomeSectionConfig: {
95
- ...defaultBandolierOrgConfig.welcomeSectionConfig,
96
- title: "Welcome to Bandolier AI!",
97
- colorVariant: "accent",
98
- subtitle: "Hey there. I’m Maggie, your Bandolier shopping assistant. I’m here to help you find your perfect Bandolier—effortlessly stylish, hands-free, and ready for wherever life takes you."
99
- },
100
- customerServiceIntegration: {
101
- integrationMode: require_types.CustomerServiceIntegrationMode.simple,
102
- provider: require_types.CustomerServiceType.gorgias,
103
- useUnifiedButton: true
104
- },
105
- searchConfig: {
106
- enableGlobalSearch: true,
107
- redirectSearchResultsUrl: "https://www.bandolierstyle.com/pages/search-page",
108
- searchFilterConfig: [
109
- {
110
- filterId: "price",
111
- displayName: "Price",
112
- type: "price",
113
- bucketSize: 100
114
- },
115
- {
116
- filterId: "material",
117
- displayName: "Materials",
118
- attribute: "materials",
119
- type: "dynamic",
120
- sorting: { type: "productCount" }
121
- },
122
- {
123
- filterId: "devices",
124
- displayName: "Phone size",
125
- type: "dynamic",
126
- attribute: "devices",
127
- sorting: { type: "productCount" }
128
- },
129
- {
130
- filterId: "colors",
131
- displayName: "Color",
132
- type: "dynamic",
133
- attribute: "colors",
134
- sorting: { type: "productCount" }
135
- },
136
- {
137
- filterId: "dynamic",
138
- displayName: "",
139
- type: "dynamic",
140
- attribute: "dynamic",
141
- sorting: { type: "productCount" }
142
- }
143
- ]
144
- },
145
- merchantOverrideCss: `
146
- .spiffy-headline {
147
- font-family: 'DM Sans', 'Poppins', sans-serif;
148
- }
149
- .spiffy-headline-placeholder::placeholder {
150
- font-family: 'DM Sans', 'Poppins', sans-serif;
151
- font-style: italic;
152
- }
153
- .spiffy-star-rating-container {
154
- background: var(--spiffy-colors-background-light) !important;
155
- }
156
- .spiffy-star-rating-star {
157
- fill: var(--spiffy-colors-accent-primary) !important;
158
- }
159
- .spiffy-product-card-text-color {
160
- color: var(--spiffy-colors-text-secondary);
161
- }
162
- .spiffy-view-source-icon-wrapper {
163
- background: var(--spiffy-colors-accent-primary) !important;
164
- }
165
- .spiffy-view-source-icon-wrapper svg {
166
- fill: var(--spiffy-colors-background-light);
167
- }
168
- .spiffy-floating-button-position {
169
- top: 150px !important;
170
-
171
- @media (max-width: 760px) {
172
- top: 100px !important;
173
- }
174
- }
175
- [data-testid="floating-chat-shadow-dom-container"] {
176
- z-index: 2147483647 !important;
177
- }
178
- .spiffy-chat-header-close-button {
179
- color: var(--spiffy-colors-background-primary);
180
- }
181
- .spiffy-modal-sheet-footer .spiffy-suggestion-button-question-class svg {
182
- fill: var(--spiffy-colors-text-link) !important;
183
- stroke: var(--spiffy-colors-text-link) !important;
184
- }
185
- .spiffy-chat-header-container img {
186
- max-width: 150px;
187
- }
188
- .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button {
189
- background-color: var(--spiffy-colors-background-secondary) !important;
190
- color: var(--spiffy-colors-text-link) !important;
191
- border: none;
192
- }
193
- .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button svg {
194
- fill: var(--spiffy-colors-accent-primary) !important;
195
- stroke: var(--spiffy-colors-accent-primary) !important;
196
- }
197
- .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button:hover {
198
- background-color: var(--spiffy-colors-background-secondary-dark) !important;
199
- }
200
- .spiffy-chat-preview-footer-container button {
201
- background-color: var(--spiffy-colors-background-secondary);
202
- border-radius: 0 !important;
203
- }
204
- .spiffy-chat-preview-footer-container button span {
205
- color: var(--spiffy-colors-text-link) !important;
206
- }
207
- .spiffy-chat-preview-footer-container button:hover span {
208
- color: var(--spiffy-colors-text-link) !important;
209
- }
210
- .spiffy-chat-preview-footer-container button svg {
211
- fill: var(--spiffy-colors-accent-primary);
212
- stroke: var(--spiffy-colors-accent-primary);
213
- }
214
- .spiffy-chat-preview-footer-container button:hover {
215
- background-color: var(--spiffy-colors-background-secondary-dark);
216
- }
217
- .spiffy-chat-preview-footer-container button:hover svg {
218
- fill: var(--spiffy-colors-accent-primary) !important;
219
- stroke: var(--spiffy-colors-accent-primary) !important;
220
- }
221
- .spiffy-back-to-results-button {
222
- color: var(--spiffy-colors-text-light);
223
- }
224
- .spiffy-back-to-results-button svg {
225
- fill: var(--spiffy-colors-accent-primary) !important;
226
- stroke: var(--spiffy-colors-accent-primary) !important;
227
- }
228
- @media (max-width: 479px) {
229
- #spiffy-ai-prompt-card {
230
- grid-area: 2 / 1 / 2 / -1 !important;
231
- min-height: 350px !important;
232
- }
233
- .spiffy-image-prompt-card-container {
234
- background-position-y: 0%, 100% !important;
235
- }
236
- }
237
-
238
- /* ==========================================================================
239
- Search Layout & Visibility Rules
240
- ========================================================================== */
241
-
242
- .search-results-entry-point ~ .section-padding.text-section.text-dark {
243
- color: red;
244
- }
245
-
246
- /* -- Rules to hide original site elements -- */
247
- .global-entry-desktop + .js-search-trigger.search,
248
- .global-entry-small-desktop + .js-search-trigger.search,
249
- .global-entry-desktop + .search-popdown,
250
- .global-entry-small-desktop + .search-popdown,
251
- #spiffy-ai-global-search-entrypoint-mobile-icon-only + .search-popdown,
252
- #spiffy-ai-global-search-entrypoint-mobile-homepage + .search-popdown,
253
- .global-entry-desktop + .main-content,
254
- .global-entry-small-desktop + .main-content,
255
- .search-results-entry-point + .shopify-section {
256
- display: none !important;
257
- }
258
-
259
- // .search-results-no-op ~ * {
260
- // z-index: 0;
261
- // }
262
-
263
- #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
264
- display: block;
265
- }
266
-
267
- @media (min-width: 640px) {
268
- #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
269
- display: none;
270
- }
271
-
272
- #spiffy-ai-global-search-entrypoint-mobile-icon-only {
273
- display: block;
274
- }
275
- }
276
-
277
- @media (min-width: 1200px) {
278
- #spiffy-ai-global-search-entrypoint.global-entry-desktop {
279
- display: block;
280
- }
281
- #spiffy-ai-global-search-entrypoint-tablet.global-entry-small-desktop {
282
- display: none;
283
- }
284
- #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
285
- display: none;
286
- }
287
- }
288
- `
289
- };
290
- };
291
- const bandolierPageConfig = () => ({
292
- pageVariants: [
293
- {
294
- variantId: "search-results",
295
- variantType: "search",
296
- variantTests: [
297
- { testType: require_types.PageVariantTestType.UrlResolver },
298
- {
299
- testType: require_types.PageVariantTestType.FeatureGate,
300
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
301
- },
302
- {
303
- testType: require_types.PageVariantTestType.QueryParam,
304
- queryParam: "esq"
305
- }
306
- ],
307
- widgetMounting: [
308
- {
309
- mountingConfigId: "globalSearchEntryPointDesktop",
310
- widgetConfigId: "globalSearchEntryPointDesktop"
311
- },
312
- {
313
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
314
- widgetConfigId: "globalSearchEntryPointDesktop"
315
- },
316
- {
317
- mountingConfigId: "chatPreviewPLP",
318
- widgetConfigId: "chatPreviewPLP"
319
- },
320
- {
321
- mountingConfigId: "searchResultsEntryPointPLP",
322
- widgetConfigId: "searchResultsEntryPoint"
323
- },
324
- {
325
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
326
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
327
- },
328
- {
329
- mountingConfigId: "searchOverlayHost",
330
- widgetConfigId: "searchOverlayHost"
331
- }
332
- ]
333
- },
334
- {
335
- variantId: "plp-with-search",
336
- variantType: "plp",
337
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
338
- testType: require_types.PageVariantTestType.FeatureGate,
339
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
340
- }],
341
- plpIdExtractor: "url-resolver-plp-id",
342
- widgetMounting: [
343
- {
344
- mountingConfigId: "globalSearchEntryPointDesktop",
345
- widgetConfigId: "globalSearchEntryPointDesktop"
346
- },
347
- {
348
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
349
- widgetConfigId: "globalSearchEntryPointDesktop"
350
- },
351
- {
352
- mountingConfigId: "globalSearchEntryPointMobile",
353
- widgetConfigId: "globalSearchEntryPointMobile"
354
- },
355
- {
356
- mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
357
- widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
358
- },
359
- {
360
- mountingConfigId: "chatPreviewPLP",
361
- widgetConfigId: "chatPreviewPLP"
362
- },
363
- {
364
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
365
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
366
- },
367
- {
368
- mountingConfigId: "searchOverlayHost",
369
- widgetConfigId: "searchOverlayHost"
370
- }
371
- ]
372
- },
373
- {
374
- variantId: "pdp-with-search-bags",
375
- variantType: "pdp",
376
- variantTests: [
377
- { testType: require_types.PageVariantTestType.UrlResolver },
378
- {
379
- testType: require_types.PageVariantTestType.FeatureGate,
380
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
381
- },
382
- {
383
- testType: require_types.PageVariantTestType.InCollection,
384
- collections: ["bags"]
385
- }
386
- ],
387
- productIdExtractor: "url-resolver-product-id",
388
- widgetMounting: [
389
- {
390
- mountingConfigId: "globalSearchEntryPointDesktop",
391
- widgetConfigId: "globalSearchEntryPointDesktop"
392
- },
393
- {
394
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
395
- widgetConfigId: "globalSearchEntryPointDesktop"
396
- },
397
- {
398
- mountingConfigId: "globalSearchEntryPointMobile",
399
- widgetConfigId: "globalSearchEntryPointMobile"
400
- },
401
- {
402
- mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
403
- widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
404
- },
405
- {
406
- mountingConfigId: "topSuggestionBarPDP",
407
- widgetConfigId: "topSuggestionsBarBags"
408
- },
409
- {
410
- mountingConfigId: "bottomSuggestionBarPDP",
411
- widgetConfigId: "bottomSuggestionsBar"
412
- },
413
- {
414
- mountingConfigId: "chatPreviewPDP",
415
- widgetConfigId: "chatPreviewPDP"
416
- },
417
- {
418
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
419
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
420
- },
421
- {
422
- mountingConfigId: "searchOverlayHost",
423
- widgetConfigId: "searchOverlayHost"
424
- }
425
- ]
426
- },
427
- {
428
- variantId: "pdp-with-search",
429
- variantType: "pdp",
430
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
431
- testType: require_types.PageVariantTestType.FeatureGate,
432
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
433
- }],
434
- productIdExtractor: "url-resolver-product-id",
435
- widgetMounting: [
436
- {
437
- mountingConfigId: "globalSearchEntryPointDesktop",
438
- widgetConfigId: "globalSearchEntryPointDesktop"
439
- },
440
- {
441
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
442
- widgetConfigId: "globalSearchEntryPointDesktop"
443
- },
444
- {
445
- mountingConfigId: "globalSearchEntryPointMobile",
446
- widgetConfigId: "globalSearchEntryPointMobile"
447
- },
448
- {
449
- mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
450
- widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
451
- },
452
- {
453
- mountingConfigId: "topSuggestionBarPDP",
454
- widgetConfigId: "topSuggestionsBar"
455
- },
456
- {
457
- mountingConfigId: "bottomSuggestionBarPDP",
458
- widgetConfigId: "bottomSuggestionsBar"
459
- },
460
- {
461
- mountingConfigId: "chatPreviewPDP",
462
- widgetConfigId: "chatPreviewPDP"
463
- },
464
- {
465
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
466
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
467
- },
468
- {
469
- mountingConfigId: "searchOverlayHost",
470
- widgetConfigId: "searchOverlayHost"
471
- }
472
- ]
473
- },
474
- {
475
- variantId: "home-with-search",
476
- variantType: "homepage",
477
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
478
- testType: require_types.PageVariantTestType.FeatureGate,
479
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
480
- }],
481
- widgetMounting: [
482
- {
483
- mountingConfigId: "globalSearchEntryPointDesktopHomepage",
484
- widgetConfigId: "globalSearchEntryPointDesktopHomepage"
485
- },
486
- {
487
- mountingConfigId: "globalSearchEntryPointSmallDesktopHomepage",
488
- widgetConfigId: "globalSearchEntryPointDesktopHomepage"
489
- },
490
- {
491
- mountingConfigId: "globalSearchEntryPointMobileHomepage",
492
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
493
- },
494
- {
495
- mountingConfigId: "searchOverlayHost",
496
- widgetConfigId: "searchOverlayHost"
497
- }
498
- ]
499
- },
500
- {
501
- variantId: "other-with-search",
502
- variantType: "other",
503
- variantTests: [{
504
- testType: require_types.PageVariantTestType.FeatureGate,
505
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
506
- }, { testType: require_types.PageVariantTestType.UrlResolver }],
507
- widgetMounting: [
508
- {
509
- mountingConfigId: "globalSearchEntryPointDesktop",
510
- widgetConfigId: "globalSearchEntryPointDesktop"
511
- },
512
- {
513
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
514
- widgetConfigId: "globalSearchEntryPointDesktop"
515
- },
516
- {
517
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
518
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
519
- },
520
- {
521
- mountingConfigId: "searchOverlayHost",
522
- widgetConfigId: "searchOverlayHost"
523
- }
524
- ]
525
- },
526
- {
527
- variantId: "plpPhoneCases",
528
- variantType: "plp",
529
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
530
- testType: require_types.PageVariantTestType.PlpId,
531
- plpIds: [
532
- "bandolier-crossbody",
533
- "wristlet-phone-cases",
534
- "case-only"
535
- ],
536
- plpIdExtractor: "shopify-collection-id"
537
- }],
538
- plpIdExtractor: "shopify-collection-id",
539
- widgetMounting: [{
540
- mountingConfigId: "imagePromptCardPLP",
541
- widgetConfigId: "imagePromptCardPLPPhoneCases"
542
- }]
543
- },
544
- {
545
- variantId: "plpAccessories",
546
- variantType: "plp",
547
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
548
- testType: require_types.PageVariantTestType.PlpId,
549
- plpIds: ["shop-all-accessories"],
550
- plpIdExtractor: "shopify-collection-id"
551
- }],
552
- plpIdExtractor: "shopify-collection-id",
553
- widgetMounting: [{
554
- mountingConfigId: "imagePromptCardPLP",
555
- widgetConfigId: "imagePromptCardPLPAccessories"
556
- }]
557
- },
558
- {
559
- variantId: "plpBags",
560
- variantType: "plp",
561
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
562
- testType: require_types.PageVariantTestType.PlpId,
563
- plpIds: ["bags"],
564
- plpIdExtractor: "shopify-collection-id"
565
- }],
566
- plpIdExtractor: "shopify-collection-id",
567
- widgetMounting: [{
568
- mountingConfigId: "imagePromptCardPLP",
569
- widgetConfigId: "imagePromptCardPLPBags"
570
- }]
571
- },
572
- {
573
- variantId: "pdpPouches",
574
- variantType: "pdp",
575
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
576
- testType: require_types.PageVariantTestType.InCollection,
577
- collections: ["shop-all-bags-pouches"]
578
- }],
579
- productIdExtractor: "shopify-product-variant-id",
580
- widgetMounting: [
581
- {
582
- mountingConfigId: "topSuggestionBarPDP",
583
- widgetConfigId: "topSuggestionsBarPouches"
584
- },
585
- {
586
- mountingConfigId: "chatPreviewPDP",
587
- widgetConfigId: "chatPreviewPDP"
588
- },
589
- {
590
- mountingConfigId: "bottomSuggestionBarPDP",
591
- widgetConfigId: "bottomSuggestionsBar"
592
- }
593
- ]
594
- },
595
- {
596
- variantId: "pdpBags",
597
- variantType: "pdp",
598
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
599
- testType: require_types.PageVariantTestType.InCollection,
600
- collections: ["bags"]
601
- }],
602
- productIdExtractor: "shopify-product-variant-id",
603
- widgetMounting: [
604
- {
605
- mountingConfigId: "topSuggestionBarPDP",
606
- widgetConfigId: "topSuggestionsBarBags"
607
- },
608
- {
609
- mountingConfigId: "chatPreviewPDP",
610
- widgetConfigId: "chatPreviewPDP"
611
- },
612
- {
613
- mountingConfigId: "bottomSuggestionBarPDP",
614
- widgetConfigId: "bottomSuggestionsBar"
615
- }
616
- ]
617
- },
618
- {
619
- variantId: "plpShopAll",
620
- variantType: "plp",
621
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
622
- testType: require_types.PageVariantTestType.PlpId,
623
- plpIds: ["all"],
624
- plpIdExtractor: "shopify-collection-id"
625
- }],
626
- plpIdExtractor: "shopify-collection-id",
627
- widgetMounting: [{
628
- mountingConfigId: "imagePromptCardPLP",
629
- widgetConfigId: "imagePromptCardPLPShopAll"
630
- }]
631
- },
632
- {
633
- variantId: "plp",
634
- variantType: "plp",
635
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }],
636
- plpIdExtractor: "shopify-collection-id",
637
- widgetMounting: [{
638
- mountingConfigId: "imagePromptCardPLP",
639
- widgetConfigId: "imagePromptCardPLP"
640
- }]
641
- },
642
- {
643
- variantId: "pdp",
644
- variantType: "pdp",
645
- variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }],
646
- productIdExtractor: "shopify-product-variant-id",
647
- widgetMounting: [
648
- {
649
- mountingConfigId: "topSuggestionBarPDP",
650
- widgetConfigId: "topSuggestionsBar"
651
- },
652
- {
653
- mountingConfigId: "chatPreviewPDP",
654
- widgetConfigId: "chatPreviewPDP"
655
- },
656
- {
657
- mountingConfigId: "bottomSuggestionBarPDP",
658
- widgetConfigId: "bottomSuggestionsBar"
659
- }
660
- ]
661
- }
662
- ],
663
- mountingConfigs: {
664
- imagePromptCardPLP: {
665
- mountingConfigId: "imagePromptCardPLP",
666
- containerId: require_divIds.PROMPT_CARD_ID,
667
- testId: require_embedded.PROMPT_CARD_TESTID,
668
- insertionPoint: {
669
- selector: "#AjaxinateLoop",
670
- insertionType: require_contexts.DOMInsertionType.AFTER
671
- },
672
- gridInsertionType: require_contexts.GridInsertionType.FIXED_1,
673
- divCheckSelector: "test",
674
- style: {
675
- gridRow: "2 / 2",
676
- gridColumn: "1 / 1"
677
- }
678
- },
679
- chatPreviewPDP: {
680
- mountingConfigId: "chatPreviewPDP",
681
- containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
682
- testId: require_embedded.CHAT_PREVIEW_TESTID,
683
- insertionPoint: {
684
- selector: ".product-single div",
685
- insertionType: require_contexts.DOMInsertionType.APPEND_CHILD
686
- }
687
- },
688
- topSuggestionBarPDP: {
689
- mountingConfigId: "topSuggestionBarPDP",
690
- containerId: require_divIds.TOP_SUGGESTION_BAR_PDP_ID,
691
- testId: require_embedded.TOP_SUGGESTION_BAR_TESTID,
692
- insertionPoint: {
693
- selector: ".product__price-and-rating",
694
- insertionType: require_contexts.DOMInsertionType.AFTER
695
- },
696
- style: { marginBottom: "16px" }
697
- },
698
- bottomSuggestionBarPDP: {
699
- mountingConfigId: "bottomSuggestionBarPDP",
700
- containerId: require_divIds.BOTTOM_REVIEWS_BAR_ID,
701
- testId: require_embedded.BOTTOM_SUGGESTION_BAR_TESTID,
702
- insertionPoint: {
703
- selector: ".yotpo-smart-topics-panel",
704
- insertionType: require_contexts.DOMInsertionType.AFTER
705
- },
706
- style: { width: "100%" }
707
- },
708
- searchOverlayHost: {
709
- mountingConfigId: "searchOverlayHost",
710
- containerId: require_divIds.SEARCH_OVERLAY_ENTRYPOINT_ID,
711
- testId: require_embedded.SEARCH_OVERLAY_HOST_TESTID,
712
- insertionPoint: {
713
- selector: "body",
714
- insertionType: require_contexts.DOMInsertionType.APPEND_CHILD
715
- },
716
- className: "spiffy-overlay-host"
717
- },
718
- searchResultsEntryPointPLP: {
719
- mountingConfigId: "searchResultsEntryPointPLP",
720
- containerId: require_divIds.SEARCH_RESULTS_ENTRYPOINT_ID,
721
- testId: require_embedded.SEARCH_RESULTS_ENTRYPOINT_TESTID,
722
- insertionPoint: {
723
- selector: ".main-content",
724
- insertionType: require_contexts.DOMInsertionType.BEFORE
725
- },
726
- suppressionSelector: "#MainContent",
727
- className: "search-results-entry-point",
728
- style: { marginBottom: "60px" }
729
- },
730
- searchResultsEntryPointPDP: {
731
- mountingConfigId: "searchResultsEntryPointPDP",
732
- containerId: require_divIds.SEARCH_RESULTS_ENTRYPOINT_ID,
733
- testId: require_embedded.SEARCH_RESULTS_ENTRYPOINT_TESTID,
734
- insertionPoint: {
735
- selector: ".main-content",
736
- insertionType: require_contexts.DOMInsertionType.BEFORE
737
- },
738
- suppressionSelector: "#MainContent",
739
- className: "search-results-entry-point",
740
- style: { marginBottom: "60px" }
741
- },
742
- globalSearchEntryPointDesktopHomepage: {
743
- mountingConfigId: "globalSearchEntryPointDesktopHomepage",
744
- containerId: require_divIds.HOMEPAGE_DESKTOP_GLOBAL_SEARCH_ENTRYPOINT_ID,
745
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
746
- insertionPoint: {
747
- selector: ".menu__item.menu__item--icons .search-popdown.menu__item.menu__item--icon",
748
- insertionType: require_contexts.DOMInsertionType.BEFORE
749
- },
750
- suppressionSelector: ".menu__item.menu__item--icons .search-popdown",
751
- className: "global-entry-desktop-homepage",
752
- style: { margin: "0 5px 0 7px" }
753
- },
754
- globalSearchEntryPointSmallDesktopHomepage: {
755
- mountingConfigId: "globalSearchEntryPointSmallDesktopHomepage",
756
- containerId: require_divIds.HOMEPAGE_TABLET_GLOBAL_SEARCH_ENTRYPOINT_ID,
757
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
758
- insertionPoint: {
759
- selector: "#NavStandard .menu__item.menu__item--icon.menu__item-wishlist",
760
- insertionType: require_contexts.DOMInsertionType.ADJACENT_AFTER_END
761
- },
762
- suppressionSelector: ".search-popdown",
763
- className: "global-entry-small-desktop-homepage",
764
- style: { margin: "0 5px 0 7px" }
765
- },
766
- globalSearchEntryPointMobileHomepage: {
767
- mountingConfigId: "globalSearchEntryPointMobileHomepage",
768
- containerId: require_divIds.HOMEPAGE_MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID,
769
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
770
- insertionPoint: {
771
- selector: ".search-popdown.mobile-menu__button",
772
- insertionType: require_contexts.DOMInsertionType.BEFORE
773
- },
774
- className: "global-entry-mobile-homepage",
775
- style: { margin: "6px" }
776
- },
777
- globalSearchEntryPointDesktop: {
778
- mountingConfigId: "globalSearchEntryPointDesktop",
779
- containerId: require_divIds.GLOBAL_SEARCH_ENTRYPOINT_ID,
780
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
781
- insertionPoint: {
782
- selector: ".menu__item.menu__item--icons .search-popdown.menu__item.menu__item--icon",
783
- insertionType: require_contexts.DOMInsertionType.BEFORE
784
- },
785
- className: "global-entry-desktop",
786
- style: { margin: "0 5px 0 7px" }
787
- },
788
- globalSearchEntryPointSmallDesktop: {
789
- mountingConfigId: "globalSearchEntryPointSmallDesktop",
790
- containerId: require_divIds.TABLET_GLOBAL_SEARCH_ENTYPOINT_ID,
791
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
792
- insertionPoint: {
793
- selector: "#NavStandard .menu__item.menu__item--icon.menu__item-wishlist",
794
- insertionType: require_contexts.DOMInsertionType.ADJACENT_AFTER_END
795
- },
796
- className: "global-entry-small-desktop",
797
- style: { margin: "0 5px 0 7px" }
798
- },
799
- globalSearchEntryPointMobile: {
800
- mountingConfigId: "globalSearchEntryPointMobile",
801
- containerId: require_divIds.MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID,
802
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
803
- insertionPoint: {
804
- selector: ".main-content",
805
- insertionType: require_contexts.DOMInsertionType.BEFORE
806
- },
807
- className: "global-entry-mobile",
808
- style: { margin: "8px" }
809
- },
810
- globalSearchEntryPointOnlyIconMobile: {
811
- mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
812
- containerId: require_divIds.MOBILE_ICON_ONLY_GLOBAL_SEARCH_ENTRYPOINT_ID,
813
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
814
- insertionPoint: {
815
- selector: ".search-popdown.mobile-menu__button",
816
- insertionType: require_contexts.DOMInsertionType.ADJACENT_BEFORE_BEGIN
817
- },
818
- className: "global-entry-mobile-menu-icon",
819
- style: { margin: "6px" }
820
- }
821
- },
822
- widgetConfigs: {
823
- imagePromptCardPLPPhoneCases: {
824
- widgetConfigId: "imagePromptCard",
825
- type: require_types.WidgetType.ImagePromptCard,
826
- url: require_contexts.CdnService.getAssetURL("image-prompt-card-2.png", require_types.OrgShortName.Bandolier),
827
- lightText: true,
828
- title: "What can we help you find today?",
829
- subtitle: [
830
- "Crossbody vs. wristlet—what’s the difference?",
831
- "Can I mix and match straps and wristlets?",
832
- "Does it fit cards or essentials?",
833
- "How protected will my phone be?",
834
- "Do you offer bundles or sets?",
835
- "Can I use this case without a strap?"
836
- ],
837
- staticSuggestionCopies: [
838
- "Will this fit my phone?",
839
- "Crossbody vs. wristlet—what’s the difference?",
840
- "Can I mix and match straps and wristlets?",
841
- "Does it fit cards or essentials?",
842
- "How protected will my phone be?",
843
- "Do you offer bundles or sets?",
844
- "Can I use this case without a strap?"
845
- ],
846
- userQueryButtonConfig: {
847
- variant: "underlineLight",
848
- placeholderText: "Need something special?",
849
- icon: "sendArrow"
850
- }
851
- },
852
- imagePromptCardPLPAccessories: {
853
- widgetConfigId: "imagePromptCard",
854
- type: require_types.WidgetType.ImagePromptCard,
855
- url: require_contexts.CdnService.getAssetURL("image-prompt-card-2.png", require_types.OrgShortName.Bandolier),
856
- lightText: true,
857
- title: "What can we help you find today?",
858
- subtitle: [
859
- "Can I mix and match colors or styles?",
860
- "How do these attach to cases and bags?",
861
- "Are accessories customizable?",
862
- "Can I customize my Bandolier?"
863
- ],
864
- staticSuggestionCopies: [
865
- "Can I mix and match colors or styles?",
866
- "How do these attach to cases and bags?",
867
- "Are accessories customizable?",
868
- "Can I customize my Bandolier?"
869
- ],
870
- userQueryButtonConfig: {
871
- variant: "underlineLight",
872
- placeholderText: "Need something special?",
873
- icon: "sendArrow"
874
- }
875
- },
876
- imagePromptCardPLPBags: {
877
- widgetConfigId: "imagePromptCard",
878
- type: require_types.WidgetType.ImagePromptCard,
879
- url: require_contexts.CdnService.getAssetURL("image-prompt-card-2.png", require_types.OrgShortName.Bandolier),
880
- lightText: true,
881
- title: "What can we help you find today?",
882
- subtitle: [
883
- "Are the bags designed to hold phones?",
884
- "Can I attach a Bandolier strap to this bag?",
885
- "Does it have interior pockets?",
886
- "Is it made of real leather?",
887
- "Can the strap be removed?"
888
- ],
889
- staticSuggestionCopies: [
890
- "Are the bags designed to hold phones?",
891
- "Can I attach a Bandolier strap to this bag?",
892
- "Does it have interior pockets?",
893
- "Is it made of real leather?",
894
- "Can the strap be removed?"
895
- ],
896
- userQueryButtonConfig: {
897
- variant: "underlineLight",
898
- placeholderText: "Need something special?",
899
- icon: "sendArrow"
900
- }
901
- },
902
- imagePromptCardPLPShopAll: {
903
- widgetConfigId: "imagePromptCard",
904
- type: require_types.WidgetType.ImagePromptCard,
905
- url: require_contexts.CdnService.getAssetURL("image-prompt-card-2.png", require_types.OrgShortName.Bandolier),
906
- lightText: true,
907
- title: "What can we help you find today?",
908
- subtitle: [
909
- "Will this fit my phone?",
910
- "How is Bandolier different from other phone cases?",
911
- "What’s your most popular style?",
912
- "What's trending right now?"
913
- ],
914
- staticSuggestionCopies: [
915
- "Will this fit my phone?",
916
- "How is Bandolier different from other phone cases?",
917
- "What’s your most popular style?",
918
- "What's trending right now?"
919
- ],
920
- userQueryButtonConfig: {
921
- variant: "underlineLight",
922
- placeholderText: "Need something special?",
923
- icon: "sendArrow"
924
- }
925
- },
926
- imagePromptCardPLP: {
927
- widgetConfigId: "imagePromptCard",
928
- type: require_types.WidgetType.ImagePromptCard,
929
- url: require_contexts.CdnService.getAssetURL("image-prompt-card-2.png", require_types.OrgShortName.Bandolier),
930
- lightText: true,
931
- title: "What can we help you find today?",
932
- subtitle: [
933
- "Which phone case fits your style?",
934
- "Need a bag for nights out?",
935
- "What’s a chic gift idea?",
936
- "Looking for a travel-ready set?"
937
- ],
938
- staticSuggestionCopies: [
939
- "Which phone case fits your style?",
940
- "Need a bag for nights out?",
941
- "What’s a chic gift idea?",
942
- "Looking for a travel-ready set?"
943
- ],
944
- userQueryButtonConfig: {
945
- variant: "underlineLight",
946
- placeholderText: "Need something special?",
947
- icon: "sendArrow"
948
- }
949
- },
950
- topSuggestionsBar: {
951
- widgetConfigId: "topSuggestionsBar",
952
- contentId: "spiffy-top-suggestion-bar-contents",
953
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
954
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
955
- type: require_types.WidgetType.SuggestionBarV2,
956
- variant: "secondary",
957
- hoverVariant: "secondaryAccent",
958
- buttonBorderRadius: "sm",
959
- animationSpeed: "standard",
960
- buttonTexts: {
961
- default: [
962
- "Can I use this case without a strap? ",
963
- "How many cards fit in the wallet?",
964
- "Summarize Reviews",
965
- "What makes this so versatile?",
966
- "Why are shoppers obsessed with this?"
967
- ],
968
- productSpecific: {
969
- "hailey-side-slot-leather-crossbody-bandolier-black-gold": [
970
- "Summarize the reviews",
971
- "Why is this your best seller?",
972
- "Can you use this case without a strap?",
973
- "How many cards fit in the wallet?",
974
- "What makes this so versatile?"
975
- ],
976
- "mila-magsafe-charging-crossbody-bandolier-black-gold": [
977
- "Summarize the reviews",
978
- "Is this MagSafe Compatible?",
979
- "Does the wallet come off?",
980
- "Why is this your best seller?",
981
- "Can you use this case without a strap?",
982
- "How many cards fit in the wallet?"
983
- ],
984
- "remi-magnet-wallet-crossbody-phone-case-black-gold": [
985
- "Summarize the reviews",
986
- "Is this MagSafe Compatible?",
987
- "Is the wallet removable?",
988
- "Why is this your best seller?",
989
- "Can you use this case without a strap?",
990
- "How many cards fit in the wallet?"
991
- ],
992
- "lily-set-bandolier-black-gold": [
993
- "Summarize the reviews",
994
- "Why is this your best seller?",
995
- "Can you use this case without a strap?",
996
- "How many cards fit in the wallet?"
997
- ]
998
- }
999
- }
1000
- },
1001
- topSuggestionsBarPouches: {
1002
- widgetConfigId: "topSuggestionsBarPouches",
1003
- contentId: "spiffy-top-suggestion-bar-contents",
1004
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1005
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1006
- type: require_types.WidgetType.SuggestionBarV2,
1007
- variant: "secondary",
1008
- hoverVariant: "secondaryAccent",
1009
- buttonBorderRadius: "sm",
1010
- animationSpeed: "standard",
1011
- buttonTexts: { default: [
1012
- "How will this work with my bandolier case?",
1013
- "Can I attach a Bandolier strap to this pouch?",
1014
- "Does it have interior pockets?",
1015
- "Is it made of real leather?"
1016
- ] }
1017
- },
1018
- topSuggestionsBarBags: {
1019
- widgetConfigId: "topSuggestionsBarBags",
1020
- contentId: "spiffy-top-suggestion-bar-contents",
1021
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1022
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1023
- type: require_types.WidgetType.SuggestionBarV2,
1024
- variant: "secondary",
1025
- hoverVariant: "secondaryAccent",
1026
- buttonBorderRadius: "sm",
1027
- animationSpeed: "standard",
1028
- buttonTexts: { default: [
1029
- "Are the bags designed to hold phones?",
1030
- "Can I attach a Bandolier strap to this bag?",
1031
- "Does it have interior pockets?",
1032
- "Is it made of real leather?",
1033
- "Can the strap be removed?"
1034
- ] }
1035
- },
1036
- chatPreviewPDP: {
1037
- widgetConfigId: "chatPreviewPDP",
1038
- type: require_types.WidgetType.ChatPreview,
1039
- variant: "filled",
1040
- addSeparators: false
1041
- },
1042
- bottomSuggestionsBar: {
1043
- widgetConfigId: "bottomSuggestionsBar",
1044
- contentId: "spiffy-bottom-suggestion-bar-contents",
1045
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1046
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1047
- type: require_types.WidgetType.SuggestionBarV2,
1048
- variant: "darkAccent",
1049
- hoverVariant: "secondaryAccent",
1050
- buttonBorderRadius: "sm",
1051
- animationSpeed: "none",
1052
- twoRowsOnMobile: true,
1053
- buttonTexts: { default: [
1054
- "Does this fit my device model?",
1055
- "Is this adjustable?",
1056
- "Why choose this over a bulky bag?",
1057
- "What do reviewers love most?",
1058
- "Can I use this every day?"
1059
- ] }
1060
- },
1061
- globalSearchEntryPointMobile: {
1062
- widgetConfigId: "globalSearchEntryPointMobile",
1063
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1064
- searchZeroStateVariant: "backgroundTertiary",
1065
- searchInputVariant: "standard",
1066
- suggestionButtonConfig: {
1067
- variant: "darkAccent",
1068
- hoverVariant: "secondaryAccent",
1069
- borderRadius: "sm"
1070
- },
1071
- layout: "input",
1072
- searchBoxPlaceholder: "What can I help you find?",
1073
- initialSuggestions: [
1074
- "MagSafe compatible cases",
1075
- "Most popular styles",
1076
- "Remi removable wallet",
1077
- "Mix and match straps and wristlets",
1078
- "Add-on pouches",
1079
- "Best phone cases for travel"
1080
- ],
1081
- usingPortal: true
1082
- },
1083
- globalSearchEntryPointMobileSearchIcon: {
1084
- widgetConfigId: "globalSearchEntryPointMobileSearchIcon",
1085
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1086
- searchZeroStateVariant: "backgroundTertiary",
1087
- searchInputVariant: "standard",
1088
- suggestionButtonConfig: {
1089
- variant: "darkAccent",
1090
- hoverVariant: "secondaryAccent",
1091
- borderRadius: "sm"
1092
- },
1093
- layout: "icon",
1094
- searchIconVariant: "thin",
1095
- searchIconSize: 24,
1096
- searchBoxPlaceholder: "What can I help you find?",
1097
- initialSuggestions: [
1098
- "MagSafe compatible cases",
1099
- "Most popular styles",
1100
- "Remi removable wallet",
1101
- "Mix and match straps and wristlets",
1102
- "Add-on pouches",
1103
- "Best phone cases for travel"
1104
- ],
1105
- usingPortal: true
1106
- },
1107
- globalSearchEntryPointDesktop: {
1108
- widgetConfigId: "globalSearchEntryPointDesktop",
1109
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1110
- searchZeroStateVariant: "backgroundTertiary",
1111
- searchInputVariant: "standard",
1112
- suggestionButtonConfig: {
1113
- variant: "darkAccent",
1114
- hoverVariant: "secondaryAccent",
1115
- borderRadius: "sm"
1116
- },
1117
- layout: "icon",
1118
- searchIconVariant: "thin",
1119
- searchIconSize: 22,
1120
- searchBoxPlaceholder: "What can I help you find?",
1121
- initialSuggestions: [
1122
- "MagSafe compatible cases",
1123
- "Most popular styles",
1124
- "Remi removable wallet",
1125
- "Mix and match straps and wristlets",
1126
- "Add-on pouches",
1127
- "Best phone cases for travel"
1128
- ],
1129
- usingPortal: true
1130
- },
1131
- globalSearchEntryPointDesktopHomepage: {
1132
- widgetConfigId: "globalSearchEntryPointDesktopHomepage",
1133
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1134
- searchZeroStateVariant: "backgroundTertiary",
1135
- searchInputVariant: "standard",
1136
- suggestionButtonConfig: {
1137
- variant: "darkAccent",
1138
- hoverVariant: "secondaryAccent",
1139
- borderRadius: "sm"
1140
- },
1141
- layout: "icon",
1142
- searchIconVariant: "thin",
1143
- searchIconSize: 22,
1144
- searchBoxPlaceholder: "What can I help you find?",
1145
- initialSuggestions: [
1146
- "MagSafe compatible cases",
1147
- "Most popular styles",
1148
- "Remi removable wallet",
1149
- "Mix and match straps and wristlets",
1150
- "Add-on pouches",
1151
- "Best phone cases for travel"
1152
- ],
1153
- usingPortal: true
1154
- },
1155
- globalSearchEntryPointSmallDesktopHomepage: {
1156
- widgetConfigId: "globalSearchEntryPointSmallDesktopHomepage",
1157
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1158
- searchZeroStateVariant: "backgroundTertiary",
1159
- searchInputVariant: "standard",
1160
- suggestionButtonConfig: {
1161
- variant: "darkAccent",
1162
- hoverVariant: "secondaryAccent",
1163
- borderRadius: "sm"
1164
- },
1165
- layout: "icon",
1166
- searchIconVariant: "thin",
1167
- searchIconSize: 22,
1168
- searchBoxPlaceholder: "What can I help you find?",
1169
- initialSuggestions: [
1170
- "MagSafe compatible cases",
1171
- "Most popular styles",
1172
- "Remi removable wallet",
1173
- "Mix and match straps and wristlets",
1174
- "Add-on pouches",
1175
- "Best phone cases for travel"
1176
- ],
1177
- usingPortal: true
1178
- },
1179
- globalSearchEntryPointOnlyIconMobile: {
1180
- widgetConfigId: "globalSearchEntryPointOnlyIconMobile",
1181
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
1182
- searchZeroStateVariant: "backgroundTertiary",
1183
- searchInputVariant: "standard",
1184
- suggestionButtonConfig: {
1185
- variant: "darkAccent",
1186
- hoverVariant: "secondaryAccent",
1187
- borderRadius: "sm"
1188
- },
1189
- layout: "icon",
1190
- searchIconVariant: "thin",
1191
- searchIconSize: 26,
1192
- searchBoxPlaceholder: "What can I help you find?",
1193
- initialSuggestions: [
1194
- "MagSafe compatible cases",
1195
- "Most popular styles",
1196
- "Remi removable wallet",
1197
- "Mix and match straps and wristlets",
1198
- "Add-on pouches",
1199
- "Best phone cases for travel"
1200
- ],
1201
- usingPortal: true
1202
- },
1203
- searchResultsEntryPoint: {
1204
- widgetConfigId: "searchResultsEntryPoint",
1205
- type: require_types.WidgetType.SearchResultsEntryPoint,
1206
- searchBoxPlaceholder: "What can I help you find?",
1207
- searchInputVariant: "standard",
1208
- searchFilterSidebarVariant: "darkButton",
1209
- productGridVariant: "square"
1210
- },
1211
- searchOverlayHost: {
1212
- widgetConfigId: "searchOverlayHost",
1213
- type: require_types.WidgetType.SearchOverlayHost
1214
- }
1215
- }
1216
- });
1217
- const bandolierOrgInfo = {
1218
- shortName: require_types.OrgShortName.Bandolier,
1219
- name: "Bandolier",
1220
- domain: "bandolierstyle.com",
1221
- defaultProductId: "lily-side-slot-leather-crossbody-bandolier-ceci-ivory-floral-gold",
1222
- alwaysEnabledMerchants: true,
1223
- orgUIConfig: bandolierOrgUIConfig,
1224
- orgColors: () => bandolierColors,
1225
- orgPageConfig: bandolierPageConfig
1226
- };
1227
-
1228
- //#endregion
1229
- exports.bandolierOrgInfo = bandolierOrgInfo;
1230
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuZG9saWVyLUI3Ni1PRTc1LmNqcyIsIm5hbWVzIjpbImJhbmRvbGllckNvbG9yczogQ29sb3JNYXBwaW5nIiwiQ29sb3JOYW1lcyIsImRlZmF1bHRPcmdVSUNvbmZpZyIsIk9yZ1Nob3J0TmFtZSIsIkNkblNlcnZpY2UiLCJjb2xvclZhciIsIkN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSIsIkN1c3RvbWVyU2VydmljZVR5cGUiLCJQYWdlVmFyaWFudFRlc3RUeXBlIiwiRmVhdHVyZUdhdGVzIiwiUFJPTVBUX0NBUkRfSUQiLCJQUk9NUFRfQ0FSRF9URVNUSUQiLCJET01JbnNlcnRpb25UeXBlIiwiR3JpZEluc2VydGlvblR5cGUiLCJDSEFUX1BSRVZJRVdfQ09OVEFJTkVSX0lEIiwiQ0hBVF9QUkVWSUVXX1RFU1RJRCIsIlRPUF9TVUdHRVNUSU9OX0JBUl9QRFBfSUQiLCJUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElEIiwiQk9UVE9NX1JFVklFV1NfQkFSX0lEIiwiQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCIsIlNFQVJDSF9PVkVSTEFZX0VOVFJZUE9JTlRfSUQiLCJTRUFSQ0hfT1ZFUkxBWV9IT1NUX1RFU1RJRCIsIlNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfSUQiLCJTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX1RFU1RJRCIsIkhPTUVQQUdFX0RFU0tUT1BfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCIsIkhPTUVQQUdFX1RBQkxFVF9HTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfSUQiLCJIT01FUEFHRV9NT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiVEFCTEVUX0dMT0JBTF9TRUFSQ0hfRU5UWVBPSU5UX0lEIiwiTU9CSUxFX0dMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCIsIk1PQklMRV9JQ09OX09OTFlfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiV2lkZ2V0VHlwZSIsIkNoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIiwiU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJjaGFudHMvYmFuZG9saWVyL2JhbmRvbGllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCT1RUT01fU1VHR0VTVElPTl9CQVJfVEVTVElELFxuICBDSEFUX1BSRVZJRVdfVEVTVElELFxuICBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfVEVTVElELFxuICBQUk9NUFRfQ0FSRF9URVNUSUQsXG4gIFNFQVJDSF9PVkVSTEFZX0hPU1RfVEVTVElELFxuICBTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX1RFU1RJRCxcbiAgVE9QX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbn0gZnJvbSBcInNyYy9jb25maWcvbG9jYXRvcnNcIjtcbmltcG9ydCB7XG4gIEJhc2ljT3JnSW5mb1R5cGUsXG4gIEZlYXR1cmVHYXRlcyxcbiAgT3JnU2hvcnROYW1lLFxufSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVsc1wiO1xuaW1wb3J0IHsgQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24gfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9jaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvblwiO1xuaW1wb3J0IHsgQ2RuU2VydmljZSB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vc2VydmljZS9jZG5TZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUsXG4gIEN1c3RvbWVyU2VydmljZVR5cGUsXG59IGZyb20gXCJzcmMvYXBwbGljYXRpb24vc2VydmljZS9jdXN0b21lclNlcnZpY2UvdHlwZXNcIjtcbmltcG9ydCB7IERPTUluc2VydGlvblR5cGUgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvZG9tTXV0YXRpb25zL2RvbUluc2VydGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IEdyaWRJbnNlcnRpb25UeXBlIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9HcmlkSW5zZXJ0aW9uU2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQk9UVE9NX1JFVklFV1NfQkFSX0lELFxuICBDSEFUX1BSRVZJRVdfQ09OVEFJTkVSX0lELFxuICBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfSUQsXG4gIEhPTUVQQUdFX0RFU0tUT1BfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICBIT01FUEFHRV9NT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICBIT01FUEFHRV9UQUJMRVRfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICBNT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICBNT0JJTEVfSUNPTl9PTkxZX0dMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgUFJPTVBUX0NBUkRfSUQsXG4gIFNFQVJDSF9PVkVSTEFZX0VOVFJZUE9JTlRfSUQsXG4gIFNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfSUQsXG4gIFRBQkxFVF9HTE9CQUxfU0VBUkNIX0VOVFlQT0lOVF9JRCxcbiAgVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCxcbn0gZnJvbSBcInNyYy9jb25maWcvZGl2SWRzXCI7XG5pbXBvcnQgeyBkZWZhdWx0T3JnVUlDb25maWcgfSBmcm9tIFwic3JjL21lcmNoYW50cy9kZWZhdWx0XCI7XG5pbXBvcnQge1xuICBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgQ29sb3JNYXBwaW5nLFxuICBDb2xvck5hbWVzLFxuICBjb2xvclZhcixcbiAgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsXG4gIE9yZ1BhZ2VDb25maWcsXG4gIE9yZ1VJQ29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICBXaWRnZXRUeXBlLFxuICBTZWFyY2hPdmVybGF5SG9zdFdpZGdldENvbmZpZyxcbn0gZnJvbSBcInNyYy9jb250ZXh0cy90eXBlc1wiO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyB9IGZyb20gXCJzcmMvdHlwZXMvc3VnZ2VzdGlvbkJhclYyLXR5cGVzXCI7XG5cbmNvbnN0IGJhbmRvbGllckNvbG9yczogQ29sb3JNYXBwaW5nID0ge1xuICBbQ29sb3JOYW1lcy5UZXh0UHJpbWFyeV06IFwiIzAwMDAwMFwiLFxuICBbQ29sb3JOYW1lcy5UZXh0U2Vjb25kYXJ5XTogXCIjNkM2QzZDXCIsXG4gIFtDb2xvck5hbWVzLlRleHRBY2NlbnRdOiBcIiNBRjk4NkVcIixcbiAgW0NvbG9yTmFtZXMuVGV4dExpbmtdOiBcIiMwMDAwMDBcIixcbiAgW0NvbG9yTmFtZXMuVGV4dExpZ2h0XTogXCIjRkZGRkZGXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRQcmltYXJ5XTogXCIjMDAwMDAwXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnldOiBcIiNFQ0VDRUNcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeURhcmtdOiBcIiNFMkUyRTJcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFRlcnRpYXJ5XTogXCIjRUNFQ0VDXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmREYXJrXTogXCIjMDAwMDAwXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRMaWdodF06IFwiI0ZGRkZGRlwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2F0dXJhdGVkXTogXCIjQ0NDQ0NDXCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlckxpZ2h0XTogXCIjRUNFQ0VDXCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlck1lZGl1bV06IFwiI0VBRUFFQVwiLFxuICBbQ29sb3JOYW1lcy5Cb3JkZXJEYXJrXTogXCIjNkM2QzZDXCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlck91dGxpbmVdOiBcIiMwMDAwMDBcIixcbiAgW0NvbG9yTmFtZXMuQWNjZW50UHJpbWFyeV06IFwiI0FGOTg2RVwiLFxuICBbQ29sb3JOYW1lcy5BY2NlbnRTZWNvbmRhcnldOiBcIiNEQ0I0QUVcIixcbn07XG5cbmNvbnN0IGJhbmRvbGllck9yZ1VJQ29uZmlnID0gKCk6IE9yZ1VJQ29uZmlnID0+IHtcbiAgY29uc3QgZGVmYXVsdEJhbmRvbGllck9yZ0NvbmZpZyA9IGRlZmF1bHRPcmdVSUNvbmZpZyhPcmdTaG9ydE5hbWUuQmFuZG9saWVyKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcsXG4gICAgbWVyY2hhbnRWYXJpYW50U2V0dGluZ3M6IHtcbiAgICAgIGR5bmFtaWNWYXJpYW50czoge1xuICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgcmVmcmVzaEludGVydmFsOiA0MDAsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdE1lc3NhZ2VDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcuY2hhdE1lc3NhZ2VDb25maWcsXG4gICAgICBhc3Npc3RhbnRDaGF0VGl0bGU6IFwiQXNrIE1hZ2dpZVwiLFxuICAgICAgdmFyaWFudDogXCJhY2NlbnRcIixcbiAgICB9LFxuICAgIGNoYXRIZWFkZXI6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcuY2hhdEhlYWRlcixcbiAgICAgIGltYWdlU3JjOiBDZG5TZXJ2aWNlLmdldEFzc2V0VVJMKFxuICAgICAgICBcImJhbmRvbGllci1sb2dvLnN2Z1wiLFxuICAgICAgICBPcmdTaG9ydE5hbWUuQmFuZG9saWVyXG4gICAgICApLFxuICAgIH0sXG4gICAgY2hhdFByZXZpZXdDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcuY2hhdFByZXZpZXdDb25maWchLFxuICAgICAgYnV0dG9uVGV4dENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLlRleHRMaW5rKSxcbiAgICAgIGJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5KSxcbiAgICAgIGJ1dHRvbkJhY2tncm91bmRIb3ZlckNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnlEYXJrKSxcbiAgICAgIGJ1dHRvblRleHRIb3ZlckNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLlRleHRMaW5rKSxcbiAgICAgIGljb25GaWxsQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dEFjY2VudCksXG4gICAgICBjb3BpZXM6IHtcbiAgICAgICAgcGRwOiBbXG4gICAgICAgICAgXCJkb2VzIHRoaXMgZml0IG15IGRldmljZSBtb2RlbD9cIixcbiAgICAgICAgICBcImlzIHRoaXMgYWRqdXN0YWJsZT9cIixcbiAgICAgICAgICBcIndoeSBjaG9vc2UgdGhpcyBvdmVyIGEgYnVsa3kgYmFnP1wiLFxuICAgICAgICAgIFwid2hhdCBkbyByZXZpZXdlcnMgbG92ZSBtb3N0P1wiLFxuICAgICAgICAgIFwiY2FuIEkgdXNlIHRoaXMgZXZlcnkgZGF5P1wiLFxuICAgICAgICBdLFxuICAgICAgICBwbHA6IFtdLFxuICAgICAgfSxcbiAgICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgICAuLi5kZWZhdWx0QmFuZG9saWVyT3JnQ29uZmlnLmNoYXRQcmV2aWV3Q29uZmlnIS5oZWFkZXJDb25maWcsXG4gICAgICB9LFxuICAgICAgZm9vdGVyQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcuY2hhdFByZXZpZXdDb25maWchLmZvb3RlckNvbmZpZyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmbG9hdGluZ0VudHJ5cG9pbnRDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcuZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnISxcbiAgICAgIHNob3dPcHRpb246IFwiYWx3YXlzXCIsXG4gICAgICBleHBhbmRlZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmREYXJrKSxcbiAgICAgIGV4cGFuc2lvblRleHQ6IHtcbiAgICAgICAgcGRwOiBcIkNvdWxkIHRoaXMgYmUgeW91ciBwZXJmZWN0IGV2ZXJ5ZGF5IGVzc2VudGlhbD9cIixcbiAgICAgICAgcGxwOiBcIldoYXQgY2FuIHdlIGhlbHAgeW91IGZpbmQgdG9kYXk/XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcHJvZHVjdENhcmRDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcucHJvZHVjdENhcmRDb25maWchLFxuICAgIH0sXG4gICAgcGFnZUNhcmRDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcucGFnZUNhcmRDb25maWchLFxuICAgICAgdmFyaWFudDogXCJmaWxsZWRcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJsaWZ0XCIsXG4gICAgICBpY29uVmFyaWFudDogXCJwcmltYXJ5XCIsXG4gICAgfSxcbiAgICBwcm9kdWN0UmV2aWV3Q29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0QmFuZG9saWVyT3JnQ29uZmlnLnByb2R1Y3RSZXZpZXdDb25maWchLFxuICAgIH0sXG4gICAgd2VsY29tZVNlY3Rpb25Db25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRCYW5kb2xpZXJPcmdDb25maWcud2VsY29tZVNlY3Rpb25Db25maWchLFxuICAgICAgdGl0bGU6IFwiV2VsY29tZSB0byBCYW5kb2xpZXIgQUkhXCIsXG4gICAgICBjb2xvclZhcmlhbnQ6IFwiYWNjZW50XCIsXG4gICAgICBzdWJ0aXRsZTpcbiAgICAgICAgXCJIZXkgdGhlcmUuIEnigJltIE1hZ2dpZSwgeW91ciBCYW5kb2xpZXIgc2hvcHBpbmcgYXNzaXN0YW50LiBJ4oCZbSBoZXJlIHRvIGhlbHAgeW91IGZpbmQgeW91ciBwZXJmZWN0IEJhbmRvbGllcuKAlGVmZm9ydGxlc3NseSBzdHlsaXNoLCBoYW5kcy1mcmVlLCBhbmQgcmVhZHkgZm9yIHdoZXJldmVyIGxpZmUgdGFrZXMgeW91LlwiLFxuICAgIH0sXG4gICAgY3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb246IHtcbiAgICAgIGludGVncmF0aW9uTW9kZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlLnNpbXBsZSxcbiAgICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlLmdvcmdpYXMsXG4gICAgICB1c2VVbmlmaWVkQnV0dG9uOiB0cnVlLFxuICAgIH0sXG4gICAgc2VhcmNoQ29uZmlnOiB7XG4gICAgICBlbmFibGVHbG9iYWxTZWFyY2g6IHRydWUsXG4gICAgICByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw6XG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYmFuZG9saWVyc3R5bGUuY29tL3BhZ2VzL3NlYXJjaC1wYWdlXCIsXG4gICAgICBzZWFyY2hGaWx0ZXJDb25maWc6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcklkOiBcInByaWNlXCIsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IFwiUHJpY2VcIixcbiAgICAgICAgICB0eXBlOiBcInByaWNlXCIsXG4gICAgICAgICAgYnVja2V0U2l6ZTogMTAwLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVySWQ6IFwibWF0ZXJpYWxcIixcbiAgICAgICAgICBkaXNwbGF5TmFtZTogXCJNYXRlcmlhbHNcIixcbiAgICAgICAgICBhdHRyaWJ1dGU6IFwibWF0ZXJpYWxzXCIsXG4gICAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgICAgc29ydGluZzoge1xuICAgICAgICAgICAgdHlwZTogXCJwcm9kdWN0Q291bnRcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVySWQ6IFwiZGV2aWNlc1wiLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIlBob25lIHNpemVcIixcbiAgICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgICBhdHRyaWJ1dGU6IFwiZGV2aWNlc1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwicHJvZHVjdENvdW50XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcklkOiBcImNvbG9yc1wiLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIkNvbG9yXCIsXG4gICAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgICAgYXR0cmlidXRlOiBcImNvbG9yc1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwicHJvZHVjdENvdW50XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcklkOiBcImR5bmFtaWNcIixcbiAgICAgICAgICBkaXNwbGF5TmFtZTogXCJcIixcbiAgICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgICBhdHRyaWJ1dGU6IFwiZHluYW1pY1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwicHJvZHVjdENvdW50XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtZXJjaGFudE92ZXJyaWRlQ3NzOiBgXG4gICAgICAuc3BpZmZ5LWhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdETSBTYW5zJywgJ1BvcHBpbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1oZWFkbGluZS1wbGFjZWhvbGRlcjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LWZhbWlseTogJ0RNIFNhbnMnLCAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktc3Rhci1yYXRpbmctY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1iYWNrZ3JvdW5kLWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1zdGFyLXJhdGluZy1zdGFyIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1hY2NlbnQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1jYXJkLXRleHQtY29sb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXZpZXctc291cmNlLWljb24td3JhcHBlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNwaWZmeS1jb2xvcnMtYWNjZW50LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXZpZXctc291cmNlLWljb24td3JhcHBlciBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtbGlnaHQpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1mbG9hdGluZy1idXR0b24tcG9zaXRpb24ge1xuICAgICAgICB0b3A6IDE1MHB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XG4gICAgICAgICAgdG9wOiAxMDBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBbZGF0YS10ZXN0aWQ9XCJmbG9hdGluZy1jaGF0LXNoYWRvdy1kb20tY29udGFpbmVyXCJdIHtcbiAgICAgICAgei1pbmRleDogMjE0NzQ4MzY0NyAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LWhlYWRlci1jbG9zZS1idXR0b24gIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktbW9kYWwtc2hlZXQtZm9vdGVyIC5zcGlmZnktc3VnZ2VzdGlvbi1idXR0b24tcXVlc3Rpb24tY2xhc3Mgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpbmspICFpbXBvcnRhbnQ7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpbmspICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWNoYXQtaGVhZGVyLWNvbnRhaW5lciBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1pbWFnZS1wcm9tcHQtY2FyZC1jb250YWluZXIgLnNwaWZmeS1zdWdnZXN0aW9uLWJhci1yb3cgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy1iYWNrZ3JvdW5kLXNlY29uZGFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saW5rKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWltYWdlLXByb21wdC1jYXJkLWNvbnRhaW5lciAuc3BpZmZ5LXN1Z2dlc3Rpb24tYmFyLXJvdyBidXR0b24gc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1hY2NlbnQtcHJpbWFyeSkgIWltcG9ydGFudDsgIFxuICAgICAgICBzdHJva2U6IHZhcigtLXNwaWZmeS1jb2xvcnMtYWNjZW50LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWltYWdlLXByb21wdC1jYXJkLWNvbnRhaW5lciAuc3BpZmZ5LXN1Z2dlc3Rpb24tYmFyLXJvdyBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5LWRhcmspICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWNoYXQtcHJldmlldy1mb290ZXItY29udGFpbmVyIGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1zZWNvbmRhcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWNoYXQtcHJldmlldy1mb290ZXItY29udGFpbmVyIGJ1dHRvbiBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saW5rKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXByZXZpZXctZm9vdGVyLWNvbnRhaW5lciBidXR0b246aG92ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGluaykgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktY2hhdC1wcmV2aWV3LWZvb3Rlci1jb250YWluZXIgYnV0dG9uIHN2ZyB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNwaWZmeS1jb2xvcnMtYWNjZW50LXByaW1hcnkpO1xuICAgICAgICBzdHJva2U6IHZhcigtLXNwaWZmeS1jb2xvcnMtYWNjZW50LXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXByZXZpZXctZm9vdGVyLWNvbnRhaW5lciBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5LWRhcmspO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXByZXZpZXctZm9vdGVyLWNvbnRhaW5lciBidXR0b246aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1hY2NlbnQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1zcGlmZnktY29sb3JzLWFjY2VudC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1iYWNrLXRvLXJlc3VsdHMtYnV0dG9uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saWdodCk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWJhY2stdG8tcmVzdWx0cy1idXR0b24gc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy1hY2NlbnQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1zcGlmZnktY29sb3JzLWFjY2VudC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICAgICNzcGlmZnktYWktcHJvbXB0LWNhcmQge1xuICAgICAgICAgIGdyaWQtYXJlYTogMiAvIDEgLyAyIC8gLTEgIWltcG9ydGFudDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzNTBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5zcGlmZnktaW1hZ2UtcHJvbXB0LWNhcmQtY29udGFpbmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDAlLCAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgIFNlYXJjaCBMYXlvdXQgJiBWaXNpYmlsaXR5IFJ1bGVzXG4gICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuICAgICAgXG4gICAgICAuc2VhcmNoLXJlc3VsdHMtZW50cnktcG9pbnQgfiAuc2VjdGlvbi1wYWRkaW5nLnRleHQtc2VjdGlvbi50ZXh0LWRhcmsge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgfVxuXG4gICAgICAvKiAtLSBSdWxlcyB0byBoaWRlIG9yaWdpbmFsIHNpdGUgZWxlbWVudHMgLS0gKi9cbiAgICAgIC5nbG9iYWwtZW50cnktZGVza3RvcCArIC5qcy1zZWFyY2gtdHJpZ2dlci5zZWFyY2gsXG4gICAgICAuZ2xvYmFsLWVudHJ5LXNtYWxsLWRlc2t0b3AgKyAuanMtc2VhcmNoLXRyaWdnZXIuc2VhcmNoLFxuICAgICAgLmdsb2JhbC1lbnRyeS1kZXNrdG9wICsgLnNlYXJjaC1wb3Bkb3duLFxuICAgICAgLmdsb2JhbC1lbnRyeS1zbWFsbC1kZXNrdG9wICsgLnNlYXJjaC1wb3Bkb3duLFxuICAgICAgI3NwaWZmeS1haS1nbG9iYWwtc2VhcmNoLWVudHJ5cG9pbnQtbW9iaWxlLWljb24tb25seSArIC5zZWFyY2gtcG9wZG93bixcbiAgICAgICNzcGlmZnktYWktZ2xvYmFsLXNlYXJjaC1lbnRyeXBvaW50LW1vYmlsZS1ob21lcGFnZSArIC5zZWFyY2gtcG9wZG93bixcbiAgICAgIC5nbG9iYWwtZW50cnktZGVza3RvcCArIC5tYWluLWNvbnRlbnQsXG4gICAgICAuZ2xvYmFsLWVudHJ5LXNtYWxsLWRlc2t0b3AgKyAubWFpbi1jb250ZW50LFxuICAgICAgLnNlYXJjaC1yZXN1bHRzLWVudHJ5LXBvaW50ICsgLnNob3BpZnktc2VjdGlvbiB7IFxuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC8vIC5zZWFyY2gtcmVzdWx0cy1uby1vcCB+ICoge1xuICAgICAgLy8gICB6LWluZGV4OiAwO1xuICAgICAgLy8gfVxuXG4gICAgICAjc3BpZmZ5LWFpLWdsb2JhbC1zZWFyY2gtZW50cnlwb2ludC1tb2JpbGUuZ2xvYmFsLWVudHJ5LW1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgI3NwaWZmeS1haS1nbG9iYWwtc2VhcmNoLWVudHJ5cG9pbnQtbW9iaWxlLmdsb2JhbC1lbnRyeS1tb2JpbGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjc3BpZmZ5LWFpLWdsb2JhbC1zZWFyY2gtZW50cnlwb2ludC1tb2JpbGUtaWNvbi1vbmx5IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfSBcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAjc3BpZmZ5LWFpLWdsb2JhbC1zZWFyY2gtZW50cnlwb2ludC5nbG9iYWwtZW50cnktZGVza3RvcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgI3NwaWZmeS1haS1nbG9iYWwtc2VhcmNoLWVudHJ5cG9pbnQtdGFibGV0Lmdsb2JhbC1lbnRyeS1zbWFsbC1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICNzcGlmZnktYWktZ2xvYmFsLXNlYXJjaC1lbnRyeXBvaW50LW1vYmlsZS5nbG9iYWwtZW50cnktbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgfTtcbn07XG5cbmNvbnN0IGJhbmRvbGllclBhZ2VDb25maWcgPSAoKTogT3JnUGFnZUNvbmZpZyA9PiAoe1xuICBwYWdlVmFyaWFudHM6IFtcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwic2VhcmNoLXJlc3VsdHNcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInNlYXJjaFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuUXVlcnlQYXJhbSxcbiAgICAgICAgICBxdWVyeVBhcmFtOiBcImVzcVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3BcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hSZXN1bHRzRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHAtd2l0aC1zZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBscFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wbHAtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3BcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVTZWFyY2hJY29uXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVNlYXJjaEljb25cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwZHAtd2l0aC1zZWFyY2gtYmFnc1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcImJhZ3NcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRTbWFsbERlc2t0b3BcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlU2VhcmNoSWNvblwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVTZWFyY2hJY29uXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckJhZ3NcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE9ubHlJY29uTW9iaWxlXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE9ubHlJY29uTW9iaWxlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInNlYXJjaE92ZXJsYXlIb3N0XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwLXdpdGgtc2VhcmNoXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzR2xvYmFsU2VhcmNoRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3BcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVTZWFyY2hJY29uXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVNlYXJjaEljb25cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRPbmx5SWNvbk1vYmlsZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRPbmx5SWNvbk1vYmlsZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNlYXJjaE92ZXJsYXlIb3N0XCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcImhvbWUtd2l0aC1zZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcImhvbWVwYWdlXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3BIb21lcGFnZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wSG9tZXBhZ2VcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcEhvbWVwYWdlXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3BIb21lcGFnZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlSG9tZXBhZ2VcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJvdGhlci13aXRoLXNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwib3RoZXJcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlcixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRTbWFsbERlc2t0b3BcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHBQaG9uZUNhc2VzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlBscElkLFxuICAgICAgICAgIHBscElkczogW1wiYmFuZG9saWVyLWNyb3NzYm9keVwiLCBcIndyaXN0bGV0LXBob25lLWNhc2VzXCIsIFwiY2FzZS1vbmx5XCJdLFxuICAgICAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQUGhvbmVDYXNlc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHBBY2Nlc3Nvcmllc1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5QbHBJZCxcbiAgICAgICAgICBwbHBJZHM6IFtcInNob3AtYWxsLWFjY2Vzc29yaWVzXCJdLFxuICAgICAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQQWNjZXNzb3JpZXNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGxwQmFnc1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5QbHBJZCxcbiAgICAgICAgICBwbHBJZHM6IFtcImJhZ3NcIl0sXG4gICAgICAgICAgcGxwSWRFeHRyYWN0b3I6IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGxwSWRFeHRyYWN0b3I6IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRQTFBCYWdzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFBvdWNoZXNcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJzaG9wLWFsbC1iYWdzLXBvdWNoZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC12YXJpYW50LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJQb3VjaGVzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcEJhZ3NcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJiYWdzXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyQmFnc1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHBTaG9wQWxsXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlBscElkLFxuICAgICAgICAgIHBscElkczogW1wiYWxsXCJdLFxuICAgICAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkUExQU2hvcEFsbFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBscFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQIH1dLFxuICAgICAgcGxwSWRFeHRyYWN0b3I6IFwic2hvcGlmeS1jb2xsZWN0aW9uLWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRQTFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCB9XSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG4gIG1vdW50aW5nQ29uZmlnczoge1xuICAgIGltYWdlUHJvbXB0Q2FyZFBMUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRQTFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBQUk9NUFRfQ0FSRF9JRCxcbiAgICAgIHRlc3RJZDogUFJPTVBUX0NBUkRfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiI0FqYXhpbmF0ZUxvb3BcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BRlRFUixcbiAgICAgIH0sXG4gICAgICBncmlkSW5zZXJ0aW9uVHlwZTogR3JpZEluc2VydGlvblR5cGUuRklYRURfMSxcbiAgICAgIGRpdkNoZWNrU2VsZWN0b3I6IFwidGVzdFwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZ3JpZFJvdzogXCIyIC8gMlwiLFxuICAgICAgICBncmlkQ29sdW1uOiBcIjEgLyAxXCIsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjaGF0UHJldmlld1BEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgY29udGFpbmVySWQ6IENIQVRfUFJFVklFV19DT05UQUlORVJfSUQsXG4gICAgICB0ZXN0SWQ6IENIQVRfUFJFVklFV19URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIucHJvZHVjdC1zaW5nbGUgZGl2XCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQVBQRU5EX0NISUxELFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgdG9wU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCxcbiAgICAgIHRlc3RJZDogVE9QX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi5wcm9kdWN0X19wcmljZS1hbmQtcmF0aW5nXCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQUZURVIsXG4gICAgICB9LFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiBcIjE2cHhcIixcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGJvdHRvbVN1Z2dlc3Rpb25CYXJQRFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgY29udGFpbmVySWQ6IEJPVFRPTV9SRVZJRVdTX0JBUl9JRCxcbiAgICAgIHRlc3RJZDogQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi55b3Rwby1zbWFydC10b3BpY3MtcGFuZWxcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BRlRFUixcbiAgICAgIH0sXG4gICAgICBzdHlsZToge1xuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2VhcmNoT3ZlcmxheUhvc3Q6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgIGNvbnRhaW5lcklkOiBTRUFSQ0hfT1ZFUkxBWV9FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBTRUFSQ0hfT1ZFUkxBWV9IT1NUX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcImJvZHlcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BUFBFTkRfQ0hJTEQsXG4gICAgICB9LFxuICAgICAgY2xhc3NOYW1lOiBcInNwaWZmeS1vdmVybGF5LWhvc3RcIixcbiAgICB9LFxuICAgIHNlYXJjaFJlc3VsdHNFbnRyeVBvaW50UExQOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInNlYXJjaFJlc3VsdHNFbnRyeVBvaW50UExQXCIsXG4gICAgICBjb250YWluZXJJZDogU0VBUkNIX1JFU1VMVFNfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogU0VBUkNIX1JFU1VMVFNfRU5UUllQT0lOVF9URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIubWFpbi1jb250ZW50XCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQkVGT1JFLFxuICAgICAgfSxcbiAgICAgIHN1cHByZXNzaW9uU2VsZWN0b3I6IFwiI01haW5Db250ZW50XCIsXG4gICAgICBjbGFzc05hbWU6IFwic2VhcmNoLXJlc3VsdHMtZW50cnktcG9pbnRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCI2MHB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQRFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQRFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi5tYWluLWNvbnRlbnRcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5CRUZPUkUsXG4gICAgICB9LFxuICAgICAgc3VwcHJlc3Npb25TZWxlY3RvcjogXCIjTWFpbkNvbnRlbnRcIixcbiAgICAgIGNsYXNzTmFtZTogXCJzZWFyY2gtcmVzdWx0cy1lbnRyeS1wb2ludFwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiBcIjYwcHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcEhvbWVwYWdlOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wSG9tZXBhZ2VcIixcbiAgICAgIGNvbnRhaW5lcklkOiBIT01FUEFHRV9ERVNLVE9QX0dMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOlxuICAgICAgICAgIFwiLm1lbnVfX2l0ZW0ubWVudV9faXRlbS0taWNvbnMgLnNlYXJjaC1wb3Bkb3duLm1lbnVfX2l0ZW0ubWVudV9faXRlbS0taWNvblwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkJFRk9SRSxcbiAgICAgIH0sXG4gICAgICBzdXBwcmVzc2lvblNlbGVjdG9yOiBcIi5tZW51X19pdGVtLm1lbnVfX2l0ZW0tLWljb25zIC5zZWFyY2gtcG9wZG93blwiLFxuICAgICAgY2xhc3NOYW1lOiBcImdsb2JhbC1lbnRyeS1kZXNrdG9wLWhvbWVwYWdlXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW46IFwiMCA1cHggMCA3cHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50U21hbGxEZXNrdG9wSG9tZXBhZ2U6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcEhvbWVwYWdlXCIsXG4gICAgICBjb250YWluZXJJZDogSE9NRVBBR0VfVEFCTEVUX0dMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOlxuICAgICAgICAgIFwiI05hdlN0YW5kYXJkIC5tZW51X19pdGVtLm1lbnVfX2l0ZW0tLWljb24ubWVudV9faXRlbS13aXNobGlzdFwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFESkFDRU5UX0FGVEVSX0VORCxcbiAgICAgIH0sXG4gICAgICBzdXBwcmVzc2lvblNlbGVjdG9yOiBcIi5zZWFyY2gtcG9wZG93blwiLFxuICAgICAgY2xhc3NOYW1lOiBcImdsb2JhbC1lbnRyeS1zbWFsbC1kZXNrdG9wLWhvbWVwYWdlXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW46IFwiMCA1cHggMCA3cHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlSG9tZXBhZ2U6IHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgYXMgZ2xvYmFsU2VhcmNoRW50cnlQb2ludE9ubHlJY29uTW9iaWxlIGV4Y2VwdCB0aGUgY2xhc3MgaXMgZGlmZmVyZW50IGFsbG93aW5nIHVzIHRvIG5vdCBoaWRlIGl0IHdoZW4gdGhlIHNjcmVlbnNpemUgaXMgc21hbGwuIEl0J3MgdXNlZCBvbiBob21lcGFnZSBhbmQgJ290aGVyJyBwYWdlc1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlSG9tZXBhZ2VcIixcbiAgICAgIGNvbnRhaW5lcklkOiBIT01FUEFHRV9NT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiLnNlYXJjaC1wb3Bkb3duLm1vYmlsZS1tZW51X19idXR0b25cIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5CRUZPUkUsXG4gICAgICB9LFxuICAgICAgY2xhc3NOYW1lOiBcImdsb2JhbC1lbnRyeS1tb2JpbGUtaG9tZXBhZ2VcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpbjogXCI2cHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcFwiLFxuICAgICAgY29udGFpbmVySWQ6IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOlxuICAgICAgICAgIFwiLm1lbnVfX2l0ZW0ubWVudV9faXRlbS0taWNvbnMgLnNlYXJjaC1wb3Bkb3duLm1lbnVfX2l0ZW0ubWVudV9faXRlbS0taWNvblwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkJFRk9SRSxcbiAgICAgIH0sXG4gICAgICBjbGFzc05hbWU6IFwiZ2xvYmFsLWVudHJ5LWRlc2t0b3BcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpbjogXCIwIDVweCAwIDdweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdsb2JhbFNlYXJjaEVudHJ5UG9pbnRTbWFsbERlc2t0b3A6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFNtYWxsRGVza3RvcFwiLFxuICAgICAgY29udGFpbmVySWQ6IFRBQkxFVF9HTE9CQUxfU0VBUkNIX0VOVFlQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOlxuICAgICAgICAgIFwiI05hdlN0YW5kYXJkIC5tZW51X19pdGVtLm1lbnVfX2l0ZW0tLWljb24ubWVudV9faXRlbS13aXNobGlzdFwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFESkFDRU5UX0FGVEVSX0VORCxcbiAgICAgIH0sXG4gICAgICBjbGFzc05hbWU6IFwiZ2xvYmFsLWVudHJ5LXNtYWxsLWRlc2t0b3BcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpbjogXCIwIDVweCAwIDdweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGU6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgY29udGFpbmVySWQ6IE1PQklMRV9HTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfSUQsXG4gICAgICB0ZXN0SWQ6IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIubWFpbi1jb250ZW50XCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQkVGT1JFLFxuICAgICAgfSxcbiAgICAgIGNsYXNzTmFtZTogXCJnbG9iYWwtZW50cnktbW9iaWxlXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW46IFwiOHB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZ2xvYmFsU2VhcmNoRW50cnlQb2ludE9ubHlJY29uTW9iaWxlOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRPbmx5SWNvbk1vYmlsZVwiLFxuICAgICAgY29udGFpbmVySWQ6IE1PQklMRV9JQ09OX09OTFlfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiLnNlYXJjaC1wb3Bkb3duLm1vYmlsZS1tZW51X19idXR0b25cIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BREpBQ0VOVF9CRUZPUkVfQkVHSU4sXG4gICAgICB9LFxuICAgICAgY2xhc3NOYW1lOiBcImdsb2JhbC1lbnRyeS1tb2JpbGUtbWVudS1pY29uXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBtYXJnaW46IFwiNnB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHdpZGdldENvbmZpZ3M6IHtcbiAgICBpbWFnZVByb21wdENhcmRQTFBQaG9uZUNhc2VzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkLFxuICAgICAgdXJsOiBDZG5TZXJ2aWNlLmdldEFzc2V0VVJMKFxuICAgICAgICBcImltYWdlLXByb21wdC1jYXJkLTIucG5nXCIsXG4gICAgICAgIE9yZ1Nob3J0TmFtZS5CYW5kb2xpZXJcbiAgICAgICksXG4gICAgICBsaWdodFRleHQ6IHRydWUsXG4gICAgICB0aXRsZTogXCJXaGF0IGNhbiB3ZSBoZWxwIHlvdSBmaW5kIHRvZGF5P1wiLFxuICAgICAgc3VidGl0bGU6IFtcbiAgICAgICAgXCJDcm9zc2JvZHkgdnMuIHdyaXN0bGV04oCUd2hhdOKAmXMgdGhlIGRpZmZlcmVuY2U/XCIsXG4gICAgICAgIFwiQ2FuIEkgbWl4IGFuZCBtYXRjaCBzdHJhcHMgYW5kIHdyaXN0bGV0cz9cIixcbiAgICAgICAgXCJEb2VzIGl0IGZpdCBjYXJkcyBvciBlc3NlbnRpYWxzP1wiLFxuICAgICAgICBcIkhvdyBwcm90ZWN0ZWQgd2lsbCBteSBwaG9uZSBiZT9cIixcbiAgICAgICAgXCJEbyB5b3Ugb2ZmZXIgYnVuZGxlcyBvciBzZXRzP1wiLFxuICAgICAgICBcIkNhbiBJIHVzZSB0aGlzIGNhc2Ugd2l0aG91dCBhIHN0cmFwP1wiLFxuICAgICAgXSxcbiAgICAgIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IFtcbiAgICAgICAgXCJXaWxsIHRoaXMgZml0IG15IHBob25lP1wiLFxuICAgICAgICBcIkNyb3NzYm9keSB2cy4gd3Jpc3RsZXTigJR3aGF04oCZcyB0aGUgZGlmZmVyZW5jZT9cIixcbiAgICAgICAgXCJDYW4gSSBtaXggYW5kIG1hdGNoIHN0cmFwcyBhbmQgd3Jpc3RsZXRzP1wiLFxuICAgICAgICBcIkRvZXMgaXQgZml0IGNhcmRzIG9yIGVzc2VudGlhbHM/XCIsXG4gICAgICAgIFwiSG93IHByb3RlY3RlZCB3aWxsIG15IHBob25lIGJlP1wiLFxuICAgICAgICBcIkRvIHlvdSBvZmZlciBidW5kbGVzIG9yIHNldHM/XCIsXG4gICAgICAgIFwiQ2FuIEkgdXNlIHRoaXMgY2FzZSB3aXRob3V0IGEgc3RyYXA/XCIsXG4gICAgICBdLFxuICAgICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwidW5kZXJsaW5lTGlnaHRcIixcbiAgICAgICAgcGxhY2Vob2xkZXJUZXh0OiBcIk5lZWQgc29tZXRoaW5nIHNwZWNpYWw/XCIsXG4gICAgICAgIGljb246IFwic2VuZEFycm93XCIsXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICAgIGltYWdlUHJvbXB0Q2FyZFBMUEFjY2Vzc29yaWVzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkLFxuICAgICAgdXJsOiBDZG5TZXJ2aWNlLmdldEFzc2V0VVJMKFxuICAgICAgICBcImltYWdlLXByb21wdC1jYXJkLTIucG5nXCIsXG4gICAgICAgIE9yZ1Nob3J0TmFtZS5CYW5kb2xpZXJcbiAgICAgICksXG4gICAgICBsaWdodFRleHQ6IHRydWUsXG4gICAgICB0aXRsZTogXCJXaGF0IGNhbiB3ZSBoZWxwIHlvdSBmaW5kIHRvZGF5P1wiLFxuICAgICAgc3VidGl0bGU6IFtcbiAgICAgICAgXCJDYW4gSSBtaXggYW5kIG1hdGNoIGNvbG9ycyBvciBzdHlsZXM/XCIsXG4gICAgICAgIFwiSG93IGRvIHRoZXNlIGF0dGFjaCB0byBjYXNlcyBhbmQgYmFncz9cIixcbiAgICAgICAgXCJBcmUgYWNjZXNzb3JpZXMgY3VzdG9taXphYmxlP1wiLFxuICAgICAgICBcIkNhbiBJIGN1c3RvbWl6ZSBteSBCYW5kb2xpZXI/XCIsXG4gICAgICBdLFxuICAgICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllczogW1xuICAgICAgICBcIkNhbiBJIG1peCBhbmQgbWF0Y2ggY29sb3JzIG9yIHN0eWxlcz9cIixcbiAgICAgICAgXCJIb3cgZG8gdGhlc2UgYXR0YWNoIHRvIGNhc2VzIGFuZCBiYWdzP1wiLFxuICAgICAgICBcIkFyZSBhY2Nlc3NvcmllcyBjdXN0b21pemFibGU/XCIsXG4gICAgICAgIFwiQ2FuIEkgY3VzdG9taXplIG15IEJhbmRvbGllcj9cIixcbiAgICAgIF0sXG4gICAgICB1c2VyUXVlcnlCdXR0b25Db25maWc6IHtcbiAgICAgICAgdmFyaWFudDogXCJ1bmRlcmxpbmVMaWdodFwiLFxuICAgICAgICBwbGFjZWhvbGRlclRleHQ6IFwiTmVlZCBzb21ldGhpbmcgc3BlY2lhbD9cIixcbiAgICAgICAgaWNvbjogXCJzZW5kQXJyb3dcIixcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsXG4gICAgaW1hZ2VQcm9tcHRDYXJkUExQQmFnczoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLkltYWdlUHJvbXB0Q2FyZCxcbiAgICAgIHVybDogQ2RuU2VydmljZS5nZXRBc3NldFVSTChcbiAgICAgICAgXCJpbWFnZS1wcm9tcHQtY2FyZC0yLnBuZ1wiLFxuICAgICAgICBPcmdTaG9ydE5hbWUuQmFuZG9saWVyXG4gICAgICApLFxuICAgICAgbGlnaHRUZXh0OiB0cnVlLFxuICAgICAgdGl0bGU6IFwiV2hhdCBjYW4gd2UgaGVscCB5b3UgZmluZCB0b2RheT9cIixcbiAgICAgIHN1YnRpdGxlOiBbXG4gICAgICAgIFwiQXJlIHRoZSBiYWdzIGRlc2lnbmVkIHRvIGhvbGQgcGhvbmVzP1wiLFxuICAgICAgICBcIkNhbiBJIGF0dGFjaCBhIEJhbmRvbGllciBzdHJhcCB0byB0aGlzIGJhZz9cIixcbiAgICAgICAgXCJEb2VzIGl0IGhhdmUgaW50ZXJpb3IgcG9ja2V0cz9cIixcbiAgICAgICAgXCJJcyBpdCBtYWRlIG9mIHJlYWwgbGVhdGhlcj9cIixcbiAgICAgICAgXCJDYW4gdGhlIHN0cmFwIGJlIHJlbW92ZWQ/XCIsXG4gICAgICBdLFxuICAgICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllczogW1xuICAgICAgICBcIkFyZSB0aGUgYmFncyBkZXNpZ25lZCB0byBob2xkIHBob25lcz9cIixcbiAgICAgICAgXCJDYW4gSSBhdHRhY2ggYSBCYW5kb2xpZXIgc3RyYXAgdG8gdGhpcyBiYWc/XCIsXG4gICAgICAgIFwiRG9lcyBpdCBoYXZlIGludGVyaW9yIHBvY2tldHM/XCIsXG4gICAgICAgIFwiSXMgaXQgbWFkZSBvZiByZWFsIGxlYXRoZXI/XCIsXG4gICAgICAgIFwiQ2FuIHRoZSBzdHJhcCBiZSByZW1vdmVkP1wiLFxuICAgICAgXSxcbiAgICAgIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzoge1xuICAgICAgICB2YXJpYW50OiBcInVuZGVybGluZUxpZ2h0XCIsXG4gICAgICAgIHBsYWNlaG9sZGVyVGV4dDogXCJOZWVkIHNvbWV0aGluZyBzcGVjaWFsP1wiLFxuICAgICAgICBpY29uOiBcInNlbmRBcnJvd1wiLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBJbWFnZVByb21wdFdpZGdldENvbmZpZyxcbiAgICBpbWFnZVByb21wdENhcmRQTFBTaG9wQWxsOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJpbWFnZVByb21wdENhcmRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkLFxuICAgICAgdXJsOiBDZG5TZXJ2aWNlLmdldEFzc2V0VVJMKFxuICAgICAgICBcImltYWdlLXByb21wdC1jYXJkLTIucG5nXCIsXG4gICAgICAgIE9yZ1Nob3J0TmFtZS5CYW5kb2xpZXJcbiAgICAgICksXG4gICAgICBsaWdodFRleHQ6IHRydWUsXG4gICAgICB0aXRsZTogXCJXaGF0IGNhbiB3ZSBoZWxwIHlvdSBmaW5kIHRvZGF5P1wiLFxuICAgICAgc3VidGl0bGU6IFtcbiAgICAgICAgXCJXaWxsIHRoaXMgZml0IG15IHBob25lP1wiLFxuICAgICAgICBcIkhvdyBpcyBCYW5kb2xpZXIgZGlmZmVyZW50IGZyb20gb3RoZXIgcGhvbmUgY2FzZXM/XCIsXG4gICAgICAgIFwiV2hhdOKAmXMgeW91ciBtb3N0IHBvcHVsYXIgc3R5bGU/XCIsXG4gICAgICAgIFwiV2hhdCdzIHRyZW5kaW5nIHJpZ2h0IG5vdz9cIixcbiAgICAgIF0sXG4gICAgICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBbXG4gICAgICAgIFwiV2lsbCB0aGlzIGZpdCBteSBwaG9uZT9cIixcbiAgICAgICAgXCJIb3cgaXMgQmFuZG9saWVyIGRpZmZlcmVudCBmcm9tIG90aGVyIHBob25lIGNhc2VzP1wiLFxuICAgICAgICBcIldoYXTigJlzIHlvdXIgbW9zdCBwb3B1bGFyIHN0eWxlP1wiLFxuICAgICAgICBcIldoYXQncyB0cmVuZGluZyByaWdodCBub3c/XCIsXG4gICAgICBdLFxuICAgICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwidW5kZXJsaW5lTGlnaHRcIixcbiAgICAgICAgcGxhY2Vob2xkZXJUZXh0OiBcIk5lZWQgc29tZXRoaW5nIHNwZWNpYWw/XCIsXG4gICAgICAgIGljb246IFwic2VuZEFycm93XCIsXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICAgIGltYWdlUHJvbXB0Q2FyZFBMUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiaW1hZ2VQcm9tcHRDYXJkXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLkltYWdlUHJvbXB0Q2FyZCxcbiAgICAgIHVybDogQ2RuU2VydmljZS5nZXRBc3NldFVSTChcbiAgICAgICAgXCJpbWFnZS1wcm9tcHQtY2FyZC0yLnBuZ1wiLFxuICAgICAgICBPcmdTaG9ydE5hbWUuQmFuZG9saWVyXG4gICAgICApLFxuICAgICAgbGlnaHRUZXh0OiB0cnVlLFxuICAgICAgdGl0bGU6IFwiV2hhdCBjYW4gd2UgaGVscCB5b3UgZmluZCB0b2RheT9cIixcbiAgICAgIHN1YnRpdGxlOiBbXG4gICAgICAgIFwiV2hpY2ggcGhvbmUgY2FzZSBmaXRzIHlvdXIgc3R5bGU/XCIsXG4gICAgICAgIFwiTmVlZCBhIGJhZyBmb3IgbmlnaHRzIG91dD9cIixcbiAgICAgICAgXCJXaGF04oCZcyBhIGNoaWMgZ2lmdCBpZGVhP1wiLFxuICAgICAgICBcIkxvb2tpbmcgZm9yIGEgdHJhdmVsLXJlYWR5IHNldD9cIixcbiAgICAgIF0sXG4gICAgICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBbXG4gICAgICAgIFwiV2hpY2ggcGhvbmUgY2FzZSBmaXRzIHlvdXIgc3R5bGU/XCIsXG4gICAgICAgIFwiTmVlZCBhIGJhZyBmb3IgbmlnaHRzIG91dD9cIixcbiAgICAgICAgXCJXaGF04oCZcyBhIGNoaWMgZ2lmdCBpZGVhP1wiLFxuICAgICAgICBcIkxvb2tpbmcgZm9yIGEgdHJhdmVsLXJlYWR5IHNldD9cIixcbiAgICAgIF0sXG4gICAgICB1c2VyUXVlcnlCdXR0b25Db25maWc6IHtcbiAgICAgICAgdmFyaWFudDogXCJ1bmRlcmxpbmVMaWdodFwiLFxuICAgICAgICBwbGFjZWhvbGRlclRleHQ6IFwiTmVlZCBzb21ldGhpbmcgc3BlY2lhbD9cIixcbiAgICAgICAgaWNvbjogXCJzZW5kQXJyb3dcIixcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsXG5cbiAgICB0b3BTdWdnZXN0aW9uc0Jhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5QWNjZW50XCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwic21cIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcInN0YW5kYXJkXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJDYW4gSSB1c2UgdGhpcyBjYXNlIHdpdGhvdXQgYSBzdHJhcD8gXCIsXG4gICAgICAgICAgXCJIb3cgbWFueSBjYXJkcyBmaXQgaW4gdGhlIHdhbGxldD9cIixcbiAgICAgICAgICBcIlN1bW1hcml6ZSBSZXZpZXdzXCIsXG4gICAgICAgICAgXCJXaGF0IG1ha2VzIHRoaXMgc28gdmVyc2F0aWxlP1wiLFxuICAgICAgICAgIFwiV2h5IGFyZSBzaG9wcGVycyBvYnNlc3NlZCB3aXRoIHRoaXM/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHByb2R1Y3RTcGVjaWZpYzoge1xuICAgICAgICAgIC8vIEhhaWxleVxuICAgICAgICAgIFwiaGFpbGV5LXNpZGUtc2xvdC1sZWF0aGVyLWNyb3NzYm9keS1iYW5kb2xpZXItYmxhY2stZ29sZFwiOiBbXG4gICAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3c1wiLFxuICAgICAgICAgICAgXCJXaHkgaXMgdGhpcyB5b3VyIGJlc3Qgc2VsbGVyP1wiLFxuICAgICAgICAgICAgXCJDYW4geW91IHVzZSB0aGlzIGNhc2Ugd2l0aG91dCBhIHN0cmFwP1wiLFxuICAgICAgICAgICAgXCJIb3cgbWFueSBjYXJkcyBmaXQgaW4gdGhlIHdhbGxldD9cIixcbiAgICAgICAgICAgIFwiV2hhdCBtYWtlcyB0aGlzIHNvIHZlcnNhdGlsZT9cIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIC8vIE1pbGFcbiAgICAgICAgICBcIm1pbGEtbWFnc2FmZS1jaGFyZ2luZy1jcm9zc2JvZHktYmFuZG9saWVyLWJsYWNrLWdvbGRcIjogW1xuICAgICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICAgIFwiSXMgdGhpcyBNYWdTYWZlIENvbXBhdGlibGU/XCIsXG4gICAgICAgICAgICBcIkRvZXMgdGhlIHdhbGxldCBjb21lIG9mZj9cIixcbiAgICAgICAgICAgIFwiV2h5IGlzIHRoaXMgeW91ciBiZXN0IHNlbGxlcj9cIixcbiAgICAgICAgICAgIFwiQ2FuIHlvdSB1c2UgdGhpcyBjYXNlIHdpdGhvdXQgYSBzdHJhcD9cIixcbiAgICAgICAgICAgIFwiSG93IG1hbnkgY2FyZHMgZml0IGluIHRoZSB3YWxsZXQ/XCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICAvLyBSZW1pXG4gICAgICAgICAgXCJyZW1pLW1hZ25ldC13YWxsZXQtY3Jvc3Nib2R5LXBob25lLWNhc2UtYmxhY2stZ29sZFwiOiBbXG4gICAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3c1wiLFxuICAgICAgICAgICAgXCJJcyB0aGlzIE1hZ1NhZmUgQ29tcGF0aWJsZT9cIixcbiAgICAgICAgICAgIFwiSXMgdGhlIHdhbGxldCByZW1vdmFibGU/XCIsXG4gICAgICAgICAgICBcIldoeSBpcyB0aGlzIHlvdXIgYmVzdCBzZWxsZXI/XCIsXG4gICAgICAgICAgICBcIkNhbiB5b3UgdXNlIHRoaXMgY2FzZSB3aXRob3V0IGEgc3RyYXA/XCIsXG4gICAgICAgICAgICBcIkhvdyBtYW55IGNhcmRzIGZpdCBpbiB0aGUgd2FsbGV0P1wiLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgLy8gTGlseVxuICAgICAgICAgIFwibGlseS1zZXQtYmFuZG9saWVyLWJsYWNrLWdvbGRcIjogW1xuICAgICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICAgIFwiV2h5IGlzIHRoaXMgeW91ciBiZXN0IHNlbGxlcj9cIixcbiAgICAgICAgICAgIFwiQ2FuIHlvdSB1c2UgdGhpcyBjYXNlIHdpdGhvdXQgYSBzdHJhcD9cIixcbiAgICAgICAgICAgIFwiSG93IG1hbnkgY2FyZHMgZml0IGluIHRoZSB3YWxsZXQ/XCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyUG91Y2hlczoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJQb3VjaGVzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcInNlY29uZGFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcInNtXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJzdGFuZGFyZFwiLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiSG93IHdpbGwgdGhpcyB3b3JrIHdpdGggbXkgYmFuZG9saWVyIGNhc2U/XCIsXG4gICAgICAgICAgXCJDYW4gSSBhdHRhY2ggYSBCYW5kb2xpZXIgc3RyYXAgdG8gdGhpcyBwb3VjaD9cIixcbiAgICAgICAgICBcIkRvZXMgaXQgaGF2ZSBpbnRlcmlvciBwb2NrZXRzP1wiLFxuICAgICAgICAgIFwiSXMgaXQgbWFkZSBvZiByZWFsIGxlYXRoZXI/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhckJhZ3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyQmFnc1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlBY2NlbnRcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJzbVwiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwic3RhbmRhcmRcIixcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkFyZSB0aGUgYmFncyBkZXNpZ25lZCB0byBob2xkIHBob25lcz9cIixcbiAgICAgICAgICBcIkNhbiBJIGF0dGFjaCBhIEJhbmRvbGllciBzdHJhcCB0byB0aGlzIGJhZz9cIixcbiAgICAgICAgICBcIkRvZXMgaXQgaGF2ZSBpbnRlcmlvciBwb2NrZXRzP1wiLFxuICAgICAgICAgIFwiSXMgaXQgbWFkZSBvZiByZWFsIGxlYXRoZXI/XCIsXG4gICAgICAgICAgXCJDYW4gdGhlIHN0cmFwIGJlIHJlbW92ZWQ/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBjaGF0UHJldmlld1BEUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuQ2hhdFByZXZpZXcsXG4gICAgICB2YXJpYW50OiBcImZpbGxlZFwiLFxuICAgICAgYWRkU2VwYXJhdG9yczogZmFsc2UsXG4gICAgfSBzYXRpc2ZpZXMgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsXG5cbiAgICBib3R0b21TdWdnZXN0aW9uc0Jhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya0FjY2VudFwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcInNtXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICB0d29Sb3dzT25Nb2JpbGU6IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJEb2VzIHRoaXMgZml0IG15IGRldmljZSBtb2RlbD9cIixcbiAgICAgICAgICBcIklzIHRoaXMgYWRqdXN0YWJsZT9cIixcbiAgICAgICAgICBcIldoeSBjaG9vc2UgdGhpcyBvdmVyIGEgYnVsa3kgYmFnP1wiLFxuICAgICAgICAgIFwiV2hhdCBkbyByZXZpZXdlcnMgbG92ZSBtb3N0P1wiLFxuICAgICAgICAgIFwiQ2FuIEkgdXNlIHRoaXMgZXZlcnkgZGF5P1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZToge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50LFxuICAgICAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogXCJiYWNrZ3JvdW5kVGVydGlhcnlcIixcbiAgICAgIHNlYXJjaElucHV0VmFyaWFudDogXCJzdGFuZGFyZFwiLFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzoge1xuICAgICAgICB2YXJpYW50OiBcImRhcmtBY2NlbnRcIixcbiAgICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwic21cIixcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IFwiaW5wdXRcIixcbiAgICAgIHNlYXJjaEJveFBsYWNlaG9sZGVyOiBcIldoYXQgY2FuIEkgaGVscCB5b3UgZmluZD9cIixcbiAgICAgIGluaXRpYWxTdWdnZXN0aW9uczogW1xuICAgICAgICBcIk1hZ1NhZmUgY29tcGF0aWJsZSBjYXNlc1wiLFxuICAgICAgICBcIk1vc3QgcG9wdWxhciBzdHlsZXNcIixcbiAgICAgICAgXCJSZW1pIHJlbW92YWJsZSB3YWxsZXRcIixcbiAgICAgICAgXCJNaXggYW5kIG1hdGNoIHN0cmFwcyBhbmQgd3Jpc3RsZXRzXCIsXG4gICAgICAgIFwiQWRkLW9uIHBvdWNoZXNcIixcbiAgICAgICAgXCJCZXN0IHBob25lIGNhc2VzIGZvciB0cmF2ZWxcIixcbiAgICAgIF0sXG4gICAgICB1c2luZ1BvcnRhbDogdHJ1ZSxcbiAgICB9IHNhdGlzZmllcyBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICAgIGdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVTZWFyY2hJY29uOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlU2VhcmNoSWNvblwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50LFxuICAgICAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogXCJiYWNrZ3JvdW5kVGVydGlhcnlcIixcbiAgICAgIHNlYXJjaElucHV0VmFyaWFudDogXCJzdGFuZGFyZFwiLFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzoge1xuICAgICAgICB2YXJpYW50OiBcImRhcmtBY2NlbnRcIixcbiAgICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwic21cIixcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IFwiaWNvblwiLFxuICAgICAgc2VhcmNoSWNvblZhcmlhbnQ6IFwidGhpblwiLFxuICAgICAgc2VhcmNoSWNvblNpemU6IDI0LFxuICAgICAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IFwiV2hhdCBjYW4gSSBoZWxwIHlvdSBmaW5kP1wiLFxuICAgICAgaW5pdGlhbFN1Z2dlc3Rpb25zOiBbXG4gICAgICAgIFwiTWFnU2FmZSBjb21wYXRpYmxlIGNhc2VzXCIsXG4gICAgICAgIFwiTW9zdCBwb3B1bGFyIHN0eWxlc1wiLFxuICAgICAgICBcIlJlbWkgcmVtb3ZhYmxlIHdhbGxldFwiLFxuICAgICAgICBcIk1peCBhbmQgbWF0Y2ggc3RyYXBzIGFuZCB3cmlzdGxldHNcIixcbiAgICAgICAgXCJBZGQtb24gcG91Y2hlc1wiLFxuICAgICAgICBcIkJlc3QgcGhvbmUgY2FzZXMgZm9yIHRyYXZlbFwiLFxuICAgICAgXSxcbiAgICAgIHVzaW5nUG9ydGFsOiB0cnVlLFxuICAgIH0gc2F0aXNmaWVzIFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWcsXG4gICAgZ2xvYmFsU2VhcmNoRW50cnlQb2ludERlc2t0b3A6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnREZXNrdG9wXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQsXG4gICAgICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBcImJhY2tncm91bmRUZXJ0aWFyeVwiLFxuICAgICAgc2VhcmNoSW5wdXRWYXJpYW50OiBcInN0YW5kYXJkXCIsXG4gICAgICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwiZGFya0FjY2VudFwiLFxuICAgICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5QWNjZW50XCIsXG4gICAgICAgIGJvcmRlclJhZGl1czogXCJzbVwiLFxuICAgICAgfSxcbiAgICAgIGxheW91dDogXCJpY29uXCIsXG4gICAgICBzZWFyY2hJY29uVmFyaWFudDogXCJ0aGluXCIsXG4gICAgICBzZWFyY2hJY29uU2l6ZTogMjIsXG4gICAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogXCJXaGF0IGNhbiBJIGhlbHAgeW91IGZpbmQ/XCIsXG4gICAgICBpbml0aWFsU3VnZ2VzdGlvbnM6IFtcbiAgICAgICAgXCJNYWdTYWZlIGNvbXBhdGlibGUgY2FzZXNcIixcbiAgICAgICAgXCJNb3N0IHBvcHVsYXIgc3R5bGVzXCIsXG4gICAgICAgIFwiUmVtaSByZW1vdmFibGUgd2FsbGV0XCIsXG4gICAgICAgIFwiTWl4IGFuZCBtYXRjaCBzdHJhcHMgYW5kIHdyaXN0bGV0c1wiLFxuICAgICAgICBcIkFkZC1vbiBwb3VjaGVzXCIsXG4gICAgICAgIFwiQmVzdCBwaG9uZSBjYXNlcyBmb3IgdHJhdmVsXCIsXG4gICAgICBdLFxuICAgICAgdXNpbmdQb3J0YWw6IHRydWUsXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcEhvbWVwYWdlOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50RGVza3RvcEhvbWVwYWdlXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQsXG4gICAgICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBcImJhY2tncm91bmRUZXJ0aWFyeVwiLFxuICAgICAgc2VhcmNoSW5wdXRWYXJpYW50OiBcInN0YW5kYXJkXCIsXG4gICAgICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwiZGFya0FjY2VudFwiLFxuICAgICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5QWNjZW50XCIsXG4gICAgICAgIGJvcmRlclJhZGl1czogXCJzbVwiLFxuICAgICAgfSxcbiAgICAgIGxheW91dDogXCJpY29uXCIsXG4gICAgICBzZWFyY2hJY29uVmFyaWFudDogXCJ0aGluXCIsXG4gICAgICBzZWFyY2hJY29uU2l6ZTogMjIsXG4gICAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogXCJXaGF0IGNhbiBJIGhlbHAgeW91IGZpbmQ/XCIsXG4gICAgICBpbml0aWFsU3VnZ2VzdGlvbnM6IFtcbiAgICAgICAgXCJNYWdTYWZlIGNvbXBhdGlibGUgY2FzZXNcIixcbiAgICAgICAgXCJNb3N0IHBvcHVsYXIgc3R5bGVzXCIsXG4gICAgICAgIFwiUmVtaSByZW1vdmFibGUgd2FsbGV0XCIsXG4gICAgICAgIFwiTWl4IGFuZCBtYXRjaCBzdHJhcHMgYW5kIHdyaXN0bGV0c1wiLFxuICAgICAgICBcIkFkZC1vbiBwb3VjaGVzXCIsXG4gICAgICAgIFwiQmVzdCBwaG9uZSBjYXNlcyBmb3IgdHJhdmVsXCIsXG4gICAgICBdLFxuICAgICAgdXNpbmdQb3J0YWw6IHRydWUsXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50U21hbGxEZXNrdG9wSG9tZXBhZ2U6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRTbWFsbERlc2t0b3BIb21lcGFnZVwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50LFxuICAgICAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogXCJiYWNrZ3JvdW5kVGVydGlhcnlcIixcbiAgICAgIHNlYXJjaElucHV0VmFyaWFudDogXCJzdGFuZGFyZFwiLFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzoge1xuICAgICAgICB2YXJpYW50OiBcImRhcmtBY2NlbnRcIixcbiAgICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwic21cIixcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IFwiaWNvblwiLFxuICAgICAgc2VhcmNoSWNvblZhcmlhbnQ6IFwidGhpblwiLFxuICAgICAgc2VhcmNoSWNvblNpemU6IDIyLFxuICAgICAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IFwiV2hhdCBjYW4gSSBoZWxwIHlvdSBmaW5kP1wiLFxuICAgICAgaW5pdGlhbFN1Z2dlc3Rpb25zOiBbXG4gICAgICAgIFwiTWFnU2FmZSBjb21wYXRpYmxlIGNhc2VzXCIsXG4gICAgICAgIFwiTW9zdCBwb3B1bGFyIHN0eWxlc1wiLFxuICAgICAgICBcIlJlbWkgcmVtb3ZhYmxlIHdhbGxldFwiLFxuICAgICAgICBcIk1peCBhbmQgbWF0Y2ggc3RyYXBzIGFuZCB3cmlzdGxldHNcIixcbiAgICAgICAgXCJBZGQtb24gcG91Y2hlc1wiLFxuICAgICAgICBcIkJlc3QgcGhvbmUgY2FzZXMgZm9yIHRyYXZlbFwiLFxuICAgICAgXSxcbiAgICAgIHVzaW5nUG9ydGFsOiB0cnVlLFxuICAgIH0gc2F0aXNmaWVzIFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWcsXG4gICAgZ2xvYmFsU2VhcmNoRW50cnlQb2ludE9ubHlJY29uTW9iaWxlOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50T25seUljb25Nb2JpbGVcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU2VhcmNoWmVyb1N0YXRlRW50cnlQb2ludCxcbiAgICAgIHNlYXJjaFplcm9TdGF0ZVZhcmlhbnQ6IFwiYmFja2dyb3VuZFRlcnRpYXJ5XCIsXG4gICAgICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFwic3RhbmRhcmRcIixcbiAgICAgIHN1Z2dlc3Rpb25CdXR0b25Db25maWc6IHtcbiAgICAgICAgdmFyaWFudDogXCJkYXJrQWNjZW50XCIsXG4gICAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlBY2NlbnRcIixcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcInNtXCIsXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiBcImljb25cIixcbiAgICAgIHNlYXJjaEljb25WYXJpYW50OiBcInRoaW5cIixcbiAgICAgIHNlYXJjaEljb25TaXplOiAyNixcbiAgICAgIHNlYXJjaEJveFBsYWNlaG9sZGVyOiBcIldoYXQgY2FuIEkgaGVscCB5b3UgZmluZD9cIixcbiAgICAgIGluaXRpYWxTdWdnZXN0aW9uczogW1xuICAgICAgICBcIk1hZ1NhZmUgY29tcGF0aWJsZSBjYXNlc1wiLFxuICAgICAgICBcIk1vc3QgcG9wdWxhciBzdHlsZXNcIixcbiAgICAgICAgXCJSZW1pIHJlbW92YWJsZSB3YWxsZXRcIixcbiAgICAgICAgXCJNaXggYW5kIG1hdGNoIHN0cmFwcyBhbmQgd3Jpc3RsZXRzXCIsXG4gICAgICAgIFwiQWRkLW9uIHBvdWNoZXNcIixcbiAgICAgICAgXCJCZXN0IHBob25lIGNhc2VzIGZvciB0cmF2ZWxcIixcbiAgICAgIF0sXG4gICAgICB1c2luZ1BvcnRhbDogdHJ1ZSxcbiAgICB9IHNhdGlzZmllcyBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICAgIHNlYXJjaFJlc3VsdHNFbnRyeVBvaW50OiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hSZXN1bHRzRW50cnlQb2ludFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludCxcbiAgICAgIHNlYXJjaEJveFBsYWNlaG9sZGVyOiBcIldoYXQgY2FuIEkgaGVscCB5b3UgZmluZD9cIixcbiAgICAgIHNlYXJjaElucHV0VmFyaWFudDogXCJzdGFuZGFyZFwiLFxuICAgICAgc2VhcmNoRmlsdGVyU2lkZWJhclZhcmlhbnQ6IFwiZGFya0J1dHRvblwiLFxuICAgICAgcHJvZHVjdEdyaWRWYXJpYW50OiBcInNxdWFyZVwiLFxuICAgIH0gc2F0aXNmaWVzIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICAgIHNlYXJjaE92ZXJsYXlIb3N0OiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2hPdmVybGF5SG9zdCxcbiAgICB9IHNhdGlzZmllcyBTZWFyY2hPdmVybGF5SG9zdFdpZGdldENvbmZpZyxcbiAgfSxcbn0pO1xuXG5jb25zdCBiYW5kb2xpZXJPcmdJbmZvID0ge1xuICBzaG9ydE5hbWU6IE9yZ1Nob3J0TmFtZS5CYW5kb2xpZXIsXG4gIG5hbWU6IFwiQmFuZG9saWVyXCIsXG4gIGRvbWFpbjogXCJiYW5kb2xpZXJzdHlsZS5jb21cIixcbiAgZGVmYXVsdFByb2R1Y3RJZDpcbiAgICBcImxpbHktc2lkZS1zbG90LWxlYXRoZXItY3Jvc3Nib2R5LWJhbmRvbGllci1jZWNpLWl2b3J5LWZsb3JhbC1nb2xkXCIsXG4gIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IHRydWUsXG4gIG9yZ1VJQ29uZmlnOiBiYW5kb2xpZXJPcmdVSUNvbmZpZyxcbiAgb3JnQ29sb3JzOiAoKSA9PiBiYW5kb2xpZXJDb2xvcnMsXG4gIG9yZ1BhZ2VDb25maWc6IGJhbmRvbGllclBhZ2VDb25maWcsXG59IHNhdGlzZmllcyBCYXNpY09yZ0luZm9UeXBlO1xuXG5leHBvcnQgeyBiYW5kb2xpZXJPcmdJbmZv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