@envive-ai/react-hooks 0.1.3 → 0.1.5
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.
- package/dist/adapters/amplitude/index.cjs +13 -13
- package/dist/adapters/amplitude/index.d.cts +5 -3
- package/dist/adapters/amplitude/index.d.ts +5 -3
- package/dist/adapters/amplitude/index.js +10 -10
- package/dist/api-B2euFL-5.cjs +269 -0
- package/dist/api-XRr_lAG6.js +190 -0
- package/dist/application/config/index.cjs +14 -5
- package/dist/application/config/index.d.cts +2 -1
- package/dist/application/config/index.d.ts +2 -1
- package/dist/application/config/index.js +14 -5
- package/dist/application/models/graphql/index.cjs +12 -12
- package/dist/application/models/graphql/index.d.cts +1 -1
- package/dist/application/models/graphql/index.d.ts +1 -1
- package/dist/application/models/graphql/index.js +10 -10
- package/dist/application/models/guards/api/index.cjs +2 -2
- package/dist/application/models/guards/api/index.d.cts +2 -2
- package/dist/application/models/guards/api/index.d.ts +2 -2
- package/dist/application/models/guards/api/index.js +2 -2
- package/dist/application/models/index.cjs +54 -54
- package/dist/application/models/index.d.cts +8 -9
- package/dist/application/models/index.d.ts +8 -9
- package/dist/application/models/index.js +10 -10
- package/dist/application/models/utilityTypes/index.cjs +1 -1
- package/dist/application/models/utilityTypes/index.d.cts +1 -1
- package/dist/application/models/utilityTypes/index.d.ts +1 -1
- package/dist/application/models/utilityTypes/index.js +1 -1
- package/dist/application/models/variantInfo/index.cjs +1 -1
- package/dist/application/models/variantInfo/index.d.cts +1 -1
- package/dist/application/models/variantInfo/index.d.ts +1 -1
- package/dist/application/models/variantInfo/index.js +1 -1
- package/dist/application/service/customerService/index.cjs +2 -2
- package/dist/application/service/customerService/index.d.cts +2 -2
- package/dist/application/service/customerService/index.d.ts +2 -2
- package/dist/application/service/customerService/index.js +2 -2
- package/dist/application/service/index.cjs +38 -757
- package/dist/application/service/index.d.cts +26 -20
- package/dist/application/service/index.d.ts +26 -20
- package/dist/application/service/index.js +12 -727
- package/dist/application/utils/index.cjs +37 -37
- package/dist/application/utils/index.d.cts +12 -12
- package/dist/application/utils/index.d.ts +14 -14
- package/dist/application/utils/index.js +10 -10
- package/dist/atomStore-B1cgmbP0.js +32 -0
- package/dist/atomStore-JwGb7pcy.cjs +58 -0
- package/dist/atomStore-ONYy0XuA.d.cts +24 -0
- package/dist/atomStore-kOKiEcNl.d.ts +24 -0
- package/dist/atoms/app/index.cjs +16 -16
- package/dist/atoms/app/index.d.cts +11 -11
- package/dist/atoms/app/index.d.ts +12 -12
- package/dist/atoms/app/index.js +10 -10
- package/dist/atoms/atomStore/index.cjs +1 -2
- package/dist/atoms/atomStore/index.d.cts +1 -22
- package/dist/atoms/atomStore/index.d.ts +1 -22
- package/dist/atoms/atomStore/index.js +1 -2
- package/dist/atoms/chat/index.cjs +40 -40
- package/dist/atoms/chat/index.d.cts +37 -37
- package/dist/atoms/chat/index.d.ts +38 -38
- package/dist/atoms/chat/index.js +10 -10
- package/dist/atoms/globalSearch/index.cjs +1 -1
- package/dist/atoms/globalSearch/index.d.cts +7 -6
- package/dist/atoms/globalSearch/index.d.ts +2 -1
- package/dist/atoms/globalSearch/index.js +1 -1
- package/dist/atoms/org/index.cjs +38 -40
- package/dist/atoms/org/index.d.cts +35 -53
- package/dist/atoms/org/index.d.ts +34 -52
- package/dist/atoms/org/index.js +11 -12
- package/dist/atoms/search/index.cjs +41 -43
- package/dist/atoms/search/index.d.cts +9 -10
- package/dist/atoms/search/index.d.ts +9 -10
- package/dist/atoms/search/index.js +10 -12
- package/dist/bandolier-Da4wt6sm.cjs +1230 -0
- package/dist/bandolier-DzEmYWcz.js +1230 -0
- package/dist/carpe-AXipz0Xl.cjs +608 -0
- package/dist/carpe-CaUKwcEa.js +606 -0
- package/dist/chat-CHmD79E1.js +26 -0
- package/dist/{chat-CCgyDehy.cjs → chat-_NzpO_Hn.cjs} +2 -1
- package/dist/{components-CScS7Ii-.cjs → components-D0XDRcaN.cjs} +2 -1
- package/dist/components-Dl-TMD9k.js +11 -0
- package/dist/config/locators/components/chat/index.cjs +1 -1
- package/dist/config/locators/components/chat/index.d.ts +1 -1
- package/dist/config/locators/components/chat/index.js +1 -1
- package/dist/config/locators/components/chat/variants/index.cjs +2 -1
- package/dist/config/locators/components/chat/variants/index.d.cts +2 -1
- package/dist/config/locators/components/chat/variants/index.d.ts +2 -1
- package/dist/config/locators/components/chat/variants/index.js +2 -1
- package/dist/config/locators/components/index.cjs +1 -1
- package/dist/config/locators/components/index.d.ts +1 -1
- package/dist/config/locators/components/index.js +1 -1
- package/dist/config/locators/components/search/index.cjs +2 -1
- package/dist/config/locators/components/search/index.d.cts +2 -1
- package/dist/config/locators/components/search/index.d.ts +2 -1
- package/dist/config/locators/components/search/index.js +2 -1
- package/dist/config/locators/index.cjs +4 -4
- package/dist/config/locators/index.d.cts +2 -1
- package/dist/config/locators/index.d.ts +4 -3
- package/dist/config/locators/index.js +4 -4
- package/dist/contexts/index.cjs +20 -23
- package/dist/contexts/index.d.cts +10 -59
- package/dist/contexts/index.d.ts +10 -59
- package/dist/contexts/index.js +11 -17
- package/dist/contexts-CtRlNXaS.js +7674 -0
- package/dist/contexts-CtgmnYNn.cjs +9088 -0
- package/dist/coterie--MGvWeVh.cjs +240 -0
- package/dist/coterie-oKHAT0lx.js +240 -0
- package/dist/customerService-BG1uNZZ1.cjs +36 -0
- package/dist/customerService-BHQRnLhC.js +23 -0
- package/dist/custservice-types-C8-9vKWb.cjs +35 -0
- package/dist/custservice-types-CamCiXjq.js +23 -0
- package/dist/default-B4fINY5_.cjs +4 -0
- package/dist/default-BrTQxA0c.js +4 -0
- package/dist/default-C3LrcbZB.cjs +199 -0
- package/dist/default-CXkYrLEr.js +176 -0
- package/dist/divIds-0Vj9g-fM.js +23 -0
- package/dist/{divIds-CFyAjjp3.cjs → divIds-CjceLRD9.cjs} +2 -1
- package/dist/dreamlandBaby-BEqt0eKF.js +347 -0
- package/dist/dreamlandBaby-DBDjEJCc.cjs +347 -0
- package/dist/{embedded-BlXJUbik.cjs → embedded-B5Wi9g0T.cjs} +2 -1
- package/dist/embedded-_cLpd6FK.js +23 -0
- package/dist/entrypoints-CNUvSgnk.js +7 -0
- package/dist/entrypoints-DM9Sm18O.cjs +19 -0
- package/dist/events/index.cjs +1 -1
- package/dist/events/index.d.cts +2 -1
- package/dist/events/index.d.ts +2 -1
- package/dist/events/index.js +1 -1
- package/dist/events-ClCDFK7t.js +78 -0
- package/dist/events-Da7gpmGv.cjs +90 -0
- package/dist/featureFlagService-5wdmW02z.d.ts +18 -0
- package/dist/featureFlagService-DaelrXEk.d.cts +18 -0
- package/dist/fiveCbd-CdqNt16h.cjs +614 -0
- package/dist/fiveCbd-D6B-sgnX.js +614 -0
- package/dist/forLoveAndLemons-C7GsJG7f.cjs +668 -0
- package/dist/forLoveAndLemons-gNDlMtPR.js +666 -0
- package/dist/{globalSearch-hxbXekus.cjs → globalSearch-BTeZxvk1.cjs} +2 -1
- package/dist/globalSearch-b0wC7ZEO.js +14 -0
- package/dist/greenpan-B5AaW4M_.js +398 -0
- package/dist/greenpan-DrORpYms.cjs +398 -0
- package/dist/grooveLife-BJqsfH2H.cjs +343 -0
- package/dist/grooveLife-xIUmDM8s.js +343 -0
- package/dist/homegrownCannabis-8TZ21u6L.cjs +411 -0
- package/dist/homegrownCannabis-BtMuEvbZ.js +411 -0
- package/dist/hooks/index.cjs +36 -38
- package/dist/hooks/index.d.cts +36 -82
- package/dist/hooks/index.d.ts +38 -84
- package/dist/hooks/index.js +11 -17
- package/dist/index-BTK5uzs6.d.cts +98 -0
- package/dist/index-BdNKc2ix.d.cts +2 -1
- package/dist/index-BrXuc_Ck.d.cts +2 -1
- package/dist/index-BzgkfbNO.d.cts +228 -0
- package/dist/index-CKKkTsms.d.ts +39 -0
- package/dist/index-CKUpnyJQ.d.ts +72 -0
- package/dist/index-CSIOQD-A.d.ts +25 -0
- package/dist/index-CbJZOEU4.d.ts +203 -0
- package/dist/index-ClJ0nMsR.d.cts +184 -0
- package/dist/index-Cr2y08f1.d.ts +9 -0
- package/dist/index-Cx9e-fRi.d.ts +184 -0
- package/dist/index-D2VaMPA3.d.ts +98 -0
- package/dist/index-D46Rd0io.d.cts +39 -0
- package/dist/index-DFL1dIT_.d.ts +7 -0
- package/dist/index-DXpgMVpp.d.ts +749 -0
- package/dist/index-Dxpscrvz.d.ts +228 -0
- package/dist/index-K2kNsOTw.d.cts +203 -0
- package/dist/index-MFbPQ8Ji.d.ts +95 -0
- package/dist/index-VHFMGkO-.d.cts +72 -0
- package/dist/index-VSFakgAI.d.cts +95 -0
- package/dist/index-aNW5V9fh.d.cts +749 -0
- package/dist/index-zZjcds15.d.cts +7 -0
- package/dist/interceptors/index.cjs +12 -13
- package/dist/interceptors/index.d.cts +10 -10
- package/dist/interceptors/index.d.ts +10 -10
- package/dist/interceptors/index.js +10 -11
- package/dist/jackArcher-WtkbLBZj.cjs +728 -0
- package/dist/jackArcher-sO9EbgrZ.js +728 -0
- package/dist/jordanCraig-471FcgqF.cjs +1787 -0
- package/dist/jordanCraig-DNOncplU.js +1787 -0
- package/dist/kindredBravely-BlLyHGMX.cjs +491 -0
- package/dist/kindredBravely-cqZ4OvXp.js +491 -0
- package/dist/kutFromTheKloth-3mOIryvt.cjs +370 -0
- package/dist/kutFromTheKloth-DtVNCMKa.js +370 -0
- package/dist/larryAndSerges-88Bvq-Us.cjs +262 -0
- package/dist/larryAndSerges-cvak6May.js +262 -0
- package/dist/leapsAndRebounds-Dmf8eUPq.js +361 -0
- package/dist/leapsAndRebounds-iWKc923H.cjs +361 -0
- package/dist/logger-Dln20ans.cjs +26 -0
- package/dist/logger-pdEEY8T2.js +20 -0
- package/dist/longevityrx-BTMI9vn-.js +321 -0
- package/dist/longevityrx-CobPyigd.cjs +321 -0
- package/dist/lookOptic-C4H_c0JZ.cjs +283 -0
- package/dist/lookOptic-Jwf7EAU8.js +283 -0
- package/dist/mantraBrand-CySGqbn6.cjs +751 -0
- package/dist/mantraBrand-DoaVj837.js +751 -0
- package/dist/medterra-BnZ5p27n.cjs +584 -0
- package/dist/medterra-DaICcPPp.js +584 -0
- package/dist/modells-CZ1L6dD_.js +485 -0
- package/dist/modells-DF0SndHr.cjs +485 -0
- package/dist/nodeSelector-DybpVr-i.d.ts +31 -0
- package/dist/nodeSelector-vKB44CDB.d.cts +2 -1
- package/dist/orgConfigResults--dAwtw3W.d.ts +881 -0
- package/dist/orgConfigResults-BL0XBA6x.d.cts +881 -0
- package/dist/pressedFloral-B3t2cYzs.cjs +662 -0
- package/dist/pressedFloral-Dsws2Kfb.js +662 -0
- package/dist/search-filter-types-9rTb3jMj.d.cts +102 -0
- package/dist/search-filter-types-C-zZSpGo.d.ts +102 -0
- package/dist/skinPerfection-CILQM2bR.cjs +335 -0
- package/dist/skinPerfection-DmQCntRf.js +335 -0
- package/dist/snapSupplements--X_v0KRM.js +286 -0
- package/dist/snapSupplements-Djuzl0Ed.cjs +286 -0
- package/dist/socialProofClasses-DdzG1tZy.js +10 -0
- package/dist/socialProofClasses-ky69yppk.cjs +40 -0
- package/dist/spanx-Bo81yXSF.cjs +664 -0
- package/dist/spanx-DauxB8KE.js +662 -0
- package/dist/spanxStaging-BucYQvR1.cjs +849 -0
- package/dist/spanxStaging-CfXUukdP.js +846 -0
- package/dist/{suggestionBarV2-types-DG3Ekk44.cjs → suggestionBarV2-types-B3lwrENK.cjs} +2 -1
- package/dist/suggestionBarV2-types-Penx3Y67.js +10 -0
- package/dist/supergoop-8qa_NV3F.cjs +338 -0
- package/dist/supergoop-DOaui-A6.js +336 -0
- package/dist/test-types-CXVJxTeu.d.ts +40 -0
- package/dist/test-types-CuOq25VT.d.cts +40 -0
- package/dist/types/index.cjs +2 -2
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/types-CD4LFta-.d.cts +33 -0
- package/dist/types-CGC6Oozp.cjs +231 -0
- package/dist/types-CnTCkyvK.js +177 -0
- package/dist/types-DBdI0j89.d.ts +33 -0
- package/dist/uniqueVintage-BWkDgt1z.js +1212 -0
- package/dist/uniqueVintage-DAne8XcL.cjs +1214 -0
- package/dist/variant-CC1nrywd.d.ts +13 -0
- package/dist/variant-CQTuQQSq.d.cts +13 -0
- package/dist/venaCbd-B1HO_Pkr.cjs +366 -0
- package/dist/venaCbd-CnByO-5R.js +366 -0
- package/dist/westonJonBoucher-BAGXegsX.js +423 -0
- package/dist/westonJonBoucher-BRfHWMbs.cjs +423 -0
- package/dist/wineEnthusiast-DW8JVwV8.cjs +941 -0
- package/dist/wineEnthusiast-EJbhMeKQ.js +941 -0
- package/dist/wolfMattress-B6INZNRJ.cjs +373 -0
- package/dist/wolfMattress-D9P7ErH_.js +373 -0
- package/dist/wolfTactical-C5Pupi3J.js +350 -0
- package/dist/wolfTactical-TMthZM93.cjs +350 -0
- package/package.json +2 -1
- package/src/adapters/amplitude/amplitudeAdapter.ts +32 -9
- package/src/adapters/spiffy/commerce/api.ts +17 -8
- package/src/adapters/spiffy/commerce/graphql.ts +16 -5
- package/src/application/config/generalStaticConfig.ts +5 -2
- package/src/application/models/api/orgConfigResults.ts +6 -2
- package/src/application/models/supportedOrgs.ts +1 -1
- package/src/application/models/validators/validateGraphQLColorsConfig.ts +23 -21
- package/src/application/service/cdnService.ts +4 -2
- package/src/application/service/graphqlConfigService.ts +59 -0
- package/src/application/service/index.ts +1 -1
- package/src/application/service/pageVariantService.ts +5 -5
- package/src/application/service/searchService.ts +9 -2
- package/src/application/service/windowChatToggleService.ts +28 -19
- package/src/application/service/windowFrontendConfigService.ts +7 -4
- package/src/atoms/app/index.ts +26 -17
- package/src/atoms/app/variant.ts +1 -0
- package/src/atoms/chat/messageQueue.ts +1 -1
- package/src/atoms/envive/enviveConfig.ts +81 -0
- package/src/atoms/org/graphqlConfig.ts +40 -11
- package/src/atoms/org/index.ts +7 -7
- package/src/atoms/org/merchantCss.ts +119 -2
- package/src/atoms/org/org.ts +67 -70
- package/src/atoms/org/orgPageConfig.ts +9 -6
- package/src/atoms/org/orgUIConfig.ts +22 -9
- package/src/atoms/search/chatSearch.ts +85 -67
- package/src/atoms/search/searchAPI.ts +52 -42
- package/src/contexts/chatContext.tsx +4 -1
- package/src/contexts/enviveConfigContext.tsx +37 -26
- package/src/contexts/enviveCssContext.tsx +20 -0
- package/src/contexts/index.ts +2 -0
- package/src/contexts/orgConfigContext.tsx +106 -0
- package/src/contexts/systemSettingsContext.tsx +2 -2
- package/src/contexts/types.ts +12 -9
- package/src/hooks/index.ts +2 -3
- package/src/hooks/useDynamicVariants.ts +48 -32
- package/src/hooks/useFileUpload.ts +1 -1
- package/src/hooks/useHideElements.ts +21 -18
- package/src/hooks/useImageResolver.ts +16 -8
- package/src/hooks/useNewOrgConfig.ts +80 -0
- package/src/hooks/useSearch.tsx +10 -6
- package/src/hooks/utils.ts +1 -1
- package/src/interceptors/useFormEscalation.ts +26 -9
- package/src/types.ts +0 -2
- package/dist/api-BtzLHcfU.cjs +0 -268
- package/dist/api-kpPTZhV9.js +0 -189
- package/dist/atomStore-BNQyGmU_.cjs +0 -57
- package/dist/atomStore-TnLPtYns.js +0 -31
- package/dist/bandolier-CQrxBHsk.cjs +0 -1230
- package/dist/bandolier-Di9DpZ8e.js +0 -1230
- package/dist/carpe-3NJOR-Rj.cjs +0 -608
- package/dist/carpe-DmWKaIQq.js +0 -606
- package/dist/cdnService-BNreZjqy.js +0 -18
- package/dist/cdnService-vLxePdrU.cjs +0 -23
- package/dist/chat-CCQMmhc1.cjs +0 -5057
- package/dist/chat-Dk6KPb1K.js +0 -25
- package/dist/chat-H6YcCS4I.js +0 -4113
- package/dist/components-DAQxVIn9.js +0 -10
- package/dist/coterie-D0UFsFC5.cjs +0 -240
- package/dist/coterie-JblRmIZL.js +0 -240
- package/dist/customerService-C4wc0glQ.js +0 -22
- package/dist/customerService-zsDlp7g2.cjs +0 -35
- package/dist/custservice-types-D8Npo-5Z.js +0 -22
- package/dist/custservice-types-E9_OSaZ7.cjs +0 -34
- package/dist/default-C5ZTV8HA.cjs +0 -4
- package/dist/default-DPv8m-eQ.js +0 -175
- package/dist/default-DRKBosow.cjs +0 -198
- package/dist/default-ao0vRl0W.js +0 -4
- package/dist/divIds-BWvq-i6I.js +0 -22
- package/dist/dreamlandBaby-CyS8oW8X.js +0 -347
- package/dist/dreamlandBaby-y7kSvwH2.cjs +0 -347
- package/dist/embedded-C1jvFj3v.js +0 -22
- package/dist/entrypoints-CmmOszXO.js +0 -6
- package/dist/entrypoints-fowCLUT2.cjs +0 -18
- package/dist/enviveConfigContext-Bs8kepnO.cjs +0 -48
- package/dist/enviveConfigContext-CWVdVWKW.js +0 -34
- package/dist/events-DgFzlVJR.js +0 -77
- package/dist/events-bH-24eRW.cjs +0 -89
- package/dist/featureFlagService-CroFRxvD.d.cts +0 -17
- package/dist/featureFlagService-NkJ2fuEj.d.ts +0 -17
- package/dist/featureGates-BMWXU0dS.d.ts +0 -90
- package/dist/featureGates-N_gyHCTn.d.cts +0 -90
- package/dist/fiveCbd-CXVuIBiZ.cjs +0 -614
- package/dist/fiveCbd-Cyc3-Ab9.js +0 -614
- package/dist/forLoveAndLemons-CxQS0USq.cjs +0 -668
- package/dist/forLoveAndLemons-D8mcgmdk.js +0 -666
- package/dist/frontendConfig-KeNqU1wa.d.cts +0 -790
- package/dist/frontendConfig-cPvCTWm6.d.ts +0 -790
- package/dist/globalSearch-BC0rOX3E.js +0 -13
- package/dist/greenpan-JM6SHcqO.js +0 -398
- package/dist/greenpan-eIzyxVsn.cjs +0 -398
- package/dist/grooveLife-BmsUc2cD.js +0 -343
- package/dist/grooveLife-KdTizVUn.cjs +0 -343
- package/dist/homegrownCannabis-C0GDai4r.cjs +0 -411
- package/dist/homegrownCannabis-a9udocBT.js +0 -411
- package/dist/hooks-DjOa7ihH.cjs +0 -7331
- package/dist/hooks-fneW8SWw.js +0 -7152
- package/dist/index-BQErGgfM.d.cts +0 -202
- package/dist/index-C4zjAR1c.d.cts +0 -227
- package/dist/index-CGB6CAmr.d.ts +0 -6
- package/dist/index-CIco0cCQ.d.ts +0 -183
- package/dist/index-COG1kOZG.d.ts +0 -749
- package/dist/index-CVxe7FpL.d.cts +0 -6
- package/dist/index-Cn1SeI5y.d.cts +0 -183
- package/dist/index-CnqHN_jz.d.ts +0 -202
- package/dist/index-Cqg6ltII.d.ts +0 -38
- package/dist/index-DE_7Q8qK.d.ts +0 -94
- package/dist/index-Da0UzyI9.d.ts +0 -24
- package/dist/index-DbWWcYax.d.cts +0 -749
- package/dist/index-DtoVXd6O.d.cts +0 -97
- package/dist/index-JClBRnSX.d.cts +0 -94
- package/dist/index-ghzD_356.d.ts +0 -8
- package/dist/index-hdbCEjYy.d.cts +0 -38
- package/dist/index-luJrHgPN.d.ts +0 -97
- package/dist/index-tfRj22E1.d.ts +0 -227
- package/dist/jackArcher-B6OJ0N3a.cjs +0 -728
- package/dist/jackArcher-B9fe4Hv8.js +0 -728
- package/dist/jordanCraig-0CB_m_ts.cjs +0 -1787
- package/dist/jordanCraig-DNm1iw1L.js +0 -1787
- package/dist/kindredBravely-CZgt7DJA.js +0 -491
- package/dist/kindredBravely-KvYPbckZ.cjs +0 -491
- package/dist/kutFromTheKloth-BxgtWZs9.cjs +0 -370
- package/dist/kutFromTheKloth-SmteSZjk.js +0 -370
- package/dist/larryAndSerges-6O_u3L90.cjs +0 -261
- package/dist/larryAndSerges-DO-zG8ES.js +0 -261
- package/dist/leapsAndRebounds-BK62AmXw.js +0 -361
- package/dist/leapsAndRebounds-gPsWVUmQ.cjs +0 -361
- package/dist/logger-Be0NyKaY.cjs +0 -25
- package/dist/logger-BexDfK3W.js +0 -19
- package/dist/longevityrx-DjKbwJo3.cjs +0 -321
- package/dist/longevityrx-eq5TeUcy.js +0 -321
- package/dist/lookOptic-BPPqms_j.cjs +0 -283
- package/dist/lookOptic-jRpBXQCN.js +0 -283
- package/dist/mantraBrand-BZOZfkUK.js +0 -751
- package/dist/mantraBrand-Cp8zptkj.cjs +0 -751
- package/dist/medterra-BHYCBgvQ.cjs +0 -584
- package/dist/medterra-CShe6CLY.js +0 -584
- package/dist/modells-DE7-gmjK.cjs +0 -485
- package/dist/modells-DFyJxNwT.js +0 -485
- package/dist/nodeSelector-DpKXszfU.d.ts +0 -30
- package/dist/org-Bkn6fl6I.cjs +0 -106
- package/dist/org-CX8HFbc9.js +0 -63
- package/dist/pressedFloral-BMkCVs8c.cjs +0 -662
- package/dist/pressedFloral-aK9br-LF.js +0 -662
- package/dist/search-DtIFZeMA.cjs +0 -743
- package/dist/search-eWwg8pNn.js +0 -542
- package/dist/search-filter-types-ByJnFPc4.d.cts +0 -101
- package/dist/search-filter-types-DPgeG8FS.d.ts +0 -101
- package/dist/skinPerfection-B9G6yLM2.js +0 -335
- package/dist/skinPerfection-BBC1q65Z.cjs +0 -335
- package/dist/snapSupplements-D7hx6Kgj.cjs +0 -286
- package/dist/snapSupplements-DKvJl__T.js +0 -286
- package/dist/socialProofClasses-BYLiEXpU.cjs +0 -39
- package/dist/socialProofClasses-CkJufEGb.js +0 -9
- package/dist/spanx-D-ZKkxjM.cjs +0 -664
- package/dist/spanx-yl7YfVrf.js +0 -662
- package/dist/spanxStaging-CXeIg6zI.cjs +0 -849
- package/dist/spanxStaging-DzGXL9wD.js +0 -846
- package/dist/suggestionBarV2-types-B0RbMStE.js +0 -9
- package/dist/supergoop-CSpDPOpl.cjs +0 -337
- package/dist/supergoop-D0UkuRiA.js +0 -335
- package/dist/test-types-C9b_OdfO.d.ts +0 -39
- package/dist/test-types-CpKCxk8U.d.cts +0 -39
- package/dist/types-BE4faOO_.d.cts +0 -32
- package/dist/types-C3S1H4hl.js +0 -176
- package/dist/types-TD8g7LnH.d.ts +0 -32
- package/dist/types-lcjuhDBt.cjs +0 -230
- package/dist/uniqueVintage-DygVpCqU.cjs +0 -1214
- package/dist/uniqueVintage-_n0FZFVj.js +0 -1212
- package/dist/useMessageInterceptor-BP6gzo8a.js +0 -57
- package/dist/useMessageInterceptor-BnUG2Pzt.cjs +0 -72
- package/dist/variant-DH4zusMi.d.cts +0 -12
- package/dist/variant-DTEqSBHd.d.ts +0 -12
- package/dist/variantInfo-BTvC6CQh.js +0 -1
- package/dist/variantInfo-Cz2YXraO.cjs +0 -0
- package/dist/venaCbd-BS0dvdBm.js +0 -366
- package/dist/venaCbd-Pqg0bj-P.cjs +0 -366
- package/dist/westonJonBoucher-CLw8Hy6u.js +0 -423
- package/dist/westonJonBoucher-CeA0jwxe.cjs +0 -423
- package/dist/wineEnthusiast-M9P18d1w.js +0 -941
- package/dist/wineEnthusiast-gHBaQMbe.cjs +0 -941
- package/dist/wolfMattress-BQHjoQYu.js +0 -373
- package/dist/wolfMattress-CdmN-Evm.cjs +0 -373
- package/dist/wolfTactical-Cc2ZLBRh.js +0 -350
- package/dist/wolfTactical-dObnPgAG.cjs +0 -350
- package/src/application/service/environmentService.ts +0 -51
- package/src/extension.ts +0 -63
- package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
- package/src/hooks/useReducedMotionWithOverride.ts +0 -15
- package/src/hooks/useSnapControl.ts +0 -155
- package/src/initialize.ts +0 -163
- package/src/main.tsx +0 -108
- package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +0 -147
- /package/dist/{atomStore-B3tsg6mF.cjs → locators-CugndTUM.cjs} +0 -0
- /package/dist/{atomStore-FSZd_20F.js → locators-DnKpajbY.js} +0 -0
- /package/dist/{locators-C2DX_nX6.js → utilityTypes-BVikejDo.js} +0 -0
- /package/dist/{locators-CUpyd9Wt.cjs → utilityTypes-C4h2wgAK.cjs} +0 -0
- /package/dist/{utilityTypes-DMdsI0DG.cjs → variantInfo-CNRTY0gH.cjs} +0 -0
- /package/dist/{utilityTypes-UWdNHElu.js → variantInfo-CzhR5W6h.js} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { FeatureGates, OrgAnalyticsConfig, OrgAnalyticsGoogleAnalyticsConfig } from "../../
|
|
2
|
-
import {
|
|
3
|
-
import "../../
|
|
4
|
-
import "../../
|
|
5
|
-
import "../../index-
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import "../../
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { SupportedEvent } from "../../variant-
|
|
13
|
-
import {
|
|
1
|
+
import { CategoryExtractor, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, FeatureGates, GridInsertionService, GridInsertionType, IdExtractor, OrgAnalyticsConfig, OrgAnalyticsGoogleAnalyticsConfig, OrgPageConfig, PageVariantConfig, PageVariantTest } from "../../orgConfigResults-BL0XBA6x.cjs";
|
|
2
|
+
import { CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType } from "../../types-CD4LFta-.cjs";
|
|
3
|
+
import "../../test-types-CuOq25VT.cjs";
|
|
4
|
+
import { FeatureFlagService } from "../../featureFlagService-DaelrXEk.cjs";
|
|
5
|
+
import "../../index-BTK5uzs6.cjs";
|
|
6
|
+
import "../../index-ClJ0nMsR.cjs";
|
|
7
|
+
import "../../index-BzgkfbNO.cjs";
|
|
8
|
+
import { DomMutationObserverContinuation, DomObservationStrategy, Message } from "../../index-aNW5V9fh.cjs";
|
|
9
|
+
import { VariantInfo } from "../../index-D46Rd0io.cjs";
|
|
10
|
+
import { findCustomerServiceImpl } from "../../index-zZjcds15.cjs";
|
|
11
|
+
import { AtomStore } from "../../atomStore-ONYy0XuA.cjs";
|
|
12
|
+
import { SupportedEvent } from "../../variant-CQTuQQSq.cjs";
|
|
13
|
+
import { PageVisitCategory } from "@spiffy-ai/commerce-api-client";
|
|
14
14
|
|
|
15
15
|
//#region src/application/service/cachingService.d.ts
|
|
16
16
|
declare function cacheableAsync<T extends (...args: never[]) => Promise<unknown>>(func: T, expiry: number): (...args: Parameters<T>) => Promise<ReturnType<T>>;
|
|
@@ -114,12 +114,17 @@ declare class DomMutationObserver {
|
|
|
114
114
|
static setEndingPollingInterval(interval: number): void;
|
|
115
115
|
}
|
|
116
116
|
//#endregion
|
|
117
|
-
//#region src/application/service/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
//#region src/application/service/graphqlConfigService.d.ts
|
|
118
|
+
/**
|
|
119
|
+
* Service for handling GraphQL configuration fetching and management
|
|
120
|
+
* This service is separated to avoid circular dependencies between atoms
|
|
121
|
+
*/
|
|
122
|
+
declare class GraphQLConfigService {
|
|
123
|
+
/**
|
|
124
|
+
* Fetches GraphQL configuration and updates the relevant atoms
|
|
125
|
+
* @param atomStore - The atom store instance to use for setting values
|
|
126
|
+
*/
|
|
127
|
+
static fetchAndSetGraphQLConfig(atomStore: AtomStore): Promise<void>;
|
|
123
128
|
}
|
|
124
129
|
//#endregion
|
|
125
130
|
//#region src/application/service/kustomerIntegrationService.d.ts
|
|
@@ -404,4 +409,5 @@ declare class OrgsCommonDataLayerListener {
|
|
|
404
409
|
} | undefined;
|
|
405
410
|
}
|
|
406
411
|
//#endregion
|
|
407
|
-
export { CdnService, CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, DataLayerEventsListener, type DomMutationListener, DomMutationListenerState, DomMutationObserver, EmbeddedChatsPlacementsListener,
|
|
412
|
+
export { CdnService, CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, DataLayerEventsListener, type DomMutationListener, DomMutationListenerState, DomMutationObserver, EmbeddedChatsPlacementsListener, FeatureFlagService, GladlyListener, GraphQLConfigService, GridInsertionService, GridInsertionType, KustomerIntegrationService, KustomerVisibilityListener, LocalStorageKeys, LocalStorageService, OrgsCommonDataLayerListener, PageVariantService, SessionStorageService, ShopifyUrlService, UnsupportedCustomerService, UserIdentityService, WindowChatToggleBinder, WindowDataLayerService, cacheable, cacheableAsync, findCustomerServiceImpl, initWindowFrontendConfigOverridesApplyFunction };
|
|
413
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvY2FjaGluZ1NlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2NkblNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9kb21NdXRhdGlvbkxpc3RlbmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbk9ic2VydmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9ncmFwaHFsQ29uZmlnU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uva3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2xvY2FsU3RvcmFnZVNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL3BhZ2VWYXJpYW50U2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uvc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9zaG9waWZ5VXJsU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvdXNlcklkZW50aXR5U2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uvd2luZG93Q2hhdFRvZ2dsZVNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL3dpbmRvd0RhdGFMYXllclNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL3dpbmRvd0Zyb250ZW5kQ29uZmlnU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvY3VzdG9tZXJTZXJ2aWNlL3Byb3ZpZGVycy9VbnN1cHBvcnRlZEN1c3RvbWVyU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvZG9tTXV0YXRpb25zL2RhdGFMYXllci9kYXRhTGF5ZXJFdmVudHNMaXN0ZW5lci5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvZG9tTXV0YXRpb25zL2Zsb2F0aW5nQ2hhdC9lbWJlZGRlZENoYXRzUGxhY2VtZW50c0xpc3RlbmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZ2xhZGx5L2dsYWRseUxpc3RlbmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvc3BpZmZ5L29yZ3MvY29tbW9uL2t1c3RvbWVyVmlzaWJpbGl0eUxpc3RlbmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvc3BpZmZ5L29yZ3MvY29tbW9uL29yZ3NDb21tb25EYXRhTGF5ZXJMaXN0ZW5lci5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgZnVuY3Rpb24gY2FjaGVhYmxlQXN5bmM8VCBleHRlbmRzICguLi5hcmdzOiBuZXZlcltdKSA9PiBQcm9taXNlPHVua25vd24+PihmdW5jOiBULCBleHBpcnk6IG51bWJlcik6ICguLi5hcmdzOiBQYXJhbWV0ZXJzPFQ+KSA9PiBQcm9taXNlPFJldHVyblR5cGU8VD4+O1xuZGVjbGFyZSBmdW5jdGlvbiBjYWNoZWFibGU8VCBleHRlbmRzICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24+KGZ1bmM6IFQsIGV4cGlyeTogbnVtYmVyKTogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pID0+IFJldHVyblR5cGU8VD47XG5leHBvcnQgeyBjYWNoZWFibGUsIGNhY2hlYWJsZUFzeW5jIH07XG4iLCJkZWNsYXJlIGNsYXNzIENkblNlcnZpY2Uge1xuICAgIHN0YXRpYyBnZXQgQ0ROX1VSTCgpOiBzdHJpbmc7XG4gICAgc3RhdGljIGdldENuZEJhc2VQYXRoKCk6IHN0cmluZztcbiAgICBzdGF0aWMgZ2V0QXNzZXRVUkwoYXNzZXROYW1lOiBzdHJpbmcsIG9yZ1Nob3J0TmFtZTogc3RyaW5nKTogc3RyaW5nO1xufVxuZXhwb3J0IHsgQ2RuU2VydmljZSB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9kb21NdXRhdGlvbkNvbnRpbnVhdGlvbic7XG5pbnRlcmZhY2UgRG9tTXV0YXRpb25MaXN0ZW5lciB7XG4gICAgZ2V0TmFtZSgpOiBzdHJpbmc7XG4gICAgcnVuT25jZUltbWVkaWF0ZWx5KCk6IGJvb2xlYW47XG4gICAgZGlzY29ubmVjdD8oKTogdm9pZDtcbiAgICB0cmllc01heCgpOiBudW1iZXI7XG4gICAgb25Eb21DaGFuZ2UoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbn1cbmV4cG9ydCB0eXBlIHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJy4vZG9tTXV0YXRpb25MaXN0ZW5lcic7XG5pbXBvcnQgeyBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RvbU11dGF0aW9uQ29udGludWF0aW9uJztcbmRlY2xhcmUgY2xhc3MgRG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyO1xuICAgIHByaXZhdGUgY3VycmVudFN0YXRlO1xuICAgIHByaXZhdGUgYXR0YWNoZWQ7XG4gICAgcHJpdmF0ZSBjdXJyZW50VHJ5Q291bnQ7XG4gICAgY29uc3RydWN0b3IobGlzdGVuZXI6IERvbU11dGF0aW9uTGlzdGVuZXIpO1xuICAgIGdldExpc3RlbmVyKCk6IERvbU11dGF0aW9uTGlzdGVuZXI7XG4gICAgc2V0Q3VycmVudFN0YXRlKHN0YXRlOiBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uKTogdm9pZDtcbiAgICBnZXRDdXJyZW50U3RhdGUoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbiAgICBnZXRJc0F0dGFjaGVkKCk6IGJvb2xlYW47XG4gICAgc2V0SXNBdHRhY2hlZChhdHRhY2hlZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgZ2V0Q3VycmVudFRyeUNvdW50KCk6IG51bWJlcjtcbiAgICBpbmNyZW1lbnRDdXJyZW50VHJ5Q291bnQoKTogdm9pZDtcbn1cbmV4cG9ydCB7IERvbU11dGF0aW9uTGlzdGVuZXJTdGF0ZSB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlIH0gZnJvbSAnLi9kb21NdXRhdGlvbnMvZG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlJztcbmltcG9ydCB7IERvbU11dGF0aW9uTGlzdGVuZXIgfSBmcm9tICcuL2RvbU11dGF0aW9ucy9kb21NdXRhdGlvbkxpc3RlbmVyJztcbmltcG9ydCB7IERvbU9ic2VydmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9tb2RlbHMvZG9tT2JzZXJ2YXRpb25TdHJhdGVneSc7XG4vKipcbiAqIC0gV2hlbiB1c2VkIGJlZm9yZSBwYWdlIGxvYWQvcmVuZGVyLCBhbiB1bm9wdGltaXplZCBNdXRhdGlvbk9ic2VydmVyIGNhbGxiYWNrIGNhbiBzaWduaWZpY2FudGx5IGRlbGF5IHBhZ2UgbG9hZCB0aW1lLFxuICogICBlc3BlY2lhbGx5IG9uIGNvbXBsZXggcGFnZXMuXG4gKiAtIFRoZSBjYWxsYmFjayBydW5zIGFzIGEgbWljcm90YXNrIGFuZCBjYW4gYmxvY2sgZnVydGhlciBET00gcHJvY2Vzc2luZywgb2Z0ZW4gZmlyaW5nIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHRpbWVzXG4gKiAgIHBlciBzZWNvbmQgb24gYSBjb21wbGV4IHBhZ2UuIE1hbnkgbGlicmFyaWVzIGRvbid0IG9wdGltaXplIGZvciB0aGlzLCByZXN1bHRpbmcgaW4gY2xlYW4tbG9va2luZyBidXQgcG90ZW50aWFsbHkgc2xvdyBjb2RlLlxuICpcbiAqIEJlc3QgUHJhY3RpY2VzIGZvciBNdXRhdGlvbk9ic2VydmVyIE9wdGltaXphdGlvbjpcbiAqIC0gKipQcm9maWxpbmc6KiogVXNlIERldlRvb2xzIFByb2ZpbGVyIHRvIGVuc3VyZSB0aGUgb2JzZXJ2ZXIgY2FsbGJhY2sgdXNlcyBsZXNzIHRoYW4gMC4xJSBvZiB0b3RhbCBDUFUgZHVyaW5nIHBhZ2UgbG9hZC5cbiAqIC0gKipBdm9pZCBGb3JjZWQgTGF5b3V0czoqKiBSZWZyYWluIGZyb20gdHJpZ2dlcmluZyBzeW5jaHJvbm91cyBsYXlvdXRzIGJ5IGFjY2Vzc2luZyBwcm9wZXJ0aWVzIGxpa2UgYG9mZnNldFRvcGAuXG4gKiAtICoqUHJlZmVyIE5hdGl2ZSBET006KiogVXNlIG5hdGl2ZSBET00gbWV0aG9kcyBpbnN0ZWFkIG9mIGNvbXBsZXggZnJhbWV3b3JrcyBsaWtlIGpRdWVyeSB0byByZWR1Y2Ugb3ZlcmhlYWQuXG4gKiAtICoqVXNlIGBhdHRyaWJ1dGVGaWx0ZXJgOioqIFdoZW4gb2JzZXJ2aW5nIGF0dHJpYnV0ZXMsIGxpbWl0IHRoZSBvYnNlcnZhdGlvbnMgdG8gc3BlY2lmaWMgYXR0cmlidXRlcywgZS5nLiwgYGF0dHJpYnV0ZUZpbHRlcjogWydhdHRyMScsICdhdHRyMiddYC5cbiAqIC0gKipOb24tcmVjdXJzaXZlIE9ic2VydmF0aW9uczoqKiBPYnNlcnZlIGRpcmVjdCBwYXJlbnQgZWxlbWVudHMgd2l0aCBgc3VidHJlZTogZmFsc2VgIHdoZW5ldmVyIHBvc3NpYmxlLiBGb3IgaW5zdGFuY2UsIGluaXRpYWxseSBvYnNlcnZlIGBkb2N1bWVudGAgcmVjdXJzaXZlbHksIGRpc2Nvbm5lY3Qgb24gc3VjY2VzcywgYW5kIHJlYXR0YWNoIGEgbm9uLXJlY3Vyc2l2ZSBvYnNlcnZlciB0byB0aGUgcGFyZW50IGVsZW1lbnQuXG4gKiAtICoqRGlyZWN0IEVsZW1lbnQgQWNjZXNzOioqIFdoZW4gd2FpdGluZyBmb3IgYSBzaW5nbGUgZWxlbWVudCB3aXRoIGFuIGBpZGAsIHVzZSBgZ2V0RWxlbWVudEJ5SWRgIGluc3RlYWQgb2YgbG9vcGluZyBvdmVyIHRoZSBgbXV0YXRpb25zYCBhcnJheS5cbiAqIC0gKipIVE1MQ29sbGVjdGlvbiBDaGVja3M6KiogRm9yIHJhcmUgZWxlbWVudHMgKGUuZy4sIGA8aWZyYW1lPmAgb3IgYDxvYmplY3Q+YCksIHVzZSBsaXZlIEhUTUxDb2xsZWN0aW9ucyBmcm9tIGBnZXRFbGVtZW50c0J5VGFnTmFtZWAgb3IgYGdldEVsZW1lbnRzQnlDbGFzc05hbWVgIHJhdGhlciB0aGFuIGVudW1lcmF0aW5nIG11dGF0aW9ucywgZXNwZWNpYWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgbXV0YXRpb25zLlxuICogLSAqKkF2b2lkIGBxdWVyeVNlbGVjdG9yQWxsYDoqKiBVc2UgYHF1ZXJ5U2VsZWN0b3JgIGZpcnN0IGZvciBhbiBpbml0aWFsIGNoZWNrOyBpZiBzdWNjZXNzZnVsLCBwcm9jZWVkIHdpdGggYHF1ZXJ5U2VsZWN0b3JBbGxgIG9ubHkgd2hlbiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gVGhpcyBjb21ibyBpcyBvZnRlbiBmYXN0ZXIgb24gYXZlcmFnZS5cbiAqIC0gKipMZWdhY3kgQnJvd3NlciBDb21wYXRpYmlsaXR5OioqXG4gKiAgIC0gQXZvaWQgYEFycmF5YCBtZXRob2RzIGxpa2UgYGZvckVhY2hgLCBgZmlsdGVyYCwgZXRjLiwgYW5kIEVTMjAxNSBsb29wcyAoYGZvci4uLm9mYCkgaW4gcHJlLTIwMTggQ2hyb21lIGZvciBNdXRhdGlvbk9ic2VydmVyIGNhbGxiYWNrcyxcbiAqICAgICBhcyB0aGVzZSBjYW4gYmUgdXAgdG8gMTAweCBzbG93ZXIgdGhhbiB0cmFkaXRpb25hbCBgZm9yYCBsb29wcy5cbiAqICAgLSBBbHRlcm5hdGl2ZWx5LCB1c2UgYSBmYXN0IGZ1bmN0aW9uYWwgbGlicmFyeSBsaWtlIGxvZGFzaCBvbiBvbGRlciBicm93c2Vycy4gQ2hyb21lIDIwMTgrIGlubGluZXMgYXJyYXkgbWV0aG9kcyBlZmZpY2llbnRseS5cbiAqIC0gKipTY2hlZHVsZWQgUmUtY2hlY2tpbmc6KiogRm9yIHZpc3VhbCB1cGRhdGVzLCBpZiB5b3UgY2FuIGRldGVybWluZSBlbGVtZW50cyBhcmUgb2Zmc2NyZWVuLCBkaXNjb25uZWN0IHRoZSBvYnNlcnZlciBhbmQgdXNlIGBzZXRUaW1lb3V0KGZuLCAwKWAgdG8gZGVsYXkgcHJvY2Vzc2luZyB1bnRpbCBpbml0aWFsIHBhcnNpbmcvbGF5b3V0IGlzIGNvbXBsZXRlLiBBZnRlciB0aGF0LCB1c2UgYHJlcXVlc3RBbmltYXRpb25GcmFtZWAgZm9yIGNodW5rZWQgcHJvY2Vzc2luZy5cbiAqIC0gKipEZWJvdW5jZSBMb25nIFByb2Nlc3Npbmc6KiogSWYgdGhlIGNhbGxiYWNrIHByb2Nlc3NpbmcgaXMgbGVuZ3RoeSwgY2F1c2luZyB1bnJlc3BvbnNpdmVuZXNzIG9yIGphbmssIHVzZSBkZWJvdW5jaW5nIGJ5IGFjY3VtdWxhdGluZyBtdXRhdGlvbnMgaW4gYW4gYXJyYXkgYW5kIHNjaGVkdWxpbmcgcHJvY2Vzc2luZyB3aXRoIGBzZXRUaW1lb3V0YCwgYHJlcXVlc3RJZGxlQ2FsbGJhY2tgLCBvciBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYC5cbiAqXG4gKiBFeGFtcGxlIG9mIERlYm91bmNlIFNldHVwOlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcXVldWU6IE11dGF0aW9uUmVjb3JkW10gPSBbXTtcbiAqIGNvbnN0IG1vID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAqICAgaWYgKCFxdWV1ZS5sZW5ndGgpIHJlcXVlc3RBbmltYXRpb25GcmFtZShwcm9jZXNzKTtcbiAqICAgcXVldWUucHVzaCguLi5tdXRhdGlvbnMpO1xuICogfSk7XG4gKiBmdW5jdGlvbiBwcm9jZXNzKCkge1xuICogICBmb3IgKGNvbnN0IG11dGF0aW9ucyBvZiBxdWV1ZSkge1xuICogICAgIC8vIFByb2Nlc3NpbmcgbG9naWNcbiAqICAgfVxuICogICBxdWV1ZS5sZW5ndGggPSAwO1xuICogfVxuICogYGBgXG4gKiBOb3RlOiBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYCBvbmx5IHRyaWdnZXJzIHdoZW4gdGhlIHBhZ2UgaXMgdmlzaWJsZS5cbiAqL1xuZGVjbGFyZSBjbGFzcyBEb21NdXRhdGlvbk9ic2VydmVyIHtcbiAgICBwcml2YXRlIHN0YXRpYyBvYnNlcnZlclZlcnNpb247XG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5kaXZpZHVhbE9ic2VydmVycztcbiAgICBwcml2YXRlIHN0YXRpYyBkZWZlcnJlZEV4ZWN1dGlvbkRlbGF5O1xuICAgIHByaXZhdGUgc3RhdGljIHN0YXJ0aW5nUG9sbGluZ0ludGVydmFsO1xuICAgIHByaXZhdGUgc3RhdGljIGVuZGluZ1BvbGxpbmdJbnRlcnZhbDtcbiAgICBwcml2YXRlIHN0YXRpYyB1c2VEZWJvdW5jZTtcbiAgICBwcml2YXRlIHN0YXRpYyBsaXN0ZW5lcnM7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbXV0YXRpb25zUXVldWVQZXJMaXN0ZW5lcjtcbiAgICBwcml2YXRlIHN0YXRpYyBtdXRhdGlvbnNRdWV1ZTtcbiAgICBwcml2YXRlIHN0YXRpYyBvYnNlcnZhdGlvblN0cmF0ZWd5O1xuICAgIHN0YXRpYyBhZGREb21NdXRhdGlvbkxpc3RlbmVyKGxpc3RlbmVyOiBEb21NdXRhdGlvbkxpc3RlbmVyKTogdm9pZDtcbiAgICBzdGF0aWMgaW52b2tlTGlzdGVuZXIobDogRG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlKTogdm9pZDtcbiAgICBzdGF0aWMgb2JzZXJ2ZU9uRG9tUmVhZHkoc3RyYXRlZ3k6IERvbU9ic2VydmF0aW9uU3RyYXRlZ3kpOiB2b2lkO1xuICAgIHN0YXRpYyBvYnNlcnZlKHN0cmF0ZWd5UmVxdWVzdGVkOiBEb21PYnNlcnZhdGlvblN0cmF0ZWd5KTogdm9pZDtcbiAgICBwcml2YXRlIHN0YXRpYyBydW5PbmNlSW1tZWRpYXRlbHlJZlJlcXVpcmVkO1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmVJbmRpdmlkdWFsbHlXaXRoRGVib3VuY2U7XG4gICAgcHJpdmF0ZSBzdGF0aWMgb2JzZXJ2ZUluZGl2aWR1YWxseTtcbiAgICBwcml2YXRlIHN0YXRpYyBvYnNlcnZlQ29sbGVjdGl2ZWx5V2l0aERlYm91bmNlO1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmVDb2xsZWN0aXZlbHk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcG9sbDtcbiAgICBwcml2YXRlIHN0YXRpYyBvYnNlcnZlQnlQb2xsaW5nO1xuICAgIHN0YXRpYyBkaXNjb25uZWN0KGxpc3RlbmVyOiBEb21NdXRhdGlvbkxpc3RlbmVyKTogdm9pZDtcbiAgICBzdGF0aWMgc2V0U3RhcnRpbmdQb2xsaW5nSW50ZXJ2YWwoaW50ZXJ2YWw6IG51bWJlcik6IHZvaWQ7XG4gICAgc3RhdGljIHNldEVuZGluZ1BvbGxpbmdJbnRlcnZhbChpbnRlcnZhbDogbnVtYmVyKTogdm9pZDtcbn1cbmV4cG9ydCB7IERvbU11dGF0aW9uT2JzZXJ2ZXIgfTtcbiIsImltcG9ydCB7IEF0b21TdG9yZSB9IGZyb20gXCJzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZVwiO1xuLyoqXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyBHcmFwaFFMIGNvbmZpZ3VyYXRpb24gZmV0Y2hpbmcgYW5kIG1hbmFnZW1lbnRcbiAqIFRoaXMgc2VydmljZSBpcyBzZXBhcmF0ZWQgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gYXRvbXNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgR3JhcGhRTENvbmZpZ1NlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEZldGNoZXMgR3JhcGhRTCBjb25maWd1cmF0aW9uIGFuZCB1cGRhdGVzIHRoZSByZWxldmFudCBhdG9tc1xuICAgICAqIEBwYXJhbSBhdG9tU3RvcmUgLSBUaGUgYXRvbSBzdG9yZSBpbnN0YW5jZSB0byB1c2UgZm9yIHNldHRpbmcgdmFsdWVzXG4gICAgICovXG4gICAgc3RhdGljIGZldGNoQW5kU2V0R3JhcGhRTENvbmZpZyhhdG9tU3RvcmU6IEF0b21TdG9yZSk6IFByb21pc2U8dm9pZD47XG59XG4iLCJkZWNsYXJlIGNsYXNzIEt1c3RvbWVySW50ZWdyYXRpb25TZXJ2aWNlIHtcbiAgICBzdGF0aWMgS1VTVE9NRVJfTE9DQUxfU1RPUkFHRV9LRVk6IHN0cmluZztcbiAgICBzdGF0aWMgS1VTVE9NRVJfSUZSQU1FX0lEOiBzdHJpbmc7XG4gICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBpbml0T25jZSgpOiB2b2lkO1xuICAgIGRpc2Nvbm5lY3QoKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBLdXN0b21lciBjaGF0IGljb24uXG4gICAgICovXG4gICAgdXBkYXRlVmlzaWJpbGl0eSgpOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFF1ZXJpZXMgdGhlIGRvY3VtZW50IGJvZHkgZm9yIHRoZSBLdXN0b21lciBTREsgaWZyYW1lLiBUaGlzIGZ1bmN0aW9uIGlzIHRvIGJlIHJ1biBpbiBhXG4gICAgICogTXV0YXRpb25PYnNlcnZlci5cbiAgICAgKiBAcmV0dXJucyB0aGUgaWZyYW1lIGVsZW1lbnQgaWYgaXQgZXhpc3RzLCBlbHNlIHVuZGVmaW5lLlxuICAgICAqL1xuICAgIGZpbmRLdXN0b21lckJ1dHRvbigpOiBIVE1MSUZyYW1lRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBLdXN0b21lciBjaGF0IGljb24gdmlzaWJpbGl0eSB3aGVuIHRoZSBrdXN0b21lclN0YXRlIGxvY2FsU3RvcmFnZSBpdGVtIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAgICovXG4gICAgb25DdXN0b21lclN0YXRlQ2hhbmdlKGV2ZW50OiBTdG9yYWdlRXZlbnQpOiB2b2lkO1xufVxuZXhwb3J0IHsgS3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2UgfTtcbiIsImV4cG9ydCBkZWNsYXJlIGVudW0gTG9jYWxTdG9yYWdlS2V5cyB7XG4gICAgQ2hhdElkID0gXCJ2MS1zcGlmZnktY2hhdC1zZXNzaW9uLWlkXCIsXG4gICAgU3BpZmZ5T25PdmVycmlkZSA9IFwic3BpZmZ5X29uXCIsXG4gICAgRW52aXZlT25PdmVycmlkZSA9IFwiZW52aXZlX29uXCJcbn1cbmRlY2xhcmUgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gICAgc3RhdGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzdGF0aWMgc2V0U3BpZmZ5T25GZWF0dXJlRmxhZyh2YWx1ZTogYm9vbGVhbiB8IG51bGwpOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRTcGlmZnlPbkZlYXR1cmVGbGFnKCk6IHN0cmluZyB8IG51bGw7XG4gICAgc3RhdGljIGdldExvY2FsU3RvcmFnZSgpOiBTdG9yYWdlO1xuICAgIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyc0NhY2hlO1xuICAgIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyRm9yS2V5O1xuICAgIC8qKlxuICAgICAqIEF0dGFjaCBhIGxpc3RlbmVyIHRvIHRoZSB3aW5kb3cncyBzdG9yYWdlIGV2ZW50LiBTYWZlIHRvIGNhbGwgbXVsdGlwbGUgdGltZXMuXG4gICAgICogQHBhcmFtIGxpc3RlbmVyXG4gICAgICovXG4gICAgc3RhdGljIGF0dGFjaExpc3RlbmVyKGxpc3RlbmVyOiBMb2NhbFN0b3JhZ2VFdmVudExpc3RlbmVyKTogdm9pZDtcbiAgICBzdGF0aWMgZGV0YWNoTGlzdGVuZXIobGlzdGVuZXI6IExvY2FsU3RvcmFnZUV2ZW50TGlzdGVuZXIpOiB2b2lkO1xufVxuZXhwb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9O1xuIiwiaW1wb3J0IHsgQ2F0ZWdvcnlFeHRyYWN0b3IsIElkRXh0cmFjdG9yLCBPcmdQYWdlQ29uZmlnLCBQYWdlVmFyaWFudENvbmZpZywgUGFnZVZhcmlhbnRUZXN0IH0gZnJvbSBcInNyYy9jb250ZXh0cy90eXBlc1wiO1xuaW1wb3J0IHsgTWVzc2FnZSwgVmFyaWFudEluZm8gfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVsc1wiO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzXCI7XG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7IFN1cHBvcnRlZEV2ZW50IH0gZnJvbSBcInNyYy9hdG9tcy9hcHAvdmFyaWFudFwiO1xuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gcmVzb2x2ZSB0aGUgUGFnZVZhcmlhbnRzIGZvciB0aGUgU3BpZmZ5IEFwcC5cbiAqIEl0IGluY2x1ZGVzIGEgbnVtYmVyIG9mIHN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcGVyZm9ybWluZyBwYWdlVGVzdHMgYW5kXG4gKiBleHRyYWN0aW5nIGRhdGEgbmVjZXNzYXJ5IHRvIGJ1aWxkIHRoZSBQYWdlVmFyaWFudHMuXG4gKlxuICogVW5kZXIgbW9zdCBjaXJjdW1zdGFuY2VzIG9ubHkgYGdldFZhcmlhbnRJbmZvV2l0aFBhZ2VDb25maWdgIHdpbGwgYmUgY2FsbGVkIGV4dGVybmFsbHlcbiAqIFRoZSBvdGhlciBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQgaW50ZXJuYWxseSBieSB0aGF0IGZ1bmN0aW9uLlxuICovXG5kZWNsYXJlIGNsYXNzIFBhZ2VWYXJpYW50U2VydmljZSB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHBhZ2VUZXN0OiAodGVzdDogUGFnZVZhcmlhbnRUZXN0LCBwYWdlVmFyaWFudENvbmZpZzogUGFnZVZhcmlhbnRDb25maWcsIGF0b21WYWx1ZXM/OiB7XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuO1xuICAgICAgICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gICAgICAgIGxhc3RBc3Npc3RhbnRNZXNzYWdlPzogTWVzc2FnZVtdIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGdldENhY2hlZFVybFJlc29sdmVyO1xuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBwYWdlIG1hdGNoZXMgdGhlIGV4cGVjdGVkIGNhdGFsb2cgY2F0ZWdvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnkgLSBUaGUgZXhwZWN0ZWQgY2F0YWxvZyBjYXRlZ29yeSBhcyBkZWZpbmVkIGJ5IGRhdGEgaW4gRWxhc3RpYyBTZWFyY2guXG4gICAgICogQHBhcmFtIHBhZ2VWYXJpYW50Q29uZmlnIC0gVGhlIHZhcmlhbnQgY29uZmlnIGZvciB0aGUgY3VycmVudCBwYWdlLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY3VycmVudCBwYWdlIG1hdGNoZXMgdGhlIGV4cGVjdGVkIGNhdGFsb2cgY2F0ZWdvcnkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2hlY2tDYXRhbG9nQ2F0ZWdvcnk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2hlY2tJblRvcENhdGVnb3J5O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrSGFzUmV2aWV3cztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjaGVja0luQ29sbGVjdGlvbjtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjaGVja0hhc01lcmNoYW50VGFnO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHVzZXJIYXNJbnRlcmFjdGVkO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHVzZXJIYXNOb3RJbnRlcmFjdGVkO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGlzTG9hZGluZztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBpc1Byb2R1Y3RDb21wYXJpc29uO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrUGxwSWRzO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrUXVlcnlQYXJhbTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjaGVja1Byb2R1Y3RJZDtcbiAgICBzdGF0aWMgY2hlY2tGZWF0dXJlR2F0ZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbjtcbiAgICBzdGF0aWMgZ2V0Q2F0ZWdvcnkoZXh0cmFjdG9yOiBDYXRlZ29yeUV4dHJhY3Rvcik6IFBhZ2VWaXNpdENhdGVnb3J5IHwgbnVsbDtcbiAgICBzdGF0aWMgZ2V0SWQoZXh0cmFjdG9yPzogSWRFeHRyYWN0b3IpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGdldElkRnJvbVVybFJlc29sdmVyO1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhcmlhbnQgaW5mbyBmb3IgdGhlIGN1cnJlbnQgcGFnZSBiYXNlZCBvbiB0aGUgbWVyY2hhbnQncyBwYWdlIGNvbmZpZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcmdQYWdlQ29uZmlnIC0gVGhlIG1lcmNoYW50J3MgcGFnZSBjb25maWcuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFyaWFudCBpbmZvIGZvciB0aGUgY3VycmVudCBwYWdlLCBvciB1bmRlZmluZWQgaWYgdGhlIHBhZ2UgdGVzdHMgZG8gbm90XG4gICAgICogcmV0dXJuIGFueSBtYXRjaGVzLlxuICAgICAqL1xuICAgIHN0YXRpYyByZWFkb25seSBnZXRWYXJpYW50SW5mb1dpdGhQYWdlQ29uZmlnOiAob3JnUGFnZUNvbmZpZzogT3JnUGFnZUNvbmZpZykgPT4gUHJvbWlzZTxbVmFyaWFudEluZm8sIFBhZ2VWYXJpYW50Q29uZmlnXSB8IHVuZGVmaW5lZD47XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHBhZ2UgaXMgc3VwcG9ydGVkLiBBIHBhZ2UgaXMgc3VwcG9ydGVkIGlmIGl0IGhhcyBiZWVuIGluZGV4ZWQgaW5cbiAgICAgKiBFbGFzdGljIFNlYXJjaCBhbmQgaXRzIGNhdGVnb3J5IGhhcyBiZWVuIHdoaXRlbGlzdGVkIGJ5IHRoZSBiYWNrZW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2VWYXJpYW50Q29uZmlnIC0gVGhlIHZhcmlhbnQgY29uZmlnIGZvciB0aGUgY3VycmVudCBwYWdlIHdoaWNoIGlzIHVzZWQgdG8gZ2V0XG4gICAgICogdGhlIHZhcmlhbnQgaW5mby5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBzdXBwb3J0ZWQgZXZlbnQgcmVzcG9uc2UgZnJvbSB0aGUgYmFja2VuZCwgb3IgdW5kZWZpbmVkIGlmIHRoZSBwYWdlIGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAgICovXG4gICAgc3RhdGljIHJlYWRvbmx5IGNoZWNrU3VwcG9ydGVkRXZlbnQ6IChwYWdlVmFyaWFudENvbmZpZzogUGFnZVZhcmlhbnRDb25maWcpID0+IFByb21pc2U8U3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQ+O1xuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgcGFnZSB2YXJpYW50IGNvbmZpZyBpbnRvIGEgdmFyaWFudCBpbmZvIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlVmFyaWFudENvbmZpZyAtIFRoZSB2YXJpYW50IGNvbmZpZyBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbiAgICAgKiBAcGFyYW0gdXJsIC0gVGhlIGN1cnJlbnQgVVJMIG9mIHRoZSBwYWdlLiBUaGlzIGlzIHVzZWQgdG8gZXh0cmFjdCB0aGUgcGRwL3BscCBpZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB2YXJpYW50IGluZm8gZm9yIHRoZSBjdXJyZW50IHBhZ2UsIG9yIHVuZGVmaW5lZCBpZiB0aGUgcGFnZSB2YXJpYW50IGNvbmZpZyBpcyBpbnZhbGlkIG9yIG5vdCBzdXBwb3J0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcGFyc2VQYWdlVmFyaWFudENvbmZpZztcbn1cbmV4cG9ydCB7IFBhZ2VWYXJpYW50U2VydmljZSB9O1xuIiwiZGVjbGFyZSBjbGFzcyBTZXNzaW9uU3RvcmFnZVNlcnZpY2Uge1xuICAgIHN0YXRpYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcbiAgICBzdGF0aWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGw7XG4gICAgc3RhdGljIGdldFNlc3Npb25TdG9yYWdlKCk6IFN0b3JhZ2U7XG59XG5leHBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfTtcbiIsImltcG9ydCB7IElkRXh0cmFjdG9yIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmRlY2xhcmUgY2xhc3MgU2hvcGlmeVVybFNlcnZpY2Uge1xuICAgIHN0YXRpYyBnZXRUcmltbWVkUGF0aE5hbWUoKTogc3RyaW5nIHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBQYXJzZXMgdGhlIFVSTCB0byBkZXRlcm1pbmUgdGhlIFBMUCBvciBQRFAgSUQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXh0cmFjdG9yIHRoZSB0eXBlIG9mIGV4dHJhY3RvciB0byBwYXJzZSBzZWdtZW50cyBvZiB0aGUgcGFnZSBVUkxcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBQTFAgb3IgUERQIElEIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRQbHBPclBkcElkKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpOiBzdHJpbmcgfCBudWxsO1xuICAgIHN0YXRpYyBpc09uUGRwUGFnZSgpOiBib29sZWFuO1xuICAgIHN0YXRpYyBpc09uUGxwUGFnZSgpOiBib29sZWFuO1xufVxuZXhwb3J0IHsgU2hvcGlmeVVybFNlcnZpY2UgfTtcbiIsImRlY2xhcmUgY2xhc3MgVXNlcklkZW50aXR5U2VydmljZSB7XG4gICAgc3RhdGljIFVTRVJfSURfT1ZFUlJJREVfS0VZOiBzdHJpbmc7XG4gICAgc3RhdGljIFVTRVJfSURfREVGQVVMVF9LRVk6IHN0cmluZztcbiAgICBzdGF0aWMgaWRlbnRpZnlVc2VyKCk6IFByb21pc2U8dm9pZD47XG4gICAgc3RhdGljIGdldFVzZXJJZE9yRGVmYXVsdCgpOiBzdHJpbmc7XG4gICAgc3RhdGljIGdldFVzZXJJZE92ZXJyaWRlRnJvbUxvY2FsU3RvcmFnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldFVzZXJJZERlZmF1bHRGcm9tTG9jYWxTdG9yYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgc2V0VXNlcklkRGVmYXVsdEluTG9jYWxTdG9yYWdlKHVzZXJJZDogc3RyaW5nKTogc3RyaW5nO1xuICAgIHN0YXRpYyBzZXRVc2VySWRPdmVycmlkZUluTG9jYWxTdG9yYWdlKHVzZXJJZDogc3RyaW5nKTogc3RyaW5nO1xuICAgIHN0YXRpYyBjbGVhclVzZXJJZE92ZXJyaWRlSW5Mb2NhbFN0b3JhZ2UoKTogdm9pZDtcbn1cbmV4cG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfTtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IFdpbmRvd0NoYXRUb2dnbGVCaW5kZXI6ICgpID0+IG51bGw7XG4iLCJpbXBvcnQgeyBPcmdBbmFseXRpY3NHb29nbGVBbmFseXRpY3NDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdBbmFseXRpY3NDb25maWcnO1xuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBkYXRhTGF5ZXI6IGFueTtcbiAgICB9XG59XG5kZWNsYXJlIGNsYXNzIFdpbmRvd0RhdGFMYXllclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2FDb25maWc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhTGF5ZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmlnaW5hbERhdGFMYXllclB1c2g7XG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXJjaGFudEdvb2dsZU1lYXN1cmVtZW50SWQ7XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpO1xuICAgIC8qKlxuICAgICAqIFB1c2hlcyBkYXRhIHRvIHRoZSBkYXRhTGF5ZXJcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqICBkYXRhIGhhcyB0aGUgc2hhcGU6IHsgZXZlbnQ6ICdldmVudF9uYW1lJywgLi4uIH1cbiAgICAgKiAgRXhhbXBsZTpcbiAgICAgKiAge1xuICAgICAqICAgICAgICAgXCJldmVudFwiOiBcImFkZF90b19jYXJ0XCIsXG4gICAgICogICAgICAgICBcImN1cnJlbmN5XCI6IFwiVVNEXCIsXG4gICAgICogICAgICAgICBcInZhbHVlXCI6IDMwLjAzLFxuICAgICAqICAgICAgICAgXCJpdGVtc1wiOiBbXG4gICAgICogICAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1faWRcIjogXCJTS1VfMTIzNDVcIixcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fbmFtZVwiOiBcIlN0YW4gYW5kIEZyaWVuZHMgVGVlXCIsXG4gICAgICogICAgICAgICAgICAgXCJhZmZpbGlhdGlvblwiOiBcIkdvb2dsZSBNZXJjaGFuZGlzZSBTdG9yZVwiLFxuICAgICAqICAgICAgICAgICAgIFwiY291cG9uXCI6IFwiU1VNTUVSX0ZVTlwiLFxuICAgICAqICAgICAgICAgICAgIFwiZGlzY291bnRcIjogMi4yMixcbiAgICAgKiAgICAgICAgICAgICBcImluZGV4XCI6IDAsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX2JyYW5kXCI6IFwiR29vZ2xlXCIsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX2NhdGVnb3J5XCI6IFwiQXBwYXJlbFwiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9jYXRlZ29yeTJcIjogXCJBZHVsdFwiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9jYXRlZ29yeTNcIjogXCJTaGlydHNcIixcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fY2F0ZWdvcnk0XCI6IFwiQ3Jld1wiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9jYXRlZ29yeTVcIjogXCJTaG9ydCBzbGVldmVcIixcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fbGlzdF9pZFwiOiBcInJlbGF0ZWRfcHJvZHVjdHNcIixcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fbGlzdF9uYW1lXCI6IFwiUmVsYXRlZCBQcm9kdWN0c1wiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV92YXJpYW50XCI6IFwiZ3JlZW5cIixcbiAgICAgKiAgICAgICAgICAgICBcImxvY2F0aW9uX2lkXCI6IFwiQ2hJSklRQnBBRzJhaFlBUl82MTI4R2NUVUVvXCIsXG4gICAgICogICAgICAgICAgICAgXCJwcmljZVwiOiAxMC4wMSxcbiAgICAgKiAgICAgICAgICAgICBcInF1YW50aXR5XCI6IDNcbiAgICAgKiAgICAgICAgICAgfVxuICAgICAqICAgICAgICAgXVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBwdXNoKGRhdGE6IGFueSk6IHZvaWQ7XG4gICAgc3RhdGljIGlzRGF0YUxheWVyQXZhaWxhYmxlKCk6IGJvb2xlYW47XG4gICAgc3RhdGljIHRyeUZsYXR0ZW5Bcmd1bWVudHMoYXJnczogYW55KTogYW55O1xuICAgIHdyYXBXaXRoUHJveHlNZXRob2QobWV0aG9kTmFtZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRTaW5nbGV0b25JbnN0YW5jZU9mKGdhQ29uZmlnOiBPcmdBbmFseXRpY3NHb29nbGVBbmFseXRpY3NDb25maWcpOiBXaW5kb3dEYXRhTGF5ZXJTZXJ2aWNlO1xuICAgIHNlbmRUb0dvb2dsZUFuYWx5dGljc0NpcmN1bGFyRXZlbnRzU2FmZShldmVudE5hbWU6IHN0cmluZywgZXZlbnRQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQpOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRHb29nbGVBbmFseXRpY3NDbGllbnRJZDogKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IHsgV2luZG93RGF0YUxheWVyU2VydmljZSB9O1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgaW5pdFdpbmRvd0Zyb250ZW5kQ29uZmlnT3ZlcnJpZGVzQXBwbHlGdW5jdGlvbjogKCkgPT4gdm9pZDtcbiIsImltcG9ydCB7IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgVW5zdXBwb3J0ZWRDdXN0b21lclNlcnZpY2U6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uO1xuIiwiaW1wb3J0IHsgT3JnQW5hbHl0aWNzR29vZ2xlQW5hbHl0aWNzQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQW5hbHl0aWNzQ29uZmlnJztcbmltcG9ydCB7IERvbU11dGF0aW9uTGlzdGVuZXIgfSBmcm9tICcuLi9kb21NdXRhdGlvbkxpc3RlbmVyJztcbmltcG9ydCB7IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZG9tTXV0YXRpb25Db250aW51YXRpb24nO1xuZGVjbGFyZSBjbGFzcyBEYXRhTGF5ZXJFdmVudHNMaXN0ZW5lciBpbXBsZW1lbnRzIERvbU11dGF0aW9uTGlzdGVuZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EYXRhTGF5ZXJQdXNoO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzVG9JbnRlcmNlcHQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dEYXRhTGF5ZXJTZXJ2aWNlO1xuICAgIGNvbnN0cnVjdG9yKG9uRGF0YUxheWVyUHVzaDogKGV2ZW50OiBvYmplY3QpID0+IHZvaWQsIGV2ZW50c1RvSW50ZXJjZXB0OiBzdHJpbmdbXSwgZ2FDb25maWc6IE9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZyk7XG4gICAgcnVuT25jZUltbWVkaWF0ZWx5KCk6IGJvb2xlYW47XG4gICAgdHJpZXNNYXgoKTogbnVtYmVyO1xuICAgIG9uRG9tQ2hhbmdlKCk6IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb247XG4gICAgZ2V0TmFtZSgpOiBzdHJpbmc7XG59XG5leHBvcnQgeyBEYXRhTGF5ZXJFdmVudHNMaXN0ZW5lciB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJy4uL2RvbU11dGF0aW9uTGlzdGVuZXInO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kb21NdXRhdGlvbkNvbnRpbnVhdGlvbic7XG5kZWNsYXJlIGNsYXNzIEVtYmVkZGVkQ2hhdHNQbGFjZW1lbnRzTGlzdGVuZXIgaW1wbGVtZW50cyBEb21NdXRhdGlvbkxpc3RlbmVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbmRQbGFjZW1lbnROb2RlcztcbiAgICBjb25zdHJ1Y3RvcihmaW5kUGxhY2VtZW50Tm9kZXM6ICgpID0+IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24pO1xuICAgIHJ1bk9uY2VJbW1lZGlhdGVseSgpOiBib29sZWFuO1xuICAgIG9uRG9tQ2hhbmdlKCk6IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb247XG4gICAgZ2V0TmFtZSgpOiBzdHJpbmc7XG4gICAgdHJpZXNNYXgoKTogbnVtYmVyO1xufVxuZXhwb3J0IHsgRW1iZWRkZWRDaGF0c1BsYWNlbWVudHNMaXN0ZW5lciwgfTtcbiIsImltcG9ydCB7IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZG9tTXV0YXRpb25Db250aW51YXRpb24nO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJy4uL2RvbU11dGF0aW9uTGlzdGVuZXInO1xuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBHbGFkbHk6IHtcbiAgICAgICAgICAgIHNob3c6ICgpID0+IHZvaWQ7XG4gICAgICAgICAgICBnZXRVc2VyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpdHk6IHN0cmluZztcbiAgICAgICAgICAgIH0gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBnZXRBdmFpbGFiaWxpdHk6ICgpID0+IHN0cmluZztcbiAgICAgICAgICAgIG9uOiAoZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgICAgICB9O1xuICAgIH1cbn1cbmRlY2xhcmUgY2xhc3MgR2xhZGx5TGlzdGVuZXIgaW1wbGVtZW50cyBEb21NdXRhdGlvbkxpc3RlbmVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uR2xhZGx5QXZhaWxhYmxlO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEdMQURMWV9SRVRSSUVTX01BWDtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBHTEFETFlfQ09OVkVSU0FUSU9OX1NUQVJURURfRVZFTlRfTkFNRTtcbiAgICBjb25zdHJ1Y3RvcihvbkdsYWRseUF2YWlsYWJsZTogKCkgPT4gdm9pZCk7XG4gICAgcnVuT25jZUltbWVkaWF0ZWx5KCk6IGJvb2xlYW47XG4gICAgdHJpZXNNYXgoKTogbnVtYmVyO1xuICAgIG9uRG9tQ2hhbmdlKCk6IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb247XG4gICAgZ2V0TmFtZSgpOiBzdHJpbmc7XG59XG5leHBvcnQgeyBHbGFkbHlMaXN0ZW5lciB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZG9tTXV0YXRpb25Db250aW51YXRpb24nO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9kb21NdXRhdGlvbkxpc3RlbmVyJztcbmltcG9ydCB7IEt1c3RvbWVySW50ZWdyYXRpb25TZXJ2aWNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uva3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2UnO1xuZGVjbGFyZSBjbGFzcyBLdXN0b21lclZpc2liaWxpdHlMaXN0ZW5lciBpbXBsZW1lbnRzIERvbU11dGF0aW9uTGlzdGVuZXIge1xuICAgIGt1c3RvbWVySW50ZWdyYXRpb25TZXJ2aWNlOiBLdXN0b21lckludGVncmF0aW9uU2VydmljZTtcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIHJ1bk9uY2VJbW1lZGlhdGVseSgpOiBib29sZWFuO1xuICAgIHRyaWVzTWF4KCk6IG51bWJlcjtcbiAgICBkaXNjb25uZWN0KCk6IHZvaWQ7XG4gICAgb25Eb21DaGFuZ2UoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbiAgICBnZXROYW1lKCk6IHN0cmluZztcbn1cbmV4cG9ydCB7IEt1c3RvbWVyVmlzaWJpbGl0eUxpc3RlbmVyIH07XG4iLCJpbXBvcnQgeyBPcmdBbmFseXRpY3NDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdBbmFseXRpY3NDb25maWcnO1xuaW1wb3J0IHsgRGF0YUxheWVyRXZlbnRzTGlzdGVuZXIgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZGF0YUxheWVyL2RhdGFMYXllckV2ZW50c0xpc3RlbmVyJztcbmRlY2xhcmUgY2xhc3MgT3Jnc0NvbW1vbkRhdGFMYXllckxpc3RlbmVyIHtcbiAgICBwcml2YXRlIHN0YXRpYyBkYXRhTGF5ZXJDYWNoZTtcbiAgICBzdGF0aWMgcmVzZXREYXRhTGF5ZXJDYWNoZSgpOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRTaW5nbGV0b25EYXRhTGF5ZXJMaXN0ZW5lckNhbGxiYWNrQ29tYm8ob3JnU2hvcnROYW1lOiBzdHJpbmcsIG9yZ0FuYWx5dGljc0NvbmZpZzogT3JnQW5hbHl0aWNzQ29uZmlnKToge1xuICAgICAgICBkYXRhTGF5ZXJMaXN0ZW5lcjogRGF0YUxheWVyRXZlbnRzTGlzdGVuZXI7XG4gICAgfSB8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCB7IE9yZ3NDb21tb25EYXRhTGF5ZXJMaXN0ZW5lciB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLGlCQUFpQjtDQUFDO09BQVc7T0FBZTtPQUFTO09BQVM7T0FBa0I7T0FBUztPQUFrQjtDQUFRO0FBQ3ZILElBQUksWUFBWTtDQUFDO09BQVc7T0FBUztPQUFTO09BQWtCO09BQVM7Q0FBVzs7OztBQ0RwRixJQUFJLGFBQWEsQ0FBQyxJQUFJOzs7O0FDQ3RCLElBQUksc0JBQXNCLENBQUMsV0FBRyxnQ0FBQTs7OztBQ0M5QixJQUFJLDJCQUEyQjtDQUFDO09BQU87T0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0N2QyxJQUFFLHNCQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNGRixJQUFFLHVCQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNERixJQUFJLDZCQUE2QjtDQUFDO09BQU87T0FBQTtDQUFBOzs7O0FDQXpDLElBQVcsbUJBQW1CLENBQUMsSUFBSTtBQUNuQyxJQUFJLHNCQUFzQjtDQUFDO09BQVc7T0FBRTtPQUFBO0NBQUE7Ozs7QUNJeEMsSUFBRSxxQkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDTEYsSUFBSSx3QkFBd0IsQ0FBQyxXQUFPLFFBQUE7Ozs7QUNDcEMsSUFBSSxvQkFBb0IsQ0FBQyxXQUFPLFlBQUE7Ozs7QUNEaEMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFPLFFBQUE7Ozs7QUNBbEMsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJOzs7O0FDQ3pDLElBQUksT0FBSyxDQUFDLEtBQUssV0FBQSxLQUFBLENBQUE7QUFDZixJQUFJLHlCQUFpQjtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0ZyQixJQUFXLGlEQUFpRCxDQUFDLElBQUk7Ozs7QUNDakUsSUFBVyw2QkFBNkIsQ0FBQyxXQUFXLDJCQUF1Qjs7OztBQ0UzRSxJQUFJLDBCQUEwQjtDQUFDO09BQVc7T0FBMkI7T0FBQTtDQUFBOzs7O0FDRHJFLElBQUksa0NBQWtDO0NBQUM7T0FBVztPQUEyQjtPQUFBO0NBQUE7Ozs7QUNBN0UsSUFBSSxLQUFLLENBQUMsS0FBSyxXQUFBLEdBQUEsQ0FBQTtBQUNmLElBQUksaUJBQWlCO0NBQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNBckIsSUFBSSw2QkFBNkI7Q0FBQztPQUFXO09BQTJCO09BQUE7Q0FBQTs7OztBQ0R4RSxJQUFJLDhCQUE4QjtDQUFDO09BQU87T0FBQTtDQUFBIn0=
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { FeatureGates, OrgAnalyticsConfig, OrgAnalyticsGoogleAnalyticsConfig } from "../../
|
|
2
|
-
import {
|
|
3
|
-
import "../../
|
|
4
|
-
import "../../
|
|
5
|
-
import "../../index-
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import "../../
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { SupportedEvent } from "../../variant-
|
|
13
|
-
import {
|
|
1
|
+
import { CategoryExtractor, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, FeatureGates, GridInsertionService, GridInsertionType, IdExtractor, OrgAnalyticsConfig, OrgAnalyticsGoogleAnalyticsConfig, OrgPageConfig, PageVariantConfig, PageVariantTest } from "../../orgConfigResults--dAwtw3W.js";
|
|
2
|
+
import { CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType } from "../../types-DBdI0j89.js";
|
|
3
|
+
import "../../test-types-CXVJxTeu.js";
|
|
4
|
+
import { FeatureFlagService } from "../../featureFlagService-5wdmW02z.js";
|
|
5
|
+
import "../../index-D2VaMPA3.js";
|
|
6
|
+
import "../../index-Cx9e-fRi.js";
|
|
7
|
+
import "../../index-Dxpscrvz.js";
|
|
8
|
+
import { DomMutationObserverContinuation, DomObservationStrategy, Message } from "../../index-DXpgMVpp.js";
|
|
9
|
+
import { VariantInfo } from "../../index-CKKkTsms.js";
|
|
10
|
+
import { findCustomerServiceImpl } from "../../index-DFL1dIT_.js";
|
|
11
|
+
import { AtomStore } from "../../atomStore-kOKiEcNl.js";
|
|
12
|
+
import { SupportedEvent } from "../../variant-CC1nrywd.js";
|
|
13
|
+
import { PageVisitCategory } from "@spiffy-ai/commerce-api-client";
|
|
14
14
|
|
|
15
15
|
//#region src/application/service/cachingService.d.ts
|
|
16
16
|
declare function cacheableAsync<T extends (...args: never[]) => Promise<unknown>>(func: T, expiry: number): (...args: Parameters<T>) => Promise<ReturnType<T>>;
|
|
@@ -114,12 +114,17 @@ declare class DomMutationObserver {
|
|
|
114
114
|
static setEndingPollingInterval(interval: number): void;
|
|
115
115
|
}
|
|
116
116
|
//#endregion
|
|
117
|
-
//#region src/application/service/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
//#region src/application/service/graphqlConfigService.d.ts
|
|
118
|
+
/**
|
|
119
|
+
* Service for handling GraphQL configuration fetching and management
|
|
120
|
+
* This service is separated to avoid circular dependencies between atoms
|
|
121
|
+
*/
|
|
122
|
+
declare class GraphQLConfigService {
|
|
123
|
+
/**
|
|
124
|
+
* Fetches GraphQL configuration and updates the relevant atoms
|
|
125
|
+
* @param atomStore - The atom store instance to use for setting values
|
|
126
|
+
*/
|
|
127
|
+
static fetchAndSetGraphQLConfig(atomStore: AtomStore): Promise<void>;
|
|
123
128
|
}
|
|
124
129
|
//#endregion
|
|
125
130
|
//#region src/application/service/kustomerIntegrationService.d.ts
|
|
@@ -404,4 +409,5 @@ declare class OrgsCommonDataLayerListener {
|
|
|
404
409
|
} | undefined;
|
|
405
410
|
}
|
|
406
411
|
//#endregion
|
|
407
|
-
export { CdnService, CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, DataLayerEventsListener, type DomMutationListener, DomMutationListenerState, DomMutationObserver, EmbeddedChatsPlacementsListener,
|
|
412
|
+
export { CdnService, CustomerServiceIntegration, CustomerServiceIntegrationMode, CustomerServiceType, DOMInsertionService, DOMInsertionType, DOMInsertionTypeToInsertPosition, DataLayerEventsListener, type DomMutationListener, DomMutationListenerState, DomMutationObserver, EmbeddedChatsPlacementsListener, FeatureFlagService, GladlyListener, GraphQLConfigService, GridInsertionService, GridInsertionType, KustomerIntegrationService, KustomerVisibilityListener, LocalStorageKeys, LocalStorageService, OrgsCommonDataLayerListener, PageVariantService, SessionStorageService, ShopifyUrlService, UnsupportedCustomerService, UserIdentityService, WindowChatToggleBinder, WindowDataLayerService, cacheable, cacheableAsync, findCustomerServiceImpl, initWindowFrontendConfigOverridesApplyFunction };
|
|
413
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9jYWNoaW5nU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvY2RuU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvZG9tTXV0YXRpb25zL2RvbU11dGF0aW9uTGlzdGVuZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9kb21NdXRhdGlvbkxpc3RlbmVyU3RhdGUuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9uT2JzZXJ2ZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2dyYXBocWxDb25maWdTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9rdXN0b21lckludGVncmF0aW9uU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvbG9jYWxTdG9yYWdlU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvcGFnZVZhcmlhbnRTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL3Nob3BpZnlVcmxTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS91c2VySWRlbnRpdHlTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS93aW5kb3dDaGF0VG9nZ2xlU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uvd2luZG93RGF0YUxheWVyU2VydmljZS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2Uvd2luZG93RnJvbnRlbmRDb25maWdTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9jdXN0b21lclNlcnZpY2UvcHJvdmlkZXJzL1Vuc3VwcG9ydGVkQ3VzdG9tZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZGF0YUxheWVyL2RhdGFMYXllckV2ZW50c0xpc3RlbmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZmxvYXRpbmdDaGF0L2VtYmVkZGVkQ2hhdHNQbGFjZW1lbnRzTGlzdGVuZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9nbGFkbHkvZ2xhZGx5TGlzdGVuZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9zcGlmZnkvb3Jncy9jb21tb24va3VzdG9tZXJWaXNpYmlsaXR5TGlzdGVuZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9zcGlmZnkvb3Jncy9jb21tb24vb3Jnc0NvbW1vbkRhdGFMYXllckxpc3RlbmVyLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSBmdW5jdGlvbiBjYWNoZWFibGVBc3luYzxUIGV4dGVuZHMgKC4uLmFyZ3M6IG5ldmVyW10pID0+IFByb21pc2U8dW5rbm93bj4+KGZ1bmM6IFQsIGV4cGlyeTogbnVtYmVyKTogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pID0+IFByb21pc2U8UmV0dXJuVHlwZTxUPj47XG5kZWNsYXJlIGZ1bmN0aW9uIGNhY2hlYWJsZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bj4oZnVuYzogVCwgZXhwaXJ5OiBudW1iZXIpOiAoLi4uYXJnczogUGFyYW1ldGVyczxUPikgPT4gUmV0dXJuVHlwZTxUPjtcbmV4cG9ydCB7IGNhY2hlYWJsZSwgY2FjaGVhYmxlQXN5bmMgfTtcbiIsImRlY2xhcmUgY2xhc3MgQ2RuU2VydmljZSB7XG4gICAgc3RhdGljIGdldCBDRE5fVVJMKCk6IHN0cmluZztcbiAgICBzdGF0aWMgZ2V0Q25kQmFzZVBhdGgoKTogc3RyaW5nO1xuICAgIHN0YXRpYyBnZXRBc3NldFVSTChhc3NldE5hbWU6IHN0cmluZywgb3JnU2hvcnROYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG59XG5leHBvcnQgeyBDZG5TZXJ2aWNlIH07XG4iLCJpbXBvcnQgeyBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RvbU11dGF0aW9uQ29udGludWF0aW9uJztcbmludGVyZmFjZSBEb21NdXRhdGlvbkxpc3RlbmVyIHtcbiAgICBnZXROYW1lKCk6IHN0cmluZztcbiAgICBydW5PbmNlSW1tZWRpYXRlbHkoKTogYm9vbGVhbjtcbiAgICBkaXNjb25uZWN0PygpOiB2b2lkO1xuICAgIHRyaWVzTWF4KCk6IG51bWJlcjtcbiAgICBvbkRvbUNoYW5nZSgpOiBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uO1xufVxuZXhwb3J0IHR5cGUgeyBEb21NdXRhdGlvbkxpc3RlbmVyIH07XG4iLCJpbXBvcnQgeyBEb21NdXRhdGlvbkxpc3RlbmVyIH0gZnJvbSAnLi9kb21NdXRhdGlvbkxpc3RlbmVyJztcbmltcG9ydCB7IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZG9tTXV0YXRpb25Db250aW51YXRpb24nO1xuZGVjbGFyZSBjbGFzcyBEb21NdXRhdGlvbkxpc3RlbmVyU3RhdGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXI7XG4gICAgcHJpdmF0ZSBjdXJyZW50U3RhdGU7XG4gICAgcHJpdmF0ZSBhdHRhY2hlZDtcbiAgICBwcml2YXRlIGN1cnJlbnRUcnlDb3VudDtcbiAgICBjb25zdHJ1Y3RvcihsaXN0ZW5lcjogRG9tTXV0YXRpb25MaXN0ZW5lcik7XG4gICAgZ2V0TGlzdGVuZXIoKTogRG9tTXV0YXRpb25MaXN0ZW5lcjtcbiAgICBzZXRDdXJyZW50U3RhdGUoc3RhdGU6IERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24pOiB2b2lkO1xuICAgIGdldEN1cnJlbnRTdGF0ZSgpOiBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uO1xuICAgIGdldElzQXR0YWNoZWQoKTogYm9vbGVhbjtcbiAgICBzZXRJc0F0dGFjaGVkKGF0dGFjaGVkOiBib29sZWFuKTogdm9pZDtcbiAgICBnZXRDdXJyZW50VHJ5Q291bnQoKTogbnVtYmVyO1xuICAgIGluY3JlbWVudEN1cnJlbnRUcnlDb3VudCgpOiB2b2lkO1xufVxuZXhwb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lclN0YXRlIH07XG4iLCJpbXBvcnQgeyBEb21NdXRhdGlvbkxpc3RlbmVyU3RhdGUgfSBmcm9tICcuL2RvbU11dGF0aW9ucy9kb21NdXRhdGlvbkxpc3RlbmVyU3RhdGUnO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJy4vZG9tTXV0YXRpb25zL2RvbU11dGF0aW9uTGlzdGVuZXInO1xuaW1wb3J0IHsgRG9tT2JzZXJ2YXRpb25TdHJhdGVneSB9IGZyb20gJy4uL21vZGVscy9kb21PYnNlcnZhdGlvblN0cmF0ZWd5Jztcbi8qKlxuICogLSBXaGVuIHVzZWQgYmVmb3JlIHBhZ2UgbG9hZC9yZW5kZXIsIGFuIHVub3B0aW1pemVkIE11dGF0aW9uT2JzZXJ2ZXIgY2FsbGJhY2sgY2FuIHNpZ25pZmljYW50bHkgZGVsYXkgcGFnZSBsb2FkIHRpbWUsXG4gKiAgIGVzcGVjaWFsbHkgb24gY29tcGxleCBwYWdlcy5cbiAqIC0gVGhlIGNhbGxiYWNrIHJ1bnMgYXMgYSBtaWNyb3Rhc2sgYW5kIGNhbiBibG9jayBmdXJ0aGVyIERPTSBwcm9jZXNzaW5nLCBvZnRlbiBmaXJpbmcgaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgdGltZXNcbiAqICAgcGVyIHNlY29uZCBvbiBhIGNvbXBsZXggcGFnZS4gTWFueSBsaWJyYXJpZXMgZG9uJ3Qgb3B0aW1pemUgZm9yIHRoaXMsIHJlc3VsdGluZyBpbiBjbGVhbi1sb29raW5nIGJ1dCBwb3RlbnRpYWxseSBzbG93IGNvZGUuXG4gKlxuICogQmVzdCBQcmFjdGljZXMgZm9yIE11dGF0aW9uT2JzZXJ2ZXIgT3B0aW1pemF0aW9uOlxuICogLSAqKlByb2ZpbGluZzoqKiBVc2UgRGV2VG9vbHMgUHJvZmlsZXIgdG8gZW5zdXJlIHRoZSBvYnNlcnZlciBjYWxsYmFjayB1c2VzIGxlc3MgdGhhbiAwLjElIG9mIHRvdGFsIENQVSBkdXJpbmcgcGFnZSBsb2FkLlxuICogLSAqKkF2b2lkIEZvcmNlZCBMYXlvdXRzOioqIFJlZnJhaW4gZnJvbSB0cmlnZ2VyaW5nIHN5bmNocm9ub3VzIGxheW91dHMgYnkgYWNjZXNzaW5nIHByb3BlcnRpZXMgbGlrZSBgb2Zmc2V0VG9wYC5cbiAqIC0gKipQcmVmZXIgTmF0aXZlIERPTToqKiBVc2UgbmF0aXZlIERPTSBtZXRob2RzIGluc3RlYWQgb2YgY29tcGxleCBmcmFtZXdvcmtzIGxpa2UgalF1ZXJ5IHRvIHJlZHVjZSBvdmVyaGVhZC5cbiAqIC0gKipVc2UgYGF0dHJpYnV0ZUZpbHRlcmA6KiogV2hlbiBvYnNlcnZpbmcgYXR0cmlidXRlcywgbGltaXQgdGhlIG9ic2VydmF0aW9ucyB0byBzcGVjaWZpYyBhdHRyaWJ1dGVzLCBlLmcuLCBgYXR0cmlidXRlRmlsdGVyOiBbJ2F0dHIxJywgJ2F0dHIyJ11gLlxuICogLSAqKk5vbi1yZWN1cnNpdmUgT2JzZXJ2YXRpb25zOioqIE9ic2VydmUgZGlyZWN0IHBhcmVudCBlbGVtZW50cyB3aXRoIGBzdWJ0cmVlOiBmYWxzZWAgd2hlbmV2ZXIgcG9zc2libGUuIEZvciBpbnN0YW5jZSwgaW5pdGlhbGx5IG9ic2VydmUgYGRvY3VtZW50YCByZWN1cnNpdmVseSwgZGlzY29ubmVjdCBvbiBzdWNjZXNzLCBhbmQgcmVhdHRhY2ggYSBub24tcmVjdXJzaXZlIG9ic2VydmVyIHRvIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAqIC0gKipEaXJlY3QgRWxlbWVudCBBY2Nlc3M6KiogV2hlbiB3YWl0aW5nIGZvciBhIHNpbmdsZSBlbGVtZW50IHdpdGggYW4gYGlkYCwgdXNlIGBnZXRFbGVtZW50QnlJZGAgaW5zdGVhZCBvZiBsb29waW5nIG92ZXIgdGhlIGBtdXRhdGlvbnNgIGFycmF5LlxuICogLSAqKkhUTUxDb2xsZWN0aW9uIENoZWNrczoqKiBGb3IgcmFyZSBlbGVtZW50cyAoZS5nLiwgYDxpZnJhbWU+YCBvciBgPG9iamVjdD5gKSwgdXNlIGxpdmUgSFRNTENvbGxlY3Rpb25zIGZyb20gYGdldEVsZW1lbnRzQnlUYWdOYW1lYCBvciBgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZWAgcmF0aGVyIHRoYW4gZW51bWVyYXRpbmcgbXV0YXRpb25zLCBlc3BlY2lhbGx5IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBtdXRhdGlvbnMuXG4gKiAtICoqQXZvaWQgYHF1ZXJ5U2VsZWN0b3JBbGxgOioqIFVzZSBgcXVlcnlTZWxlY3RvcmAgZmlyc3QgZm9yIGFuIGluaXRpYWwgY2hlY2s7IGlmIHN1Y2Nlc3NmdWwsIHByb2NlZWQgd2l0aCBgcXVlcnlTZWxlY3RvckFsbGAgb25seSB3aGVuIGFic29sdXRlbHkgbmVjZXNzYXJ5LiBUaGlzIGNvbWJvIGlzIG9mdGVuIGZhc3RlciBvbiBhdmVyYWdlLlxuICogLSAqKkxlZ2FjeSBCcm93c2VyIENvbXBhdGliaWxpdHk6KipcbiAqICAgLSBBdm9pZCBgQXJyYXlgIG1ldGhvZHMgbGlrZSBgZm9yRWFjaGAsIGBmaWx0ZXJgLCBldGMuLCBhbmQgRVMyMDE1IGxvb3BzIChgZm9yLi4ub2ZgKSBpbiBwcmUtMjAxOCBDaHJvbWUgZm9yIE11dGF0aW9uT2JzZXJ2ZXIgY2FsbGJhY2tzLFxuICogICAgIGFzIHRoZXNlIGNhbiBiZSB1cCB0byAxMDB4IHNsb3dlciB0aGFuIHRyYWRpdGlvbmFsIGBmb3JgIGxvb3BzLlxuICogICAtIEFsdGVybmF0aXZlbHksIHVzZSBhIGZhc3QgZnVuY3Rpb25hbCBsaWJyYXJ5IGxpa2UgbG9kYXNoIG9uIG9sZGVyIGJyb3dzZXJzLiBDaHJvbWUgMjAxOCsgaW5saW5lcyBhcnJheSBtZXRob2RzIGVmZmljaWVudGx5LlxuICogLSAqKlNjaGVkdWxlZCBSZS1jaGVja2luZzoqKiBGb3IgdmlzdWFsIHVwZGF0ZXMsIGlmIHlvdSBjYW4gZGV0ZXJtaW5lIGVsZW1lbnRzIGFyZSBvZmZzY3JlZW4sIGRpc2Nvbm5lY3QgdGhlIG9ic2VydmVyIGFuZCB1c2UgYHNldFRpbWVvdXQoZm4sIDApYCB0byBkZWxheSBwcm9jZXNzaW5nIHVudGlsIGluaXRpYWwgcGFyc2luZy9sYXlvdXQgaXMgY29tcGxldGUuIEFmdGVyIHRoYXQsIHVzZSBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYCBmb3IgY2h1bmtlZCBwcm9jZXNzaW5nLlxuICogLSAqKkRlYm91bmNlIExvbmcgUHJvY2Vzc2luZzoqKiBJZiB0aGUgY2FsbGJhY2sgcHJvY2Vzc2luZyBpcyBsZW5ndGh5LCBjYXVzaW5nIHVucmVzcG9uc2l2ZW5lc3Mgb3IgamFuaywgdXNlIGRlYm91bmNpbmcgYnkgYWNjdW11bGF0aW5nIG11dGF0aW9ucyBpbiBhbiBhcnJheSBhbmQgc2NoZWR1bGluZyBwcm9jZXNzaW5nIHdpdGggYHNldFRpbWVvdXRgLCBgcmVxdWVzdElkbGVDYWxsYmFja2AsIG9yIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgLlxuICpcbiAqIEV4YW1wbGUgb2YgRGVib3VuY2UgU2V0dXA6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBxdWV1ZTogTXV0YXRpb25SZWNvcmRbXSA9IFtdO1xuICogY29uc3QgbW8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xuICogICBpZiAoIXF1ZXVlLmxlbmd0aCkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHByb2Nlc3MpO1xuICogICBxdWV1ZS5wdXNoKC4uLm11dGF0aW9ucyk7XG4gKiB9KTtcbiAqIGZ1bmN0aW9uIHByb2Nlc3MoKSB7XG4gKiAgIGZvciAoY29uc3QgbXV0YXRpb25zIG9mIHF1ZXVlKSB7XG4gKiAgICAgLy8gUHJvY2Vzc2luZyBsb2dpY1xuICogICB9XG4gKiAgIHF1ZXVlLmxlbmd0aCA9IDA7XG4gKiB9XG4gKiBgYGBcbiAqIE5vdGU6IGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIG9ubHkgdHJpZ2dlcnMgd2hlbiB0aGUgcGFnZSBpcyB2aXNpYmxlLlxuICovXG5kZWNsYXJlIGNsYXNzIERvbU11dGF0aW9uT2JzZXJ2ZXIge1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmVyVmVyc2lvbjtcbiAgICBwcml2YXRlIHN0YXRpYyBpbmRpdmlkdWFsT2JzZXJ2ZXJzO1xuICAgIHByaXZhdGUgc3RhdGljIGRlZmVycmVkRXhlY3V0aW9uRGVsYXk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgc3RhcnRpbmdQb2xsaW5nSW50ZXJ2YWw7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZW5kaW5nUG9sbGluZ0ludGVydmFsO1xuICAgIHByaXZhdGUgc3RhdGljIHVzZURlYm91bmNlO1xuICAgIHByaXZhdGUgc3RhdGljIGxpc3RlbmVycztcbiAgICBwcml2YXRlIHN0YXRpYyBtdXRhdGlvbnNRdWV1ZVBlckxpc3RlbmVyO1xuICAgIHByaXZhdGUgc3RhdGljIG11dGF0aW9uc1F1ZXVlO1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmF0aW9uU3RyYXRlZ3k7XG4gICAgc3RhdGljIGFkZERvbU11dGF0aW9uTGlzdGVuZXIobGlzdGVuZXI6IERvbU11dGF0aW9uTGlzdGVuZXIpOiB2b2lkO1xuICAgIHN0YXRpYyBpbnZva2VMaXN0ZW5lcihsOiBEb21NdXRhdGlvbkxpc3RlbmVyU3RhdGUpOiB2b2lkO1xuICAgIHN0YXRpYyBvYnNlcnZlT25Eb21SZWFkeShzdHJhdGVneTogRG9tT2JzZXJ2YXRpb25TdHJhdGVneSk6IHZvaWQ7XG4gICAgc3RhdGljIG9ic2VydmUoc3RyYXRlZ3lSZXF1ZXN0ZWQ6IERvbU9ic2VydmF0aW9uU3RyYXRlZ3kpOiB2b2lkO1xuICAgIHByaXZhdGUgc3RhdGljIHJ1bk9uY2VJbW1lZGlhdGVseUlmUmVxdWlyZWQ7XG4gICAgcHJpdmF0ZSBzdGF0aWMgb2JzZXJ2ZUluZGl2aWR1YWxseVdpdGhEZWJvdW5jZTtcbiAgICBwcml2YXRlIHN0YXRpYyBvYnNlcnZlSW5kaXZpZHVhbGx5O1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmVDb2xsZWN0aXZlbHlXaXRoRGVib3VuY2U7XG4gICAgcHJpdmF0ZSBzdGF0aWMgb2JzZXJ2ZUNvbGxlY3RpdmVseTtcbiAgICBwcml2YXRlIHN0YXRpYyBwb2xsO1xuICAgIHByaXZhdGUgc3RhdGljIG9ic2VydmVCeVBvbGxpbmc7XG4gICAgc3RhdGljIGRpc2Nvbm5lY3QobGlzdGVuZXI6IERvbU11dGF0aW9uTGlzdGVuZXIpOiB2b2lkO1xuICAgIHN0YXRpYyBzZXRTdGFydGluZ1BvbGxpbmdJbnRlcnZhbChpbnRlcnZhbDogbnVtYmVyKTogdm9pZDtcbiAgICBzdGF0aWMgc2V0RW5kaW5nUG9sbGluZ0ludGVydmFsKGludGVydmFsOiBudW1iZXIpOiB2b2lkO1xufVxuZXhwb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlciB9O1xuIiwiaW1wb3J0IHsgQXRvbVN0b3JlIH0gZnJvbSBcInNyYy9hdG9tcy9hdG9tU3RvcmUvYXRvbVN0b3JlXCI7XG4vKipcbiAqIFNlcnZpY2UgZm9yIGhhbmRsaW5nIEdyYXBoUUwgY29uZmlndXJhdGlvbiBmZXRjaGluZyBhbmQgbWFuYWdlbWVudFxuICogVGhpcyBzZXJ2aWNlIGlzIHNlcGFyYXRlZCB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYmV0d2VlbiBhdG9tc1xuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBHcmFwaFFMQ29uZmlnU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBHcmFwaFFMIGNvbmZpZ3VyYXRpb24gYW5kIHVwZGF0ZXMgdGhlIHJlbGV2YW50IGF0b21zXG4gICAgICogQHBhcmFtIGF0b21TdG9yZSAtIFRoZSBhdG9tIHN0b3JlIGluc3RhbmNlIHRvIHVzZSBmb3Igc2V0dGluZyB2YWx1ZXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZmV0Y2hBbmRTZXRHcmFwaFFMQ29uZmlnKGF0b21TdG9yZTogQXRvbVN0b3JlKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImRlY2xhcmUgY2xhc3MgS3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2Uge1xuICAgIHN0YXRpYyBLVVNUT01FUl9MT0NBTF9TVE9SQUdFX0tFWTogc3RyaW5nO1xuICAgIHN0YXRpYyBLVVNUT01FUl9JRlJBTUVfSUQ6IHN0cmluZztcbiAgICBpbml0aWFsaXplZDogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIGluaXRPbmNlKCk6IHZvaWQ7XG4gICAgZGlzY29ubmVjdCgpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIEt1c3RvbWVyIGNoYXQgaWNvbi5cbiAgICAgKi9cbiAgICB1cGRhdGVWaXNpYmlsaXR5KCk6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUXVlcmllcyB0aGUgZG9jdW1lbnQgYm9keSBmb3IgdGhlIEt1c3RvbWVyIFNESyBpZnJhbWUuIFRoaXMgZnVuY3Rpb24gaXMgdG8gYmUgcnVuIGluIGFcbiAgICAgKiBNdXRhdGlvbk9ic2VydmVyLlxuICAgICAqIEByZXR1cm5zIHRoZSBpZnJhbWUgZWxlbWVudCBpZiBpdCBleGlzdHMsIGVsc2UgdW5kZWZpbmUuXG4gICAgICovXG4gICAgZmluZEt1c3RvbWVyQnV0dG9uKCk6IEhUTUxJRnJhbWVFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIEt1c3RvbWVyIGNoYXQgaWNvbiB2aXNpYmlsaXR5IHdoZW4gdGhlIGt1c3RvbWVyU3RhdGUgbG9jYWxTdG9yYWdlIGl0ZW0gY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICAgKi9cbiAgICBvbkN1c3RvbWVyU3RhdGVDaGFuZ2UoZXZlbnQ6IFN0b3JhZ2VFdmVudCk6IHZvaWQ7XG59XG5leHBvcnQgeyBLdXN0b21lckludGVncmF0aW9uU2VydmljZSB9O1xuIiwiZXhwb3J0IGRlY2xhcmUgZW51bSBMb2NhbFN0b3JhZ2VLZXlzIHtcbiAgICBDaGF0SWQgPSBcInYxLXNwaWZmeS1jaGF0LXNlc3Npb24taWRcIixcbiAgICBTcGlmZnlPbk92ZXJyaWRlID0gXCJzcGlmZnlfb25cIixcbiAgICBFbnZpdmVPbk92ZXJyaWRlID0gXCJlbnZpdmVfb25cIlxufVxuZGVjbGFyZSBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcbiAgICBzdGF0aWMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgc3RhdGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsO1xuICAgIHN0YXRpYyBzZXRTcGlmZnlPbkZlYXR1cmVGbGFnKHZhbHVlOiBib29sZWFuIHwgbnVsbCk6IHZvaWQ7XG4gICAgc3RhdGljIGdldFNwaWZmeU9uRmVhdHVyZUZsYWcoKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzdGF0aWMgZ2V0TG9jYWxTdG9yYWdlKCk6IFN0b3JhZ2U7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzQ2FjaGU7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJGb3JLZXk7XG4gICAgLyoqXG4gICAgICogQXR0YWNoIGEgbGlzdGVuZXIgdG8gdGhlIHdpbmRvdydzIHN0b3JhZ2UgZXZlbnQuIFNhZmUgdG8gY2FsbCBtdWx0aXBsZSB0aW1lcy5cbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgYXR0YWNoTGlzdGVuZXIobGlzdGVuZXI6IExvY2FsU3RvcmFnZUV2ZW50TGlzdGVuZXIpOiB2b2lkO1xuICAgIHN0YXRpYyBkZXRhY2hMaXN0ZW5lcihsaXN0ZW5lcjogTG9jYWxTdG9yYWdlRXZlbnRMaXN0ZW5lcik6IHZvaWQ7XG59XG5leHBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH07XG4iLCJpbXBvcnQgeyBDYXRlZ29yeUV4dHJhY3RvciwgSWRFeHRyYWN0b3IsIE9yZ1BhZ2VDb25maWcsIFBhZ2VWYXJpYW50Q29uZmlnLCBQYWdlVmFyaWFudFRlc3QgfSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5pbXBvcnQgeyBNZXNzYWdlLCBWYXJpYW50SW5mbyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzXCI7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXNcIjtcbmltcG9ydCB7IFBhZ2VWaXNpdENhdGVnb3J5IH0gZnJvbSBcIkBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudFwiO1xuaW1wb3J0IHsgU3VwcG9ydGVkRXZlbnQgfSBmcm9tIFwic3JjL2F0b21zL2FwcC92YXJpYW50XCI7XG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byByZXNvbHZlIHRoZSBQYWdlVmFyaWFudHMgZm9yIHRoZSBTcGlmZnkgQXBwLlxuICogSXQgaW5jbHVkZXMgYSBudW1iZXIgb2Ygc3RhdGljIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBwZXJmb3JtaW5nIHBhZ2VUZXN0cyBhbmRcbiAqIGV4dHJhY3RpbmcgZGF0YSBuZWNlc3NhcnkgdG8gYnVpbGQgdGhlIFBhZ2VWYXJpYW50cy5cbiAqXG4gKiBVbmRlciBtb3N0IGNpcmN1bXN0YW5jZXMgb25seSBgZ2V0VmFyaWFudEluZm9XaXRoUGFnZUNvbmZpZ2Agd2lsbCBiZSBjYWxsZWQgZXh0ZXJuYWxseVxuICogVGhlIG90aGVyIGZ1bmN0aW9ucyBzaG91bGQgYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoYXQgZnVuY3Rpb24uXG4gKi9cbmRlY2xhcmUgY2xhc3MgUGFnZVZhcmlhbnRTZXJ2aWNlIHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgcGFnZVRlc3Q6ICh0ZXN0OiBQYWdlVmFyaWFudFRlc3QsIHBhZ2VWYXJpYW50Q29uZmlnOiBQYWdlVmFyaWFudENvbmZpZywgYXRvbVZhbHVlcz86IHtcbiAgICAgICAgcmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gICAgICAgIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgICAgICAgbGFzdEFzc2lzdGFudE1lc3NhZ2U/OiBNZXNzYWdlW10gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ2V0Q2FjaGVkVXJsUmVzb2x2ZXI7XG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHBhZ2UgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgY2F0YWxvZyBjYXRlZ29yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeSAtIFRoZSBleHBlY3RlZCBjYXRhbG9nIGNhdGVnb3J5IGFzIGRlZmluZWQgYnkgZGF0YSBpbiBFbGFzdGljIFNlYXJjaC5cbiAgICAgKiBAcGFyYW0gcGFnZVZhcmlhbnRDb25maWcgLSBUaGUgdmFyaWFudCBjb25maWcgZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjdXJyZW50IHBhZ2UgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgY2F0YWxvZyBjYXRlZ29yeS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjaGVja0NhdGFsb2dDYXRlZ29yeTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjaGVja0luVG9wQ2F0ZWdvcnk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2hlY2tIYXNSZXZpZXdzO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrSW5Db2xsZWN0aW9uO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrSGFzTWVyY2hhbnRUYWc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgdXNlckhhc0ludGVyYWN0ZWQ7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgdXNlckhhc05vdEludGVyYWN0ZWQ7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgaXNMb2FkaW5nO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGlzUHJvZHVjdENvbXBhcmlzb247XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2hlY2tQbHBJZHM7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY2hlY2tRdWVyeVBhcmFtO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNoZWNrUHJvZHVjdElkO1xuICAgIHN0YXRpYyBjaGVja0ZlYXR1cmVHYXRlKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuO1xuICAgIHN0YXRpYyBnZXRDYXRlZ29yeShleHRyYWN0b3I6IENhdGVnb3J5RXh0cmFjdG9yKTogUGFnZVZpc2l0Q2F0ZWdvcnkgfCBudWxsO1xuICAgIHN0YXRpYyBnZXRJZChleHRyYWN0b3I/OiBJZEV4dHJhY3Rvcik6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZ2V0SWRGcm9tVXJsUmVzb2x2ZXI7XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmFyaWFudCBpbmZvIGZvciB0aGUgY3VycmVudCBwYWdlIGJhc2VkIG9uIHRoZSBtZXJjaGFudCdzIHBhZ2UgY29uZmlnLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9yZ1BhZ2VDb25maWcgLSBUaGUgbWVyY2hhbnQncyBwYWdlIGNvbmZpZy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB2YXJpYW50IGluZm8gZm9yIHRoZSBjdXJyZW50IHBhZ2UsIG9yIHVuZGVmaW5lZCBpZiB0aGUgcGFnZSB0ZXN0cyBkbyBub3RcbiAgICAgKiByZXR1cm4gYW55IG1hdGNoZXMuXG4gICAgICovXG4gICAgc3RhdGljIHJlYWRvbmx5IGdldFZhcmlhbnRJbmZvV2l0aFBhZ2VDb25maWc6IChvcmdQYWdlQ29uZmlnOiBPcmdQYWdlQ29uZmlnKSA9PiBQcm9taXNlPFtWYXJpYW50SW5mbywgUGFnZVZhcmlhbnRDb25maWddIHwgdW5kZWZpbmVkPjtcbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyBzdXBwb3J0ZWQuIEEgcGFnZSBpcyBzdXBwb3J0ZWQgaWYgaXQgaGFzIGJlZW4gaW5kZXhlZCBpblxuICAgICAqIEVsYXN0aWMgU2VhcmNoIGFuZCBpdHMgY2F0ZWdvcnkgaGFzIGJlZW4gd2hpdGVsaXN0ZWQgYnkgdGhlIGJhY2tlbmQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnZVZhcmlhbnRDb25maWcgLSBUaGUgdmFyaWFudCBjb25maWcgZm9yIHRoZSBjdXJyZW50IHBhZ2Ugd2hpY2ggaXMgdXNlZCB0byBnZXRcbiAgICAgKiB0aGUgdmFyaWFudCBpbmZvLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHN1cHBvcnRlZCBldmVudCByZXNwb25zZSBmcm9tIHRoZSBiYWNrZW5kLCBvciB1bmRlZmluZWQgaWYgdGhlIHBhZ2UgaXMgbm90IHN1cHBvcnRlZC5cbiAgICAgKi9cbiAgICBzdGF0aWMgcmVhZG9ubHkgY2hlY2tTdXBwb3J0ZWRFdmVudDogKHBhZ2VWYXJpYW50Q29uZmlnOiBQYWdlVmFyaWFudENvbmZpZykgPT4gUHJvbWlzZTxTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZD47XG4gICAgLyoqXG4gICAgICogUGFyc2VzIHRoZSBwYWdlIHZhcmlhbnQgY29uZmlnIGludG8gYSB2YXJpYW50IGluZm8gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2VWYXJpYW50Q29uZmlnIC0gVGhlIHZhcmlhbnQgY29uZmlnIGZvciB0aGUgY3VycmVudCBwYWdlLlxuICAgICAqIEBwYXJhbSB1cmwgLSBUaGUgY3VycmVudCBVUkwgb2YgdGhlIHBhZ2UuIFRoaXMgaXMgdXNlZCB0byBleHRyYWN0IHRoZSBwZHAvcGxwIGlkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHZhcmlhbnQgaW5mbyBmb3IgdGhlIGN1cnJlbnQgcGFnZSwgb3IgdW5kZWZpbmVkIGlmIHRoZSBwYWdlIHZhcmlhbnQgY29uZmlnIGlzIGludmFsaWQgb3Igbm90IHN1cHBvcnRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBwYXJzZVBhZ2VWYXJpYW50Q29uZmlnO1xufVxuZXhwb3J0IHsgUGFnZVZhcmlhbnRTZXJ2aWNlIH07XG4iLCJkZWNsYXJlIGNsYXNzIFNlc3Npb25TdG9yYWdlU2VydmljZSB7XG4gICAgc3RhdGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICAgIHN0YXRpYyBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzdGF0aWMgZ2V0U2Vzc2lvblN0b3JhZ2UoKTogU3RvcmFnZTtcbn1cbmV4cG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9O1xuIiwiaW1wb3J0IHsgSWRFeHRyYWN0b3IgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXMnO1xuZGVjbGFyZSBjbGFzcyBTaG9waWZ5VXJsU2VydmljZSB7XG4gICAgc3RhdGljIGdldFRyaW1tZWRQYXRoTmFtZSgpOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgVVJMIHRvIGRldGVybWluZSB0aGUgUExQIG9yIFBEUCBJRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBleHRyYWN0b3IgdGhlIHR5cGUgb2YgZXh0cmFjdG9yIHRvIHBhcnNlIHNlZ21lbnRzIG9mIHRoZSBwYWdlIFVSTFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIFBMUCBvciBQRFAgSUQgaWYgZm91bmQsIG90aGVyd2lzZSBudWxsXG4gICAgICovXG4gICAgc3RhdGljIGdldFBscE9yUGRwSWQoZXh0cmFjdG9yOiBJZEV4dHJhY3Rvcik6IHN0cmluZyB8IG51bGw7XG4gICAgc3RhdGljIGlzT25QZHBQYWdlKCk6IGJvb2xlYW47XG4gICAgc3RhdGljIGlzT25QbHBQYWdlKCk6IGJvb2xlYW47XG59XG5leHBvcnQgeyBTaG9waWZ5VXJsU2VydmljZSB9O1xuIiwiZGVjbGFyZSBjbGFzcyBVc2VySWRlbnRpdHlTZXJ2aWNlIHtcbiAgICBzdGF0aWMgVVNFUl9JRF9PVkVSUklERV9LRVk6IHN0cmluZztcbiAgICBzdGF0aWMgVVNFUl9JRF9ERUZBVUxUX0tFWTogc3RyaW5nO1xuICAgIHN0YXRpYyBpZGVudGlmeVVzZXIoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzdGF0aWMgZ2V0VXNlcklkT3JEZWZhdWx0KCk6IHN0cmluZztcbiAgICBzdGF0aWMgZ2V0VXNlcklkT3ZlcnJpZGVGcm9tTG9jYWxTdG9yYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgZ2V0VXNlcklkRGVmYXVsdEZyb21Mb2NhbFN0b3JhZ2UoKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBzZXRVc2VySWREZWZhdWx0SW5Mb2NhbFN0b3JhZ2UodXNlcklkOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgc3RhdGljIHNldFVzZXJJZE92ZXJyaWRlSW5Mb2NhbFN0b3JhZ2UodXNlcklkOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgc3RhdGljIGNsZWFyVXNlcklkT3ZlcnJpZGVJbkxvY2FsU3RvcmFnZSgpOiB2b2lkO1xufVxuZXhwb3J0IHsgVXNlcklkZW50aXR5U2VydmljZSB9O1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgV2luZG93Q2hhdFRvZ2dsZUJpbmRlcjogKCkgPT4gbnVsbDtcbiIsImltcG9ydCB7IE9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0FuYWx5dGljc0NvbmZpZyc7XG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIGRhdGFMYXllcjogYW55O1xuICAgIH1cbn1cbmRlY2xhcmUgY2xhc3MgV2luZG93RGF0YUxheWVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBnYUNvbmZpZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFMYXllcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9yaWdpbmFsRGF0YUxheWVyUHVzaDtcbiAgICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lcmNoYW50R29vZ2xlTWVhc3VyZW1lbnRJZDtcbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCk7XG4gICAgLyoqXG4gICAgICogUHVzaGVzIGRhdGEgdG8gdGhlIGRhdGFMYXllclxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICogIGRhdGEgaGFzIHRoZSBzaGFwZTogeyBldmVudDogJ2V2ZW50X25hbWUnLCAuLi4gfVxuICAgICAqICBFeGFtcGxlOlxuICAgICAqICB7XG4gICAgICogICAgICAgICBcImV2ZW50XCI6IFwiYWRkX3RvX2NhcnRcIixcbiAgICAgKiAgICAgICAgIFwiY3VycmVuY3lcIjogXCJVU0RcIixcbiAgICAgKiAgICAgICAgIFwidmFsdWVcIjogMzAuMDMsXG4gICAgICogICAgICAgICBcIml0ZW1zXCI6IFtcbiAgICAgKiAgICAgICAgICAge1xuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9pZFwiOiBcIlNLVV8xMjM0NVwiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9uYW1lXCI6IFwiU3RhbiBhbmQgRnJpZW5kcyBUZWVcIixcbiAgICAgKiAgICAgICAgICAgICBcImFmZmlsaWF0aW9uXCI6IFwiR29vZ2xlIE1lcmNoYW5kaXNlIFN0b3JlXCIsXG4gICAgICogICAgICAgICAgICAgXCJjb3Vwb25cIjogXCJTVU1NRVJfRlVOXCIsXG4gICAgICogICAgICAgICAgICAgXCJkaXNjb3VudFwiOiAyLjIyLFxuICAgICAqICAgICAgICAgICAgIFwiaW5kZXhcIjogMCxcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fYnJhbmRcIjogXCJHb29nbGVcIixcbiAgICAgKiAgICAgICAgICAgICBcIml0ZW1fY2F0ZWdvcnlcIjogXCJBcHBhcmVsXCIsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX2NhdGVnb3J5MlwiOiBcIkFkdWx0XCIsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX2NhdGVnb3J5M1wiOiBcIlNoaXJ0c1wiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9jYXRlZ29yeTRcIjogXCJDcmV3XCIsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX2NhdGVnb3J5NVwiOiBcIlNob3J0IHNsZWV2ZVwiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9saXN0X2lkXCI6IFwicmVsYXRlZF9wcm9kdWN0c1wiLFxuICAgICAqICAgICAgICAgICAgIFwiaXRlbV9saXN0X25hbWVcIjogXCJSZWxhdGVkIFByb2R1Y3RzXCIsXG4gICAgICogICAgICAgICAgICAgXCJpdGVtX3ZhcmlhbnRcIjogXCJncmVlblwiLFxuICAgICAqICAgICAgICAgICAgIFwibG9jYXRpb25faWRcIjogXCJDaElKSVFCcEFHMmFoWUFSXzYxMjhHY1RVRW9cIixcbiAgICAgKiAgICAgICAgICAgICBcInByaWNlXCI6IDEwLjAxLFxuICAgICAqICAgICAgICAgICAgIFwicXVhbnRpdHlcIjogM1xuICAgICAqICAgICAgICAgICB9XG4gICAgICogICAgICAgICBdXG4gICAgICogfVxuICAgICAqL1xuICAgIHB1c2goZGF0YTogYW55KTogdm9pZDtcbiAgICBzdGF0aWMgaXNEYXRhTGF5ZXJBdmFpbGFibGUoKTogYm9vbGVhbjtcbiAgICBzdGF0aWMgdHJ5RmxhdHRlbkFyZ3VtZW50cyhhcmdzOiBhbnkpOiBhbnk7XG4gICAgd3JhcFdpdGhQcm94eU1ldGhvZChtZXRob2ROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQ7XG4gICAgc3RhdGljIGdldFNpbmdsZXRvbkluc3RhbmNlT2YoZ2FDb25maWc6IE9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZyk6IFdpbmRvd0RhdGFMYXllclNlcnZpY2U7XG4gICAgc2VuZFRvR29vZ2xlQW5hbHl0aWNzQ2lyY3VsYXJFdmVudHNTYWZlKGV2ZW50TmFtZTogc3RyaW5nLCBldmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCk6IHZvaWQ7XG4gICAgc3RhdGljIGdldEdvb2dsZUFuYWx5dGljc0NsaWVudElkOiAoKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgeyBXaW5kb3dEYXRhTGF5ZXJTZXJ2aWNlIH07XG4iLCJleHBvcnQgZGVjbGFyZSBjb25zdCBpbml0V2luZG93RnJvbnRlbmRDb25maWdPdmVycmlkZXNBcHBseUZ1bmN0aW9uOiAoKSA9PiB2b2lkO1xuIiwiaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBVbnN1cHBvcnRlZEN1c3RvbWVyU2VydmljZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG4iLCJpbXBvcnQgeyBPcmdBbmFseXRpY3NHb29nbGVBbmFseXRpY3NDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdBbmFseXRpY3NDb25maWcnO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25MaXN0ZW5lciB9IGZyb20gJy4uL2RvbU11dGF0aW9uTGlzdGVuZXInO1xuaW1wb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kb21NdXRhdGlvbkNvbnRpbnVhdGlvbic7XG5kZWNsYXJlIGNsYXNzIERhdGFMYXllckV2ZW50c0xpc3RlbmVyIGltcGxlbWVudHMgRG9tTXV0YXRpb25MaXN0ZW5lciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkRhdGFMYXllclB1c2g7XG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHNUb0ludGVyY2VwdDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd0RhdGFMYXllclNlcnZpY2U7XG4gICAgY29uc3RydWN0b3Iob25EYXRhTGF5ZXJQdXNoOiAoZXZlbnQ6IG9iamVjdCkgPT4gdm9pZCwgZXZlbnRzVG9JbnRlcmNlcHQ6IHN0cmluZ1tdLCBnYUNvbmZpZzogT3JnQW5hbHl0aWNzR29vZ2xlQW5hbHl0aWNzQ29uZmlnKTtcbiAgICBydW5PbmNlSW1tZWRpYXRlbHkoKTogYm9vbGVhbjtcbiAgICB0cmllc01heCgpOiBudW1iZXI7XG4gICAgb25Eb21DaGFuZ2UoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbiAgICBnZXROYW1lKCk6IHN0cmluZztcbn1cbmV4cG9ydCB7IERhdGFMYXllckV2ZW50c0xpc3RlbmVyIH07XG4iLCJpbXBvcnQgeyBEb21NdXRhdGlvbkxpc3RlbmVyIH0gZnJvbSAnLi4vZG9tTXV0YXRpb25MaXN0ZW5lcic7XG5pbXBvcnQgeyBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RvbU11dGF0aW9uQ29udGludWF0aW9uJztcbmRlY2xhcmUgY2xhc3MgRW1iZWRkZWRDaGF0c1BsYWNlbWVudHNMaXN0ZW5lciBpbXBsZW1lbnRzIERvbU11dGF0aW9uTGlzdGVuZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmluZFBsYWNlbWVudE5vZGVzO1xuICAgIGNvbnN0cnVjdG9yKGZpbmRQbGFjZW1lbnROb2RlczogKCkgPT4gRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbik7XG4gICAgcnVuT25jZUltbWVkaWF0ZWx5KCk6IGJvb2xlYW47XG4gICAgb25Eb21DaGFuZ2UoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbiAgICBnZXROYW1lKCk6IHN0cmluZztcbiAgICB0cmllc01heCgpOiBudW1iZXI7XG59XG5leHBvcnQgeyBFbWJlZGRlZENoYXRzUGxhY2VtZW50c0xpc3RlbmVyLCB9O1xuIiwiaW1wb3J0IHsgRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kb21NdXRhdGlvbkNvbnRpbnVhdGlvbic7XG5pbXBvcnQgeyBEb21NdXRhdGlvbkxpc3RlbmVyIH0gZnJvbSAnLi4vZG9tTXV0YXRpb25MaXN0ZW5lcic7XG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIEdsYWRseToge1xuICAgICAgICAgICAgc2hvdzogKCkgPT4gdm9pZDtcbiAgICAgICAgICAgIGdldFVzZXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogc3RyaW5nO1xuICAgICAgICAgICAgfSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGdldEF2YWlsYWJpbGl0eTogKCkgPT4gc3RyaW5nO1xuICAgICAgICAgICAgb246IChldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgICAgIH07XG4gICAgfVxufVxuZGVjbGFyZSBjbGFzcyBHbGFkbHlMaXN0ZW5lciBpbXBsZW1lbnRzIERvbU11dGF0aW9uTGlzdGVuZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25HbGFkbHlBdmFpbGFibGU7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgR0xBRExZX1JFVFJJRVNfTUFYO1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEdMQURMWV9DT05WRVJTQVRJT05fU1RBUlRFRF9FVkVOVF9OQU1FO1xuICAgIGNvbnN0cnVjdG9yKG9uR2xhZGx5QXZhaWxhYmxlOiAoKSA9PiB2b2lkKTtcbiAgICBydW5PbmNlSW1tZWRpYXRlbHkoKTogYm9vbGVhbjtcbiAgICB0cmllc01heCgpOiBudW1iZXI7XG4gICAgb25Eb21DaGFuZ2UoKTogRG9tTXV0YXRpb25PYnNlcnZlckNvbnRpbnVhdGlvbjtcbiAgICBnZXROYW1lKCk6IHN0cmluZztcbn1cbmV4cG9ydCB7IEdsYWRseUxpc3RlbmVyIH07XG4iLCJpbXBvcnQgeyBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9kb21NdXRhdGlvbkNvbnRpbnVhdGlvbic7XG5pbXBvcnQgeyBEb21NdXRhdGlvbkxpc3RlbmVyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3NlcnZpY2UvZG9tTXV0YXRpb25zL2RvbU11dGF0aW9uTGlzdGVuZXInO1xuaW1wb3J0IHsgS3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vc2VydmljZS9rdXN0b21lckludGVncmF0aW9uU2VydmljZSc7XG5kZWNsYXJlIGNsYXNzIEt1c3RvbWVyVmlzaWJpbGl0eUxpc3RlbmVyIGltcGxlbWVudHMgRG9tTXV0YXRpb25MaXN0ZW5lciB7XG4gICAga3VzdG9tZXJJbnRlZ3JhdGlvblNlcnZpY2U6IEt1c3RvbWVySW50ZWdyYXRpb25TZXJ2aWNlO1xuICAgIGNvbnN0cnVjdG9yKCk7XG4gICAgcnVuT25jZUltbWVkaWF0ZWx5KCk6IGJvb2xlYW47XG4gICAgdHJpZXNNYXgoKTogbnVtYmVyO1xuICAgIGRpc2Nvbm5lY3QoKTogdm9pZDtcbiAgICBvbkRvbUNoYW5nZSgpOiBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uO1xuICAgIGdldE5hbWUoKTogc3RyaW5nO1xufVxuZXhwb3J0IHsgS3VzdG9tZXJWaXNpYmlsaXR5TGlzdGVuZXIgfTtcbiIsImltcG9ydCB7IE9yZ0FuYWx5dGljc0NvbmZpZyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0FuYWx5dGljc0NvbmZpZyc7XG5pbXBvcnQgeyBEYXRhTGF5ZXJFdmVudHNMaXN0ZW5lciB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9kYXRhTGF5ZXIvZGF0YUxheWVyRXZlbnRzTGlzdGVuZXInO1xuZGVjbGFyZSBjbGFzcyBPcmdzQ29tbW9uRGF0YUxheWVyTGlzdGVuZXIge1xuICAgIHByaXZhdGUgc3RhdGljIGRhdGFMYXllckNhY2hlO1xuICAgIHN0YXRpYyByZXNldERhdGFMYXllckNhY2hlKCk6IHZvaWQ7XG4gICAgc3RhdGljIGdldFNpbmdsZXRvbkRhdGFMYXllckxpc3RlbmVyQ2FsbGJhY2tDb21ibyhvcmdTaG9ydE5hbWU6IHN0cmluZywgb3JnQW5hbHl0aWNzQ29uZmlnOiBPcmdBbmFseXRpY3NDb25maWcpOiB7XG4gICAgICAgIGRhdGFMYXllckxpc3RlbmVyOiBEYXRhTGF5ZXJFdmVudHNMaXN0ZW5lcjtcbiAgICB9IHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IHsgT3Jnc0NvbW1vbkRhdGFMYXllckxpc3RlbmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUksaUJBQWlCO0NBQUM7T0FBVztPQUFlO09BQVM7T0FBUztPQUFrQjtPQUFTO09BQWtCO0NBQVE7QUFDdkgsSUFBSSxZQUFZO0NBQUM7T0FBVztPQUFTO09BQVM7T0FBa0I7T0FBUztDQUFXOzs7O0FDRHBGLElBQUksYUFBYSxDQUFDLElBQUk7Ozs7QUNDdEIsSUFBSSxzQkFBc0IsQ0FBQyxXQUFHLGdDQUFBOzs7O0FDQzlCLElBQUksMkJBQTJCO0NBQUM7T0FBTztPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDQ3ZDLElBQUUsc0JBQUE7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0ZGLElBQUUsdUJBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0RGLElBQUksNkJBQTZCO0NBQUM7T0FBTztPQUFBO0NBQUE7Ozs7QUNBekMsSUFBVyxtQkFBbUIsQ0FBQyxJQUFJO0FBQ25DLElBQUksc0JBQXNCO0NBQUM7T0FBVztPQUFFO09BQUE7Q0FBQTs7OztBQ0l4QyxJQUFFLHFCQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNMRixJQUFJLHdCQUF3QixDQUFDLFdBQU8sUUFBQTs7OztBQ0NwQyxJQUFJLG9CQUFvQixDQUFDLFdBQU8sWUFBQTs7OztBQ0RoQyxJQUFJLHNCQUFzQixDQUFDLFdBQU8sUUFBQTs7OztBQ0FsQyxJQUFXLHlCQUF5QixDQUFDLElBQUk7Ozs7QUNDekMsSUFBSSxPQUFLLENBQUMsS0FBSyxXQUFBLEtBQUEsQ0FBQTtBQUNmLElBQUkseUJBQWlCO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDRnJCLElBQVcsaURBQWlELENBQUMsSUFBSTs7OztBQ0NqRSxJQUFXLDZCQUE2QixDQUFDLFdBQVcsMkJBQXVCOzs7O0FDRTNFLElBQUksMEJBQTBCO0NBQUM7T0FBVztPQUEyQjtPQUFBO0NBQUE7Ozs7QUNEckUsSUFBSSxrQ0FBa0M7Q0FBQztPQUFXO09BQTJCO09BQUE7Q0FBQTs7OztBQ0E3RSxJQUFJLEtBQUssQ0FBQyxLQUFLLFdBQUEsR0FBQSxDQUFBO0FBQ2YsSUFBSSxpQkFBaUI7Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0FyQixJQUFJLDZCQUE2QjtDQUFDO09BQVc7T0FBMkI7T0FBQTtDQUFBOzs7O0FDRHhFLElBQUksOEJBQThCO0NBQUM7T0FBTztPQUFBO0NBQUEifQ==
|