@envive-ai/react-hooks 0.2.6-alpha-arthur-2 → 0.2.6-alpha-arthur-3
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/{AmplitudeOperations-DOEgdx-a.js → AmplitudeOperations-BjC8DOqm.js} +2 -2
- package/dist/{AmplitudeOperations-6Y7GejD-.cjs → AmplitudeOperations-CQs4sVHN.cjs} +2 -2
- package/dist/{NewOrgConfig-C_1T1iOt.js → NewOrgConfig-CRakarmw.js} +2 -2
- package/dist/{NewOrgConfig-D2Kvqa1z.cjs → NewOrgConfig-D48KabOj.cjs} +2 -2
- package/dist/{TrackComponentVisibleEvent-BvDOoSsc.js → TrackComponentVisibleEvent-C9RvfdS9.js} +3 -3
- package/dist/{TrackComponentVisibleEvent-CcZ6l_cs.cjs → TrackComponentVisibleEvent-_Fb-JXkV.cjs} +3 -3
- package/dist/amplitudeContext-D5HSmIWg.cjs +253 -0
- package/dist/amplitudeContext-wW37Ziq-.js +237 -0
- package/dist/{app-DEnOfim0.js → app-CGw4C9Bn.js} +5 -5
- package/dist/{app-DOEeLKrt.cjs → app-Di_sBmzj.cjs} +5 -5
- package/dist/application/models/graphql/index.d.ts +1 -1
- package/dist/application/models/guards/api/index.d.ts +2 -2
- package/dist/application/models/guards/utils.d.ts +1 -1
- package/dist/application/models/index.d.ts +4 -4
- package/dist/application/utils/index.cjs +3 -3
- package/dist/application/utils/index.d.cts +2 -2
- package/dist/application/utils/index.d.ts +4 -4
- package/dist/application/utils/index.js +3 -3
- package/dist/{atomStore-CfzCqWB9.js → atomStore-BuopbV9k.js} +1 -1
- package/dist/{atomStore-BQVO5haU.cjs → atomStore-CZKe3itM.cjs} +1 -1
- package/dist/atoms/app/index.cjs +8 -8
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/index.js +8 -8
- package/dist/atoms/atomStore/index.cjs +1 -1
- package/dist/atoms/atomStore/index.d.cts +1 -1
- package/dist/atoms/atomStore/index.js +1 -1
- package/dist/atoms/chat/index.cjs +9 -9
- package/dist/atoms/chat/index.d.cts +31 -31
- package/dist/atoms/chat/index.d.ts +33 -33
- package/dist/atoms/chat/index.js +9 -9
- package/dist/atoms/globalSearch/index.d.cts +6 -6
- package/dist/atoms/org/index.cjs +2 -2
- package/dist/atoms/org/index.d.cts +16 -16
- package/dist/atoms/org/index.d.ts +17 -17
- package/dist/atoms/org/index.js +2 -2
- package/dist/atoms/search/index.cjs +3 -3
- package/dist/atoms/search/index.d.cts +14 -14
- package/dist/atoms/search/index.d.ts +15 -15
- package/dist/atoms/search/index.js +3 -3
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/search/utils.d.ts +1 -1
- package/dist/{cdnContext-CJ2BNLAD.js → cdnContext-BJT_Wn9Z.js} +2 -2
- package/dist/{cdnContext-lkC-AE6A.cjs → cdnContext-BoPraJxf.cjs} +2 -2
- package/dist/{chat-ChbwDr7k.js → chat-ZaY3KY-R.js} +2 -2
- package/dist/{chat-FCaaEJvJ.cjs → chat-rhEjVfrd.cjs} +2 -2
- package/dist/config/index.d.ts +4 -4
- package/dist/config/locators/components/chat/index.d.ts +1 -1
- package/dist/config/locators/components/common/index.d.ts +1 -1
- package/dist/config/locators/components/index.d.ts +1 -1
- package/dist/config/locators/index.d.ts +4 -4
- package/dist/contexts/amplitudeContext/index.cjs +10 -10
- package/dist/contexts/amplitudeContext/index.js +10 -10
- package/dist/contexts/atomProvider/index.cjs +18 -0
- package/dist/contexts/atomProvider/index.d.cts +11 -0
- package/dist/contexts/atomProvider/index.d.ts +11 -0
- package/dist/contexts/atomProvider/index.js +15 -0
- package/dist/contexts/cdnContext/index.cjs +2 -2
- package/dist/contexts/cdnContext/index.d.cts +1 -1
- package/dist/contexts/cdnContext/index.js +2 -2
- package/dist/contexts/enviveConfigContext/index.cjs +4 -2
- package/dist/contexts/enviveConfigContext/index.d.cts +3 -2
- package/dist/contexts/enviveConfigContext/index.d.ts +3 -2
- package/dist/contexts/enviveConfigContext/index.js +4 -3
- package/dist/contexts/enviveCssContext/index.cjs +9 -7
- package/dist/contexts/enviveCssContext/index.d.cts +1 -1
- package/dist/contexts/enviveCssContext/index.js +9 -7
- package/dist/contexts/featureFlagContext/index.cjs +3 -3
- package/dist/contexts/featureFlagContext/index.d.cts +1 -1
- package/dist/contexts/featureFlagContext/index.js +3 -3
- package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -1
- package/dist/contexts/graphqlContext/index.cjs +4 -2
- package/dist/contexts/graphqlContext/index.d.cts +1 -1
- package/dist/contexts/graphqlContext/index.js +4 -2
- package/dist/contexts/localStorageContext/index.d.cts +1 -1
- package/dist/contexts/newOrgConfigContext/index.cjs +7 -5
- package/dist/contexts/newOrgConfigContext/index.d.cts +1 -1
- package/dist/contexts/newOrgConfigContext/index.js +7 -5
- package/dist/contexts/searchContext/index.cjs +14 -13
- package/dist/contexts/searchContext/index.js +14 -13
- package/dist/contexts/sessionStorageContext/index.cjs +1 -1
- package/dist/contexts/sessionStorageContext/index.js +1 -1
- package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
- package/dist/contexts/shopifyUrlContext/index.js +2 -2
- package/dist/contexts/systemSettingsContext/index.cjs +2 -2
- package/dist/contexts/systemSettingsContext/index.d.ts +4 -4
- package/dist/contexts/systemSettingsContext/index.js +2 -2
- package/dist/contexts/userIdentityContext/index.cjs +8 -8
- package/dist/contexts/userIdentityContext/index.d.ts +1 -1
- package/dist/contexts/userIdentityContext/index.js +8 -8
- package/dist/{domObserver-DNeeSh1F.js → domObserver-CVhsCSkS.js} +1 -1
- package/dist/{domObserver-C2oQO8vi.cjs → domObserver-LCBj1xw4.cjs} +1 -1
- package/dist/enviveConfig-CHXb9xwk.cjs +125 -0
- package/dist/enviveConfig-CUJgI97-.js +63 -0
- package/dist/enviveConfigContext-C91Air9z.js +48 -0
- package/dist/enviveConfigContext-CZPfJkcS.cjs +0 -0
- package/dist/enviveConfigContext-Hc1JBLu-.js +1 -0
- package/dist/enviveConfigContext-zZAJwv87.cjs +69 -0
- package/dist/exceptions/index.d.cts +1 -1
- package/dist/featureFlagServiceContext-ClnlCJV5.d.cts +1 -1
- package/dist/{featureFlagServiceContext-CyPGEe2d.d.ts → featureFlagServiceContext-x-hAAKdL.d.ts} +1 -1
- package/dist/graphqlContext-C3T_K97L.js +94 -0
- package/dist/graphqlContext-DqWvz7Op.cjs +108 -0
- package/dist/hooks/AmplitudeOperations/index.cjs +11 -11
- package/dist/hooks/AmplitudeOperations/index.js +11 -11
- package/dist/hooks/AppDetails/index.cjs +13 -11
- package/dist/hooks/AppDetails/index.js +13 -11
- package/dist/hooks/BlockBackButton/index.d.ts +1 -1
- package/dist/hooks/CdnOperations/index.cjs +2 -2
- package/dist/hooks/CdnOperations/index.js +2 -2
- package/dist/hooks/ChatToggle/index.cjs +11 -11
- package/dist/hooks/ChatToggle/index.js +11 -11
- package/dist/hooks/ChatToggleAnalytics/index.cjs +11 -11
- package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
- package/dist/hooks/ChatToggleAnalytics/index.js +11 -11
- package/dist/hooks/CustomerSupportHandoff/index.d.cts +1 -1
- package/dist/hooks/Debounce/index.d.cts +1 -1
- package/dist/hooks/ElementObserver/index.cjs +1 -1
- package/dist/hooks/ElementObserver/index.d.ts +1 -1
- package/dist/hooks/ElementObserver/index.js +1 -1
- package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
- package/dist/hooks/GraphQLConfig/index.cjs +5 -3
- package/dist/hooks/GraphQLConfig/index.js +5 -3
- package/dist/hooks/IdentifyUser/index.cjs +8 -8
- package/dist/hooks/IdentifyUser/index.js +8 -8
- package/dist/hooks/ImageResolver/index.cjs +1 -1
- package/dist/hooks/ImageResolver/index.js +1 -1
- package/dist/hooks/Intersection/index.cjs +1 -1
- package/dist/hooks/Intersection/index.d.cts +1 -1
- package/dist/hooks/Intersection/index.d.ts +1 -1
- package/dist/hooks/Intersection/index.js +1 -1
- package/dist/hooks/IsSmallScreen/index.d.ts +1 -1
- package/dist/hooks/LocalStorageOperations/index.d.cts +1 -1
- package/dist/hooks/NewOrgConfig/index.cjs +8 -6
- package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
- package/dist/hooks/NewOrgConfig/index.d.ts +2 -2
- package/dist/hooks/NewOrgConfig/index.js +8 -6
- package/dist/hooks/Search/index.cjs +13 -13
- package/dist/hooks/Search/index.js +13 -13
- package/dist/hooks/SearchOperations/index.cjs +15 -14
- package/dist/hooks/SearchOperations/index.js +15 -14
- package/dist/hooks/SessionStorageOperations/index.cjs +1 -1
- package/dist/hooks/SessionStorageOperations/index.js +1 -1
- package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
- package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
- package/dist/hooks/SystemSettingsContext/index.cjs +2 -2
- package/dist/hooks/SystemSettingsContext/index.d.cts +2 -2
- package/dist/hooks/SystemSettingsContext/index.d.ts +4 -4
- package/dist/hooks/SystemSettingsContext/index.js +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/index.cjs +12 -12
- package/dist/hooks/TrackComponentVisibleEvent/index.js +12 -12
- package/dist/hooks/UpdateAnalyticsProps/index.cjs +10 -10
- package/dist/hooks/UpdateAnalyticsProps/index.d.cts +1 -1
- package/dist/hooks/UpdateAnalyticsProps/index.js +10 -10
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/{index-bEjLKG_Q.d.ts → index--OKiRCTl.d.ts} +1 -1
- package/dist/{index-mv7KvWDq.d.ts → index-B95cXAA4.d.ts} +1 -1
- package/dist/{index-CuihhoIF.d.ts → index-BiDHHLjr.d.ts} +2 -2
- package/dist/{index-5li6ZMDu.d.ts → index-CAXM2KiM.d.ts} +1 -1
- package/dist/index-CMZcE7pk.d.cts +1 -1
- package/dist/index-ChiZg0yw.d.cts +1 -1
- package/dist/{index-DtzPIcQp.d.ts → index-DZU7c0jP.d.ts} +1 -1
- package/dist/{index-CsmO1rDH.d.ts → index-DywcCZdp.d.ts} +1 -1
- package/dist/{index-jFQefHda.d.ts → index-dc4j0jws.d.ts} +1 -1
- package/dist/index-npqPeJ1g.d.cts +1 -1
- package/dist/interceptors/index.d.ts +1 -1
- package/dist/{newOrgConfigAtom-BuQE_zPK.js → newOrgConfigAtom-C8h3w_Ji.js} +1 -1
- package/dist/{newOrgConfigAtom-rrYHmp1b.cjs → newOrgConfigAtom-CDttTiuu.cjs} +1 -1
- package/dist/newOrgConfigContext-B_rJMpwN.js +55 -0
- package/dist/newOrgConfigContext-D1sgTmVU.cjs +70 -0
- package/dist/{nodeSelector-BAKg1h_y.d.ts → nodeSelector-NqW-FBED.d.ts} +1 -1
- package/dist/{org-CIFgIcO4.cjs → org-BNs_maoW.cjs} +1 -1
- package/dist/{org-15F128Ah.js → org-CScQqL4k.js} +1 -1
- package/dist/{search-Ch6LKNh4.cjs → search-CWkDtqQV.cjs} +2 -2
- package/dist/{search--80x6CfL.js → search-OWKKaQQj.js} +2 -2
- package/dist/{searchContext-DuB2drQx.cjs → searchContext-3VsAb17A.cjs} +5 -4
- package/dist/{searchContext-CSmiMhhs.js → searchContext-Bhhp_q_P.js} +5 -4
- package/dist/{sessionStorageContext-BuWrJQwc.cjs → sessionStorageContext-L3f_btsR.cjs} +1 -1
- package/dist/{sessionStorageContext-DvFHbk81.js → sessionStorageContext-kQJRbkHL.js} +1 -1
- package/dist/{shopifyUrlContext-Bw1kAZ2P.cjs → shopifyUrlContext-BsYGfLvw.cjs} +2 -2
- package/dist/{shopifyUrlContext-DnJiUmMA.js → shopifyUrlContext-CB9LQU_i.js} +2 -2
- package/dist/{systemSettingsContext-sM46G65r.cjs → systemSettingsContext-B5plhu8S.cjs} +2 -2
- package/dist/{systemSettingsContext-CyanI1pd.js → systemSettingsContext-Cac6mmfA.js} +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/{urlsParser-bb8ciRFg.cjs → urlsParser-Dax4iVNC.cjs} +1 -1
- package/dist/{urlsParser-v_1DKvyf.js → urlsParser-NAp2LwWP.js} +1 -1
- package/dist/{useAppDetails-Ce_siNC2.js → useAppDetails-B-lZpIPK.js} +4 -4
- package/dist/{useAppDetails-Dyn-dAJJ.cjs → useAppDetails-BAJjqvyF.cjs} +4 -4
- package/dist/{useGraphQLConfig-Btszi6cG.js → useGraphQLConfig-CeYY5maa.js} +2 -2
- package/dist/{useGraphQLConfig-v9veUbvJ.cjs → useGraphQLConfig-Cm_lEb1T.cjs} +2 -2
- package/dist/{useIntersection-BcBCa890.cjs → useIntersection-DuwPFRY9.cjs} +1 -1
- package/dist/{useIntersection-BkMkuJcZ.js → useIntersection-bCSteycU.js} +1 -1
- package/dist/{utils-CLANMl4P.cjs → utils-D3MjNkd3.cjs} +1 -1
- package/dist/{utils-BzR9AjY0.js → utils-DMwh3QbT.js} +1 -1
- package/dist/{utils-BitIIghf.d.ts → utils-DjhLO2vO.d.ts} +1 -1
- package/package.json +5 -1
- package/src/atoms/envive/enviveConfig.ts +1 -0
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +5 -5
- package/src/contexts/atomProvider/atomProvider.tsx +6 -0
- package/src/contexts/atomProvider/index.ts +1 -0
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +15 -12
- package/src/contexts/graphqlContext/graphqlContext.tsx +5 -2
- package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +13 -5
- package/src/contexts/searchContext/searchContext.tsx +1 -0
- package/dist/amplitudeContext-CH-Rtn8y.js +0 -236
- package/dist/amplitudeContext-CZXdr3HG.cjs +0 -252
- package/dist/enviveConfig-Ciq4ASoV.js +0 -62
- package/dist/enviveConfig-Dp80h9yu.cjs +0 -130
- package/dist/enviveConfigContext-0PQkfMQ6.cjs +0 -62
- package/dist/enviveConfigContext-CMDiVsln.js +0 -47
- package/dist/graphqlContext-0cg9fEUw.js +0 -96
- package/dist/graphqlContext-ChXlE8Ul.cjs +0 -111
- package/dist/newOrgConfigContext-D-gU5ppl.js +0 -53
- package/dist/newOrgConfigContext-d3RHl430.cjs +0 -68
|
@@ -4,13 +4,15 @@ require('../../models-Dl0_Ujgj.cjs');
|
|
|
4
4
|
require('../../utils-CiJLDPjY.cjs');
|
|
5
5
|
require('../../api-D4Xoibs9.cjs');
|
|
6
6
|
require('../../logger-BqHq67zN.cjs');
|
|
7
|
-
require('../../enviveConfig-
|
|
8
|
-
require('../../newOrgConfigAtom-
|
|
7
|
+
require('../../enviveConfig-CHXb9xwk.cjs');
|
|
8
|
+
require('../../newOrgConfigAtom-CDttTiuu.cjs');
|
|
9
|
+
require('../../enviveConfigContext-zZAJwv87.cjs');
|
|
9
10
|
require('../../featureFlagServiceContext-DHtkQAtq.cjs');
|
|
10
|
-
require('../../
|
|
11
|
-
require('../../
|
|
11
|
+
require('../../enviveConfigContext-CZPfJkcS.cjs');
|
|
12
|
+
require('../../graphqlContext-DqWvz7Op.cjs');
|
|
13
|
+
require('../../useGraphQLConfig-Cm_lEb1T.cjs');
|
|
12
14
|
require('../../featureFlagServiceContext-Csgo-MUv.cjs');
|
|
13
|
-
const require_newOrgConfigContext = require('../../newOrgConfigContext-
|
|
15
|
+
const require_newOrgConfigContext = require('../../newOrgConfigContext-D1sgTmVU.cjs');
|
|
14
16
|
|
|
15
17
|
exports.NewOrgConfigProvider = require_newOrgConfigContext.NewOrgConfigProvider;
|
|
16
18
|
exports.useNewOrgConfigContext = require_newOrgConfigContext.useNewOrgConfigContext;
|
|
@@ -9,4 +9,4 @@ declare const NewOrgConfigProvider: React.FC<NewOrgConfigProviderProps>;
|
|
|
9
9
|
declare const useNewOrgConfigContext: () => NewOrgConfigContextType;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { NewOrgConfigProvider, useNewOrgConfigContext };
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL25ld09yZ0NvbmZpZ0NvbnRleHQvbmV3T3JnQ29uZmlnQ29udGV4dC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW50ZXJmYWNlIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBOZXdPcmdDb25maWdQcm92aWRlcjogUmVhY3QuRkM8TmV3T3JnQ29uZmlnUHJvdmlkZXJQcm9wcz47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VOZXdPcmdDb25maWdDb250ZXh0OiAoKSA9PiBOZXdPcmdDb25maWdDb250ZXh0VHlwZTtcbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUksNEJBQTRCLENBQUMsVUFBRyxVQUFBO0FBQ3BDLElBQVcsdUJBQVk7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQ3ZCLElBQUEseUJBQUEsQ0FBQSxVQUFBLHdCQUFBIn0=
|
|
@@ -4,12 +4,14 @@ import "../../models-Cw0QcbQv.js";
|
|
|
4
4
|
import "../../utils-B1LVzQYK.js";
|
|
5
5
|
import "../../api-D4HaU2Gf.js";
|
|
6
6
|
import "../../logger-BMVdhQOV.js";
|
|
7
|
-
import "../../enviveConfig-
|
|
8
|
-
import "../../newOrgConfigAtom-
|
|
7
|
+
import "../../enviveConfig-CUJgI97-.js";
|
|
8
|
+
import "../../newOrgConfigAtom-C8h3w_Ji.js";
|
|
9
|
+
import "../../enviveConfigContext-C91Air9z.js";
|
|
9
10
|
import "../../featureFlagServiceContext-Cvp7NlpC.js";
|
|
10
|
-
import "../../
|
|
11
|
-
import "../../
|
|
11
|
+
import "../../enviveConfigContext-Hc1JBLu-.js";
|
|
12
|
+
import "../../graphqlContext-C3T_K97L.js";
|
|
13
|
+
import "../../useGraphQLConfig-CeYY5maa.js";
|
|
12
14
|
import "../../featureFlagServiceContext-CISyb90N.js";
|
|
13
|
-
import { NewOrgConfigProvider, useNewOrgConfigContext } from "../../newOrgConfigContext-
|
|
15
|
+
import { NewOrgConfigProvider, useNewOrgConfigContext } from "../../newOrgConfigContext-B_rJMpwN.js";
|
|
14
16
|
|
|
15
17
|
export { NewOrgConfigProvider, useNewOrgConfigContext };
|
|
@@ -6,21 +6,22 @@ require('../../models-Dl0_Ujgj.cjs');
|
|
|
6
6
|
require('../../utils-CiJLDPjY.cjs');
|
|
7
7
|
require('../../api-D4Xoibs9.cjs');
|
|
8
8
|
require('../../logger-BqHq67zN.cjs');
|
|
9
|
-
require('../../
|
|
10
|
-
require('../../
|
|
11
|
-
require('../../
|
|
12
|
-
require('../../
|
|
13
|
-
require('../../
|
|
14
|
-
require('../../
|
|
15
|
-
require('../../
|
|
16
|
-
require('../../app-
|
|
9
|
+
require('../../utils-D3MjNkd3.cjs');
|
|
10
|
+
require('../../domObserver-LCBj1xw4.cjs');
|
|
11
|
+
require('../../urlsParser-Dax4iVNC.cjs');
|
|
12
|
+
require('../../atomStore-CZKe3itM.cjs');
|
|
13
|
+
require('../../enviveConfig-CHXb9xwk.cjs');
|
|
14
|
+
require('../../org-BNs_maoW.cjs');
|
|
15
|
+
require('../../newOrgConfigAtom-CDttTiuu.cjs');
|
|
16
|
+
require('../../app-Di_sBmzj.cjs');
|
|
17
17
|
require('../../localStorageContext-CWc5xJ6U.cjs');
|
|
18
18
|
require('../../searchServiceAdapter-BclWy4fE.cjs');
|
|
19
|
-
require('../../enviveConfigContext-
|
|
20
|
-
require('../../
|
|
21
|
-
require('../../
|
|
22
|
-
require('../../
|
|
23
|
-
|
|
19
|
+
require('../../enviveConfigContext-zZAJwv87.cjs');
|
|
20
|
+
require('../../enviveConfigContext-CZPfJkcS.cjs');
|
|
21
|
+
require('../../graphqlContext-DqWvz7Op.cjs');
|
|
22
|
+
require('../../useGraphQLConfig-Cm_lEb1T.cjs');
|
|
23
|
+
require('../../useAppDetails-BAJjqvyF.cjs');
|
|
24
|
+
const require_searchContext = require('../../searchContext-3VsAb17A.cjs');
|
|
24
25
|
|
|
25
26
|
exports.SearchProvider = require_searchContext.SearchProvider;
|
|
26
27
|
exports.useSearchService = require_searchContext.useSearchService;
|
|
@@ -6,20 +6,21 @@ import "../../models-Cw0QcbQv.js";
|
|
|
6
6
|
import "../../utils-B1LVzQYK.js";
|
|
7
7
|
import "../../api-D4HaU2Gf.js";
|
|
8
8
|
import "../../logger-BMVdhQOV.js";
|
|
9
|
-
import "../../
|
|
10
|
-
import "../../
|
|
11
|
-
import "../../
|
|
12
|
-
import "../../
|
|
13
|
-
import "../../
|
|
14
|
-
import "../../
|
|
15
|
-
import "../../
|
|
16
|
-
import "../../app-
|
|
9
|
+
import "../../utils-DMwh3QbT.js";
|
|
10
|
+
import "../../domObserver-CVhsCSkS.js";
|
|
11
|
+
import "../../urlsParser-NAp2LwWP.js";
|
|
12
|
+
import "../../atomStore-BuopbV9k.js";
|
|
13
|
+
import "../../enviveConfig-CUJgI97-.js";
|
|
14
|
+
import "../../org-CScQqL4k.js";
|
|
15
|
+
import "../../newOrgConfigAtom-C8h3w_Ji.js";
|
|
16
|
+
import "../../app-CGw4C9Bn.js";
|
|
17
17
|
import "../../localStorageContext-BFwvuEcf.js";
|
|
18
18
|
import "../../searchServiceAdapter-B0h7psvh.js";
|
|
19
|
-
import "../../enviveConfigContext-
|
|
20
|
-
import "../../
|
|
21
|
-
import "../../
|
|
22
|
-
import "../../
|
|
23
|
-
import
|
|
19
|
+
import "../../enviveConfigContext-C91Air9z.js";
|
|
20
|
+
import "../../enviveConfigContext-Hc1JBLu-.js";
|
|
21
|
+
import "../../graphqlContext-C3T_K97L.js";
|
|
22
|
+
import "../../useGraphQLConfig-CeYY5maa.js";
|
|
23
|
+
import "../../useAppDetails-B-lZpIPK.js";
|
|
24
|
+
import { SearchProvider, useSearchService } from "../../searchContext-Bhhp_q_P.js";
|
|
24
25
|
|
|
25
26
|
export { SearchProvider, useSearchService };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require('../../logger-BqHq67zN.cjs');
|
|
2
|
-
const require_sessionStorageContext = require('../../sessionStorageContext-
|
|
2
|
+
const require_sessionStorageContext = require('../../sessionStorageContext-L3f_btsR.cjs');
|
|
3
3
|
|
|
4
4
|
exports.SessionStorageProvider = require_sessionStorageContext.SessionStorageProvider;
|
|
5
5
|
exports.useSessionStorage = require_sessionStorageContext.useSessionStorage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import "../../logger-BMVdhQOV.js";
|
|
2
|
-
import { SessionStorageProvider, useSessionStorage } from "../../sessionStorageContext-
|
|
2
|
+
import { SessionStorageProvider, useSessionStorage } from "../../sessionStorageContext-kQJRbkHL.js";
|
|
3
3
|
|
|
4
4
|
export { SessionStorageProvider, useSessionStorage };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require('../../urlsParser-
|
|
2
|
-
const require_shopifyUrlContext = require('../../shopifyUrlContext-
|
|
1
|
+
require('../../urlsParser-Dax4iVNC.cjs');
|
|
2
|
+
const require_shopifyUrlContext = require('../../shopifyUrlContext-BsYGfLvw.cjs');
|
|
3
3
|
|
|
4
4
|
exports.ShopifyUrlProvider = require_shopifyUrlContext.ShopifyUrlProvider;
|
|
5
5
|
exports.useShopifyUrl = require_shopifyUrlContext.useShopifyUrl;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../urlsParser-
|
|
2
|
-
import { ShopifyUrlProvider, useShopifyUrl } from "../../shopifyUrlContext-
|
|
1
|
+
import "../../urlsParser-NAp2LwWP.js";
|
|
2
|
+
import { ShopifyUrlProvider, useShopifyUrl } from "../../shopifyUrlContext-CB9LQU_i.js";
|
|
3
3
|
|
|
4
4
|
export { ShopifyUrlProvider, useShopifyUrl };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../../dist-VxRI6eQv.cjs');
|
|
2
2
|
require('../../logger-BqHq67zN.cjs');
|
|
3
|
-
require('../../enviveConfig-
|
|
4
|
-
const require_systemSettingsContext = require('../../systemSettingsContext-
|
|
3
|
+
require('../../enviveConfig-CHXb9xwk.cjs');
|
|
4
|
+
const require_systemSettingsContext = require('../../systemSettingsContext-B5plhu8S.cjs');
|
|
5
5
|
|
|
6
6
|
exports.SystemSettingsContext = require_systemSettingsContext.SystemSettingsContext;
|
|
7
7
|
exports.SystemSettingsContextProvider = require_systemSettingsContext.SystemSettingsContextProvider;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react2 from "react";
|
|
2
2
|
import { Dispatch, ReactNode, SetStateAction } from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
4
4
|
import { GenerationParams } from "@envive-ai/types";
|
|
5
5
|
|
|
6
6
|
//#region src/contexts/systemSettingsContext/systemSettingsContext.d.ts
|
|
@@ -16,12 +16,12 @@ interface SystemSettingsContextProviderProps {
|
|
|
16
16
|
generationParams?: GenerationParams;
|
|
17
17
|
showDebugBar?: boolean;
|
|
18
18
|
}
|
|
19
|
-
declare const SystemSettingsContext:
|
|
19
|
+
declare const SystemSettingsContext: react2.Context<SystemSettingsContextParams | undefined>;
|
|
20
20
|
declare const SystemSettingsContextProvider: ({
|
|
21
21
|
children,
|
|
22
22
|
generationParams,
|
|
23
23
|
showDebugBar
|
|
24
|
-
}: SystemSettingsContextProviderProps) =>
|
|
24
|
+
}: SystemSettingsContextProviderProps) => react_jsx_runtime1.JSX.Element;
|
|
25
25
|
//#endregion
|
|
26
26
|
export { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams };
|
|
27
27
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc3lzdGVtU2V0dGluZ3NDb250ZXh0L3N5c3RlbVNldHRpbmdzQ29udGV4dC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlbmVyYXRpb25QYXJhbXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IERpc3BhdGNoLCBSZWFjdE5vZGUsIFNldFN0YXRlQWN0aW9uIH0gZnJvbSAncmVhY3QnO1xuZGVjbGFyZSBjb25zdCBkZWZhdWx0R2VuZXJhdGlvblBhcmFtczogR2VuZXJhdGlvblBhcmFtcztcbmludGVyZmFjZSBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQYXJhbXMge1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG4gICAgZW5kcG9pbnRVUkw/OiBzdHJpbmc7XG4gICAgc2V0R2VuZXJhdGlvblBhcmFtczogRGlzcGF0Y2g8U2V0U3RhdGVBY3Rpb248R2VuZXJhdGlvblBhcmFtcyB8IHVuZGVmaW5lZD4+O1xufVxuaW50ZXJmYWNlIFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gICAgc2hvd0RlYnVnQmFyPzogYm9vbGVhbjtcbn1cbmRlY2xhcmUgY29uc3QgU3lzdGVtU2V0dGluZ3NDb250ZXh0OiBpbXBvcnQoXCJyZWFjdFwiKS5Db250ZXh0PFN5c3RlbVNldHRpbmdzQ29udGV4dFBhcmFtcyB8IHVuZGVmaW5lZD47XG5kZWNsYXJlIGNvbnN0IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyOiAoeyBjaGlsZHJlbiwgZ2VuZXJhdGlvblBhcmFtcywgc2hvd0RlYnVnQmFyLCB9OiBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzKSA9PiBpbXBvcnQoXCJyZWFjdC9qc3gtcnVudGltZVwiKS5KU1guRWxlbWVudDtcbmV4cG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyLCBTeXN0ZW1TZXR0aW5nc0NvbnRleHQsIGRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBLElBQUksMEJBQTBCLENBQUMsV0FBUSxpQkFBQTtBQUN2QyxJQUFJLDhCQUFzQjtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUMxQixJQUFJLHFDQUFvQjtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hCLElBQUksd0JBQXdCO0NBQUM7T0FBVztPQUFtQyxPQUFJO0NBQUE7QUFDL0UsSUFBQSxnQ0FBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQSxtQkFBQSxJQUFBO0NBQUEifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../../dist-C38adNK1.js";
|
|
2
2
|
import "../../logger-BMVdhQOV.js";
|
|
3
|
-
import "../../enviveConfig-
|
|
4
|
-
import { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams } from "../../systemSettingsContext-
|
|
3
|
+
import "../../enviveConfig-CUJgI97-.js";
|
|
4
|
+
import { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams } from "../../systemSettingsContext-Cac6mmfA.js";
|
|
5
5
|
|
|
6
6
|
export { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams };
|
|
@@ -6,14 +6,14 @@ require('../../models-Dl0_Ujgj.cjs');
|
|
|
6
6
|
require('../../utils-CiJLDPjY.cjs');
|
|
7
7
|
require('../../api-D4Xoibs9.cjs');
|
|
8
8
|
require('../../logger-BqHq67zN.cjs');
|
|
9
|
-
require('../../
|
|
10
|
-
require('../../
|
|
11
|
-
require('../../
|
|
12
|
-
require('../../
|
|
13
|
-
require('../../
|
|
14
|
-
require('../../
|
|
15
|
-
require('../../
|
|
16
|
-
const require_app = require('../../app-
|
|
9
|
+
require('../../utils-D3MjNkd3.cjs');
|
|
10
|
+
require('../../domObserver-LCBj1xw4.cjs');
|
|
11
|
+
require('../../urlsParser-Dax4iVNC.cjs');
|
|
12
|
+
require('../../atomStore-CZKe3itM.cjs');
|
|
13
|
+
require('../../enviveConfig-CHXb9xwk.cjs');
|
|
14
|
+
require('../../org-BNs_maoW.cjs');
|
|
15
|
+
require('../../newOrgConfigAtom-CDttTiuu.cjs');
|
|
16
|
+
const require_app = require('../../app-Di_sBmzj.cjs');
|
|
17
17
|
require('../../localStorageContext-CWc5xJ6U.cjs');
|
|
18
18
|
|
|
19
19
|
exports.UserIdentityProvider = require_app.UserIdentityProvider;
|
|
@@ -8,4 +8,4 @@ declare const UserIdentityProvider: React.FC<{
|
|
|
8
8
|
declare const useUserIdentity: () => UserIdentityContextType;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { UserIdentityProvider, useUserIdentity };
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvdXNlcklkZW50aXR5Q29udGV4dC91c2VySWRlbnRpdHlDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eUNvbnRleHRUeXBlIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBVc2VySWRlbnRpdHlQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVVzZXJJZGVudGl0eTogKCkgPT4gVXNlcklkZW50aXR5Q29udGV4dFR5cGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLHVCQUF1QjtDQUFDO09BQVUsTUFBTTtPQUFDLE1BQUE7Q0FBQTtBQUNwRCxJQUFXLGtCQUFrQixDQUFBLFVBQUEsd0JBQUEifQ==
|
|
@@ -6,14 +6,14 @@ import "../../models-Cw0QcbQv.js";
|
|
|
6
6
|
import "../../utils-B1LVzQYK.js";
|
|
7
7
|
import "../../api-D4HaU2Gf.js";
|
|
8
8
|
import "../../logger-BMVdhQOV.js";
|
|
9
|
-
import "../../
|
|
10
|
-
import "../../
|
|
11
|
-
import "../../
|
|
12
|
-
import "../../
|
|
13
|
-
import "../../
|
|
14
|
-
import "../../
|
|
15
|
-
import "../../
|
|
16
|
-
import { UserIdentityProvider, useUserIdentity } from "../../app-
|
|
9
|
+
import "../../utils-DMwh3QbT.js";
|
|
10
|
+
import "../../domObserver-CVhsCSkS.js";
|
|
11
|
+
import "../../urlsParser-NAp2LwWP.js";
|
|
12
|
+
import "../../atomStore-BuopbV9k.js";
|
|
13
|
+
import "../../enviveConfig-CUJgI97-.js";
|
|
14
|
+
import "../../org-CScQqL4k.js";
|
|
15
|
+
import "../../newOrgConfigAtom-C8h3w_Ji.js";
|
|
16
|
+
import { UserIdentityProvider, useUserIdentity } from "../../app-CGw4C9Bn.js";
|
|
17
17
|
import "../../localStorageContext-BFwvuEcf.js";
|
|
18
18
|
|
|
19
19
|
export { UserIdentityProvider, useUserIdentity };
|
|
@@ -282,4 +282,4 @@ var DOMObserver = class {
|
|
|
282
282
|
|
|
283
283
|
//#endregion
|
|
284
284
|
export { DOMObserver, ElementObserver, MutationHelper };
|
|
285
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItRE5lZVNoMUYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9kb21PYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcigodG9rZW4pID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/LmNsYXNzTGlzdC52YWx1ZSwgcmVjb3JkLm9sZFZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc1JlbW92ZWQoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgY2xhc3NNYXA6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+LFxuICApIHtcbiAgICBpZiAobm9kZSAmJiByZWNvcmQub2xkVmFsdWUpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGNvbXBhcmVUb2tlbnMocmVjb3JkLm9sZFZhbHVlLCBub2RlPy5jbGFzc0xpc3QudmFsdWUpO1xuICAgICAgdG9rZW5zLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+IHZvaWQpIHtcbiAgICBub2Rlcy5sZW5ndGggJiYgZm4/Lihub2Rlcyk7XG4gIH1cblxuICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpIHtcbiAgICByZXR1cm4gbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcyc7XG4gIH1cblxuICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnO1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBNdXRhdGlvbkhlbHBlciB9IGZyb20gJy4vbXV0YXRpb25IZWxwZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoZSBgRWxlbWVudE9ic2VydmVyYCBjbGFzcyBtb25pdG9ycyBhbGwgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBzcGVjaWZpYyBlbGVtZW50IGl0IGlzIHJlc3BvbnNpYmxlIGZvci5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW5zdGFudGlhdGVkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCB3aGljaCBtYW5hZ2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcy5cbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKlxuICogRWFjaCBpbnN0YW5jZSBvZiBgRWxlbWVudE9ic2VydmVyYCBob2xkcyBzZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBub2RlIGl0IGlzIG1vbml0b3JpbmcsXG4gKiBzdWNoIGFzIHRoZSBub2RlJ3Mgc2VsZWN0b3IgYW5kIGl0cyBgTXV0YXRpb25PYnNlcnZlcmAuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIHJhdyBub2RlXG4gKiBjaGFuZ2VzIGludG8gYSBtb3JlIHVzZXItZnJpZW5kbHkgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgbm9kZSBpcyBhZGRlZCB0byB0aGUgRE9NLCB0aGUgYEVsZW1lbnRPYnNlcnZlcmBcbiAqIGlzIG5vdGlmaWVkIGJ5IHRoZSBgRE9NT2JzZXJ2ZXJgLCB3aGljaCB0cmlnZ2VycyB0aGUgYG9uQWRkYCBjYWxsYmFjayBmdW5jdGlvbiBvbiB0aGUgcmVzcGVjdGl2ZSBgdXNlRWxlbWVudE9ic2VydmVyYFxuICogaW5zdGFuY2UuXG4gKlxuICogSW5zdGFuY2VzIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGFyZSBmdWxseSBtYW5hZ2VkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCByZXF1aXJpbmcgbm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICogV2hlbiB0aGUgaG9vayBpcyBkZXN0cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbGVtZW50T2JzZXJ2ZXIge1xuICBwcml2YXRlIG11dGF0aW9uOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcblxuICBwcml2YXRlIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIHNlbGVjdG9yOiBOb2RlU2VsZWN0b3I7XG5cbiAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogTWFwPGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+O1xuXG4gIHByaXZhdGUgY2xhc3NBZGRlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBjbGFzc1JlbW92ZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgbm9kZURpc3BsYXk6IHN0cmluZztcblxuICBwcml2YXRlIGFkZEZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNoYW5nZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNsYXNzQ2hhbmdlRm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgYWRkQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlc2V0Rm46ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Ioc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcikge1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMubm9kZURpc3BsYXkgPSAnYmxvY2snO1xuICAgIHRoaXMuYWRkRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLnJlbW92ZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXNldEZuID0gKCkgPT4ge307XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDbGFzcykuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25SZWNvcmQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmNoYW5nZUZuKHRoaXMubm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubXV0YXRpb24ub2JzZXJ2ZShub2RlLCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB0aGlzLmFkZEZuKHRoaXMubm9kZSk7XG4gICAgICB0aGlzLmFkZEluaXRpYWxMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucmVzZXRGbigpO1xuICAgIHRoaXMucmVtb3ZlRm4odGhpcy5ub2RlKTtcbiAgICB0aGlzLm11dGF0aW9uPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5jbGVhckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkLmNsZWFyKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuY2xlYXIoKTtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKGZuOiAoKSA9PiBSZWFjdEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKGZuKCksIHRoaXMubm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZmlyZShldmVudDogTW91c2VFdmVudFR5cGVzKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBNb3VzZUV2ZW50KGV2ZW50LCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgIHZpZXc6IHdpbmRvdyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5vZGVEaXNwbGF5IHx8ICdibG9jayc7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGVEaXNwbGF5ID0gZGlzcGxheSB8fCAnYmxvY2snO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0ZuID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZpb3VzRm4pIHtcbiAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHByZXZpb3VzRm4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5zZXQoZXZlbnQsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVzZXRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0FkZGVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBFbGVtZW50T2JzZXJ2ZXIgfSBmcm9tICcuL2VsZW1lbnRPYnNlcnZlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIGZvciB0aGUgYGRvY3VtZW50LmJvZHlgLiBJdCBtb25pdG9ycyBub2RlcyB0aGF0IGFyZVxuICogYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBET00gYW5kIG5vdGlmaWVzIHRoZSBvYnNlcnZlcnMgZm9yIGVhY2ggb2JzZXJ2YWJsZSBlbGVtZW50XG4gKiB3aGVuIHRoZXkgYXJlIHJlYWR5IHRvIGJlIHdhdGNoZWQuXG4gKlxuICogSG93IHRoYXQgd29ya3M6XG4gKlxuICogV2hlbiB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgYXR0YWNoZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgdG8gdGhlIGBkb2N1bWVudC5ib2R5YCBlbGVtZW50LlxuICogQWxsIGNoYW5nZXMgdG8gYGRvY3VtZW50LmJvZHlgIGFyZSB0cmFja2VkIGJ5IHRoaXMgb2JzZXJ2ZXIuIFdoZW4gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBgTXV0YXRpb25PYnNlcnZlcmBcbiAqIGl0ZXJhdGVzIHRocm91Z2ggYWxsIGFkZGVkIGFuZCByZW1vdmVkIG5vZGVzIGFuZCBjaGVja3MgaWYgZWFjaCBub2RlIGV4aXN0cyBpbiB0aGUgbWFpbiBtYXAgb2Ygb2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqXG4gKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBub3RpZmllcyB0aGUgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSB0byBzdGFydCBtb25pdG9yaW5nIGNoYW5nZXMgZm9yIHRoYXQgZWxlbWVudC5cbiAqXG4gKiBUaGUgcHJpbWFyeSBgTXV0YXRpb25PYnNlcnZlcmAgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBkZXN0cm95YCBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbGxpbmcgYGRlc3Ryb3lgIHdpbGwgZGlzY29ubmVjdCBhbGxcbiAqIGluZGl2aWR1YWwgZWxlbWVudCBvYnNlcnZlcnMgYW5kIHJlbGVhc2UgYW55IGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBjYWxsIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24uIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIGEgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vayBpcyBpbnN0YW50aWF0ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRE9NT2JzZXJ2ZXIge1xuICBwcml2YXRlIHN0YXRpYyBkb2N1bWVudE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzOiBNYXA8c3RyaW5nLCBFbGVtZW50T2JzZXJ2ZXI+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUFkaXRpb24ocmVjb3JkczogTXV0YXRpb25SZWNvcmRbXSwgbm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+XG4gICAgICByZWNvcmQuYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLnJlbW92ZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIEFycmF5LmZyb20obm9kZU1hcHBpbmcudmFsdWVzKCkpLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG9ic2VydmVyLmdldE5vZGUoKSB8fCBvYnNlcnZlci5nZXRTZWxlY3RvcigpPy5wYXJzZSgpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZU1hcHBpbmcuc2V0KG5vZGUsIG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZU1hcHBpbmc7XG4gIH1cblxuICBzdGF0aWMgYWRkKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpOiBFbGVtZW50T2JzZXJ2ZXIge1xuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rvci5nZXRQYXR0ZXJuKCk7XG4gICAgbGV0IGVsZW1lbnRPYnNlcnZlciA9IHRoaXMubGlzdGVuZXJzLmdldChub2RlKTtcbiAgICBpZiAoZWxlbWVudE9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICAgIH1cblxuICAgIGVsZW1lbnRPYnNlcnZlciA9IG5ldyBFbGVtZW50T2JzZXJ2ZXIoc2VsZWN0b3IpO1xuICAgIHRoaXMubGlzdGVuZXJzLnNldChub2RlLCBlbGVtZW50T2JzZXJ2ZXIpO1xuICAgIHJldHVybiBlbGVtZW50T2JzZXJ2ZXI7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIHRoaXMubGlzdGVuZXJzLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmRlbGV0ZShub2RlKTtcbiAgfVxuXG4gIHN0YXRpYyBvYnNlcnZlKCkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudE9ic2VydmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gdGhpcy5tYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5ub3RpZnlBZGl0aW9uKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeVJlbW92YWwobXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEsaUJB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
|
|
285
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItQ1Zoc0NTa1MuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9kb21PYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcigodG9rZW4pID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/LmNsYXNzTGlzdC52YWx1ZSwgcmVjb3JkLm9sZFZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc1JlbW92ZWQoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgY2xhc3NNYXA6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+LFxuICApIHtcbiAgICBpZiAobm9kZSAmJiByZWNvcmQub2xkVmFsdWUpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGNvbXBhcmVUb2tlbnMocmVjb3JkLm9sZFZhbHVlLCBub2RlPy5jbGFzc0xpc3QudmFsdWUpO1xuICAgICAgdG9rZW5zLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+IHZvaWQpIHtcbiAgICBub2Rlcy5sZW5ndGggJiYgZm4/Lihub2Rlcyk7XG4gIH1cblxuICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpIHtcbiAgICByZXR1cm4gbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcyc7XG4gIH1cblxuICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnO1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBNdXRhdGlvbkhlbHBlciB9IGZyb20gJy4vbXV0YXRpb25IZWxwZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoZSBgRWxlbWVudE9ic2VydmVyYCBjbGFzcyBtb25pdG9ycyBhbGwgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBzcGVjaWZpYyBlbGVtZW50IGl0IGlzIHJlc3BvbnNpYmxlIGZvci5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW5zdGFudGlhdGVkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCB3aGljaCBtYW5hZ2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcy5cbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKlxuICogRWFjaCBpbnN0YW5jZSBvZiBgRWxlbWVudE9ic2VydmVyYCBob2xkcyBzZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBub2RlIGl0IGlzIG1vbml0b3JpbmcsXG4gKiBzdWNoIGFzIHRoZSBub2RlJ3Mgc2VsZWN0b3IgYW5kIGl0cyBgTXV0YXRpb25PYnNlcnZlcmAuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIHJhdyBub2RlXG4gKiBjaGFuZ2VzIGludG8gYSBtb3JlIHVzZXItZnJpZW5kbHkgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgbm9kZSBpcyBhZGRlZCB0byB0aGUgRE9NLCB0aGUgYEVsZW1lbnRPYnNlcnZlcmBcbiAqIGlzIG5vdGlmaWVkIGJ5IHRoZSBgRE9NT2JzZXJ2ZXJgLCB3aGljaCB0cmlnZ2VycyB0aGUgYG9uQWRkYCBjYWxsYmFjayBmdW5jdGlvbiBvbiB0aGUgcmVzcGVjdGl2ZSBgdXNlRWxlbWVudE9ic2VydmVyYFxuICogaW5zdGFuY2UuXG4gKlxuICogSW5zdGFuY2VzIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGFyZSBmdWxseSBtYW5hZ2VkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCByZXF1aXJpbmcgbm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICogV2hlbiB0aGUgaG9vayBpcyBkZXN0cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbGVtZW50T2JzZXJ2ZXIge1xuICBwcml2YXRlIG11dGF0aW9uOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcblxuICBwcml2YXRlIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIHNlbGVjdG9yOiBOb2RlU2VsZWN0b3I7XG5cbiAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogTWFwPGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+O1xuXG4gIHByaXZhdGUgY2xhc3NBZGRlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBjbGFzc1JlbW92ZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgbm9kZURpc3BsYXk6IHN0cmluZztcblxuICBwcml2YXRlIGFkZEZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNoYW5nZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNsYXNzQ2hhbmdlRm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgYWRkQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlc2V0Rm46ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Ioc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcikge1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMubm9kZURpc3BsYXkgPSAnYmxvY2snO1xuICAgIHRoaXMuYWRkRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLnJlbW92ZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXNldEZuID0gKCkgPT4ge307XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDbGFzcykuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25SZWNvcmQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmNoYW5nZUZuKHRoaXMubm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubXV0YXRpb24ub2JzZXJ2ZShub2RlLCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB0aGlzLmFkZEZuKHRoaXMubm9kZSk7XG4gICAgICB0aGlzLmFkZEluaXRpYWxMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucmVzZXRGbigpO1xuICAgIHRoaXMucmVtb3ZlRm4odGhpcy5ub2RlKTtcbiAgICB0aGlzLm11dGF0aW9uPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5jbGVhckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkLmNsZWFyKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuY2xlYXIoKTtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKGZuOiAoKSA9PiBSZWFjdEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKGZuKCksIHRoaXMubm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZmlyZShldmVudDogTW91c2VFdmVudFR5cGVzKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBNb3VzZUV2ZW50KGV2ZW50LCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgIHZpZXc6IHdpbmRvdyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5vZGVEaXNwbGF5IHx8ICdibG9jayc7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGVEaXNwbGF5ID0gZGlzcGxheSB8fCAnYmxvY2snO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0ZuID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZpb3VzRm4pIHtcbiAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHByZXZpb3VzRm4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5zZXQoZXZlbnQsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVzZXRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0FkZGVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBFbGVtZW50T2JzZXJ2ZXIgfSBmcm9tICcuL2VsZW1lbnRPYnNlcnZlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIGZvciB0aGUgYGRvY3VtZW50LmJvZHlgLiBJdCBtb25pdG9ycyBub2RlcyB0aGF0IGFyZVxuICogYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBET00gYW5kIG5vdGlmaWVzIHRoZSBvYnNlcnZlcnMgZm9yIGVhY2ggb2JzZXJ2YWJsZSBlbGVtZW50XG4gKiB3aGVuIHRoZXkgYXJlIHJlYWR5IHRvIGJlIHdhdGNoZWQuXG4gKlxuICogSG93IHRoYXQgd29ya3M6XG4gKlxuICogV2hlbiB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgYXR0YWNoZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgdG8gdGhlIGBkb2N1bWVudC5ib2R5YCBlbGVtZW50LlxuICogQWxsIGNoYW5nZXMgdG8gYGRvY3VtZW50LmJvZHlgIGFyZSB0cmFja2VkIGJ5IHRoaXMgb2JzZXJ2ZXIuIFdoZW4gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBgTXV0YXRpb25PYnNlcnZlcmBcbiAqIGl0ZXJhdGVzIHRocm91Z2ggYWxsIGFkZGVkIGFuZCByZW1vdmVkIG5vZGVzIGFuZCBjaGVja3MgaWYgZWFjaCBub2RlIGV4aXN0cyBpbiB0aGUgbWFpbiBtYXAgb2Ygb2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqXG4gKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBub3RpZmllcyB0aGUgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSB0byBzdGFydCBtb25pdG9yaW5nIGNoYW5nZXMgZm9yIHRoYXQgZWxlbWVudC5cbiAqXG4gKiBUaGUgcHJpbWFyeSBgTXV0YXRpb25PYnNlcnZlcmAgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBkZXN0cm95YCBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbGxpbmcgYGRlc3Ryb3lgIHdpbGwgZGlzY29ubmVjdCBhbGxcbiAqIGluZGl2aWR1YWwgZWxlbWVudCBvYnNlcnZlcnMgYW5kIHJlbGVhc2UgYW55IGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBjYWxsIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24uIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIGEgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vayBpcyBpbnN0YW50aWF0ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRE9NT2JzZXJ2ZXIge1xuICBwcml2YXRlIHN0YXRpYyBkb2N1bWVudE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzOiBNYXA8c3RyaW5nLCBFbGVtZW50T2JzZXJ2ZXI+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUFkaXRpb24ocmVjb3JkczogTXV0YXRpb25SZWNvcmRbXSwgbm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+XG4gICAgICByZWNvcmQuYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLnJlbW92ZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIEFycmF5LmZyb20obm9kZU1hcHBpbmcudmFsdWVzKCkpLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG9ic2VydmVyLmdldE5vZGUoKSB8fCBvYnNlcnZlci5nZXRTZWxlY3RvcigpPy5wYXJzZSgpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZU1hcHBpbmcuc2V0KG5vZGUsIG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZU1hcHBpbmc7XG4gIH1cblxuICBzdGF0aWMgYWRkKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpOiBFbGVtZW50T2JzZXJ2ZXIge1xuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rvci5nZXRQYXR0ZXJuKCk7XG4gICAgbGV0IGVsZW1lbnRPYnNlcnZlciA9IHRoaXMubGlzdGVuZXJzLmdldChub2RlKTtcbiAgICBpZiAoZWxlbWVudE9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICAgIH1cblxuICAgIGVsZW1lbnRPYnNlcnZlciA9IG5ldyBFbGVtZW50T2JzZXJ2ZXIoc2VsZWN0b3IpO1xuICAgIHRoaXMubGlzdGVuZXJzLnNldChub2RlLCBlbGVtZW50T2JzZXJ2ZXIpO1xuICAgIHJldHVybiBlbGVtZW50T2JzZXJ2ZXI7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIHRoaXMubGlzdGVuZXJzLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmRlbGV0ZShub2RlKTtcbiAgfVxuXG4gIHN0YXRpYyBvYnNlcnZlKCkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudE9ic2VydmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gdGhpcy5tYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5ub3RpZnlBZGl0aW9uKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeVJlbW92YWwobXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEsaUJB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
|
|
@@ -301,4 +301,4 @@ Object.defineProperty(exports, 'MutationHelper', {
|
|
|
301
301
|
return MutationHelper;
|
|
302
302
|
}
|
|
303
303
|
});
|
|
304
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItQzJvUU84dmkuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZG9tT2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcGFyZVRva2VucyA9IChvcmlnaW5hbDogc3RyaW5nLCBjb21wYXJpc29uOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxUb2tlbnMgPSBuZXcgU2V0KG9yaWdpbmFsLnNwbGl0KCcgJykpO1xuICBjb25zdCBjb21wYXJpc29uVG9rZW5zID0gbmV3IFNldChjb21wYXJpc29uLnNwbGl0KCcgJykpO1xuICByZXR1cm4gWy4uLm9yaWdpbmFsVG9rZW5zXS5maWx0ZXIoKHRva2VuKSA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NSZW1vdmVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKHJlY29yZC5vbGRWYWx1ZSwgbm9kZT8uY2xhc3NMaXN0LnZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVTdWJ0cmVlQ2hhbmdlKG5vZGVzOiBOb2RlTGlzdCwgZm4/OiAobm9kZXM6IE5vZGVMaXN0KSA9PiB2b2lkKSB7XG4gICAgbm9kZXMubGVuZ3RoICYmIGZuPy4obm9kZXMpO1xuICB9XG5cbiAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnO1xuICB9XG5cbiAgc3RhdGljIGlzQ2hpbGRMaXN0KG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkge1xuICAgIHJldHVybiBtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0JztcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NDaGFuZ2UobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0NoYW5nZUZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0FkZGVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NBZGRlZCk7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NSZW1vdmVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NSZW1vdmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgaWYgKCF0aGlzLmFkZENoaWxkRm4gJiYgIXRoaXMucmVtb3ZlQ2hpbGRGbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NoaWxkTGlzdCkuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgRWxlbWVudE9ic2VydmVyIH0gZnJvbSAnLi9lbGVtZW50T2JzZXJ2ZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgbWFuYWdlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCBmb3IgdGhlIGBkb2N1bWVudC5ib2R5YC4gSXQgbW9uaXRvcnMgbm9kZXMgdGhhdCBhcmVcbiAqIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGFuZCBub3RpZmllcyB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIG9ic2VydmFibGUgZWxlbWVudFxuICogd2hlbiB0aGV5IGFyZSByZWFkeSB0byBiZSB3YXRjaGVkLlxuICpcbiAqIEhvdyB0aGF0IHdvcmtzOlxuICpcbiAqIFdoZW4gdGhlIGBvYnNlcnZlYCBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IGF0dGFjaGVzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHRoZSBgZG9jdW1lbnQuYm9keWAgZWxlbWVudC5cbiAqIEFsbCBjaGFuZ2VzIHRvIGBkb2N1bWVudC5ib2R5YCBhcmUgdHJhY2tlZCBieSB0aGlzIG9ic2VydmVyLiBXaGVuIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgYE11dGF0aW9uT2JzZXJ2ZXJgXG4gKiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBhZGRlZCBhbmQgcmVtb3ZlZCBub2RlcyBhbmQgY2hlY2tzIGlmIGVhY2ggbm9kZSBleGlzdHMgaW4gdGhlIG1haW4gbWFwIG9mIG9ic2VydmFibGUgZWxlbWVudHMuXG4gKlxuICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgaXQgbm90aWZpZXMgdGhlIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgdG8gc3RhcnQgbW9uaXRvcmluZyBjaGFuZ2VzIGZvciB0aGF0IGVsZW1lbnQuXG4gKlxuICogVGhlIHByaW1hcnkgYE11dGF0aW9uT2JzZXJ2ZXJgIHJlbWFpbnMgYWN0aXZlIHVudGlsIHRoZSBgZGVzdHJveWAgZnVuY3Rpb24gaXMgY2FsbGVkLiBDYWxsaW5nIGBkZXN0cm95YCB3aWxsIGRpc2Nvbm5lY3QgYWxsXG4gKiBpbmRpdmlkdWFsIGVsZW1lbnQgb2JzZXJ2ZXJzIGFuZCByZWxlYXNlIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBUaGVyZSBpcyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGludm9rZWQgd2hlbiBhIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2sgaXMgaW5zdGFudGlhdGVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERPTU9ic2VydmVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LndhdGNoKG5vZGUpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5UmVtb3ZhbChyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdLCBub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICByZWNvcmRzLmZvckVhY2goKHJlY29yZCkgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICAgICAgbm9kZU1hcHBpbmcuZGVsZXRlKG5vZGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICBBcnJheS5mcm9tKG5vZGVNYXBwaW5nLnZhbHVlcygpKS5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuc3luY2hyb25pemUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4ge1xuICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gbmV3IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBub2RlTWFwcGluZyA9IHRoaXMubWFwTm9kZUluc3RhbmNlc1RvTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMubm90aWZ5QWRpdGlvbihtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlSZW1vdmFsKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci5kZXN0cm95KCkpO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEs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
|
|
304
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItTENCajF4dzQuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZG9tT2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcGFyZVRva2VucyA9IChvcmlnaW5hbDogc3RyaW5nLCBjb21wYXJpc29uOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxUb2tlbnMgPSBuZXcgU2V0KG9yaWdpbmFsLnNwbGl0KCcgJykpO1xuICBjb25zdCBjb21wYXJpc29uVG9rZW5zID0gbmV3IFNldChjb21wYXJpc29uLnNwbGl0KCcgJykpO1xuICByZXR1cm4gWy4uLm9yaWdpbmFsVG9rZW5zXS5maWx0ZXIoKHRva2VuKSA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NSZW1vdmVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKHJlY29yZC5vbGRWYWx1ZSwgbm9kZT8uY2xhc3NMaXN0LnZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVTdWJ0cmVlQ2hhbmdlKG5vZGVzOiBOb2RlTGlzdCwgZm4/OiAobm9kZXM6IE5vZGVMaXN0KSA9PiB2b2lkKSB7XG4gICAgbm9kZXMubGVuZ3RoICYmIGZuPy4obm9kZXMpO1xuICB9XG5cbiAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnO1xuICB9XG5cbiAgc3RhdGljIGlzQ2hpbGRMaXN0KG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkge1xuICAgIHJldHVybiBtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0JztcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NDaGFuZ2UobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0NoYW5nZUZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0FkZGVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NBZGRlZCk7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NSZW1vdmVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NSZW1vdmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgaWYgKCF0aGlzLmFkZENoaWxkRm4gJiYgIXRoaXMucmVtb3ZlQ2hpbGRGbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NoaWxkTGlzdCkuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgRWxlbWVudE9ic2VydmVyIH0gZnJvbSAnLi9lbGVtZW50T2JzZXJ2ZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgbWFuYWdlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCBmb3IgdGhlIGBkb2N1bWVudC5ib2R5YC4gSXQgbW9uaXRvcnMgbm9kZXMgdGhhdCBhcmVcbiAqIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGFuZCBub3RpZmllcyB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIG9ic2VydmFibGUgZWxlbWVudFxuICogd2hlbiB0aGV5IGFyZSByZWFkeSB0byBiZSB3YXRjaGVkLlxuICpcbiAqIEhvdyB0aGF0IHdvcmtzOlxuICpcbiAqIFdoZW4gdGhlIGBvYnNlcnZlYCBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IGF0dGFjaGVzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHRoZSBgZG9jdW1lbnQuYm9keWAgZWxlbWVudC5cbiAqIEFsbCBjaGFuZ2VzIHRvIGBkb2N1bWVudC5ib2R5YCBhcmUgdHJhY2tlZCBieSB0aGlzIG9ic2VydmVyLiBXaGVuIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgYE11dGF0aW9uT2JzZXJ2ZXJgXG4gKiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBhZGRlZCBhbmQgcmVtb3ZlZCBub2RlcyBhbmQgY2hlY2tzIGlmIGVhY2ggbm9kZSBleGlzdHMgaW4gdGhlIG1haW4gbWFwIG9mIG9ic2VydmFibGUgZWxlbWVudHMuXG4gKlxuICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgaXQgbm90aWZpZXMgdGhlIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgdG8gc3RhcnQgbW9uaXRvcmluZyBjaGFuZ2VzIGZvciB0aGF0IGVsZW1lbnQuXG4gKlxuICogVGhlIHByaW1hcnkgYE11dGF0aW9uT2JzZXJ2ZXJgIHJlbWFpbnMgYWN0aXZlIHVudGlsIHRoZSBgZGVzdHJveWAgZnVuY3Rpb24gaXMgY2FsbGVkLiBDYWxsaW5nIGBkZXN0cm95YCB3aWxsIGRpc2Nvbm5lY3QgYWxsXG4gKiBpbmRpdmlkdWFsIGVsZW1lbnQgb2JzZXJ2ZXJzIGFuZCByZWxlYXNlIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBUaGVyZSBpcyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGludm9rZWQgd2hlbiBhIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2sgaXMgaW5zdGFudGlhdGVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERPTU9ic2VydmVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LndhdGNoKG5vZGUpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5UmVtb3ZhbChyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdLCBub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICByZWNvcmRzLmZvckVhY2goKHJlY29yZCkgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICAgICAgbm9kZU1hcHBpbmcuZGVsZXRlKG5vZGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICBBcnJheS5mcm9tKG5vZGVNYXBwaW5nLnZhbHVlcygpKS5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuc3luY2hyb25pemUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4ge1xuICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gbmV3IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBub2RlTWFwcGluZyA9IHRoaXMubWFwTm9kZUluc3RhbmNlc1RvTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMubm90aWZ5QWRpdGlvbihtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlSZW1vdmFsKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci5kZXN0cm95KCkpO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEs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
|