@envive-ai/react-hooks 0.3.0 → 0.3.2
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/application/commerce-api.cjs +4 -4
- package/dist/application/commerce-api.js +4 -4
- package/dist/application/models/api/response.d.cts +1 -1
- package/dist/application/models/api/response.d.ts +1 -1
- package/dist/application/models/frontendConfig.d.cts +1 -1
- package/dist/application/models/frontendConfig.d.ts +1 -1
- package/dist/application/models/guards/api/isApiFormResponse.cjs +1 -1
- package/dist/application/models/guards/api/isApiFormResponse.js +1 -1
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +1 -1
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +1 -1
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +2 -2
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +2 -2
- package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +1 -1
- package/dist/application/models/guards/api/isApiProductResponseAttributes.js +1 -1
- package/dist/application/models/guards/api/isApiResponse.cjs +1 -1
- package/dist/application/models/guards/api/isApiResponse.js +1 -1
- package/dist/application/models/guards/api/isApiSearchEventAttributes.cjs +2 -2
- package/dist/application/models/guards/api/isApiSearchEventAttributes.js +2 -2
- package/dist/application/models/message.cjs +1 -1
- package/dist/application/models/message.d.cts +1 -1
- package/dist/application/models/message.d.ts +1 -1
- package/dist/application/models/message.js +1 -1
- package/dist/application/models/validators/validateGraphQLColorsConfig.cjs +2 -1
- package/dist/application/models/validators/validateGraphQLColorsConfig.js +2 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +1 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.d.cts +1 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.d.ts +1 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.js +1 -1
- package/dist/application/utils/analyticsUtils.cjs +2 -2
- package/dist/application/utils/analyticsUtils.js +2 -2
- package/dist/application/utils/domObserver.cjs +1 -1
- package/dist/application/utils/domObserver.js +1 -1
- package/dist/application/utils/elementObserver.cjs +1 -1
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/application/utils/elementObserver.js +1 -1
- package/dist/application/utils/mutationHelper.cjs +2 -2
- package/dist/application/utils/mutationHelper.js +2 -2
- package/dist/application/utils/nodeSelector.cjs +5 -2
- package/dist/application/utils/nodeSelector.js +5 -2
- package/dist/application/utils/stringUtils.cjs +1 -1
- package/dist/application/utils/stringUtils.js +1 -1
- package/dist/atoms/app/index.cjs +1 -1
- package/dist/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.js +1 -1
- package/dist/atoms/app/variant.cjs +1 -1
- package/dist/atoms/app/variant.d.cts +3 -3
- package/dist/atoms/app/variant.d.ts +3 -3
- package/dist/atoms/app/variant.js +1 -1
- package/dist/atoms/chat/chatState.d.cts +15 -15
- package/dist/atoms/chat/chatState.d.ts +15 -15
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +1 -1
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/index.js +1 -1
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.cjs +1 -1
- package/dist/atoms/chat/messageQueue.js +1 -1
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.cjs +2 -2
- package/dist/atoms/chat/replies.d.cts +2 -2
- package/dist/atoms/chat/replies.d.ts +2 -2
- package/dist/atoms/chat/replies.js +2 -2
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/globalSearch/globalSearch.cjs +3 -1
- package/dist/atoms/globalSearch/globalSearch.d.cts +10 -7
- package/dist/atoms/globalSearch/globalSearch.d.ts +10 -7
- package/dist/atoms/globalSearch/globalSearch.js +3 -2
- package/dist/atoms/globalSearch/index.cjs +1 -0
- package/dist/atoms/globalSearch/index.d.cts +2 -2
- package/dist/atoms/globalSearch/index.d.ts +2 -2
- package/dist/atoms/globalSearch/index.js +2 -2
- package/dist/atoms/org/customerService.d.cts +7 -7
- package/dist/atoms/org/graphqlConfig.cjs +1 -1
- package/dist/atoms/org/graphqlConfig.d.cts +6 -6
- package/dist/atoms/org/graphqlConfig.d.ts +5 -5
- package/dist/atoms/org/graphqlConfig.js +1 -1
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.cjs +1 -1
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +6 -6
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +6 -6
- package/dist/atoms/org/orgAnalyticsConfig.js +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +14 -14
- package/dist/atoms/search/searchAPI.d.ts +14 -14
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/search/searchServiceAdapter.cjs +1 -1
- package/dist/atoms/search/searchServiceAdapter.js +1 -1
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +6 -6
- package/dist/contexts/amplitudeContext/amplitudeContext.js +6 -6
- package/dist/contexts/cdnContext/cdnContext.cjs +1 -1
- package/dist/contexts/cdnContext/cdnContext.js +1 -1
- package/dist/contexts/chatContext/chatContext.cjs +4 -4
- package/dist/contexts/chatContext/chatContext.d.cts +2 -2
- package/dist/contexts/chatContext/chatContext.js +4 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +2 -3
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +2 -3
- package/dist/contexts/enviveContext/enviveContext.cjs +52 -0
- package/dist/contexts/enviveContext/enviveContext.d.cts +31 -0
- package/dist/contexts/enviveContext/enviveContext.d.ts +31 -0
- package/dist/contexts/enviveContext/enviveContext.js +51 -0
- package/dist/contexts/enviveContext/index.cjs +5 -0
- package/dist/contexts/enviveContext/index.d.cts +3 -0
- package/dist/contexts/enviveContext/index.d.ts +3 -0
- package/dist/contexts/enviveContext/index.js +4 -0
- package/dist/contexts/enviveContext/types.cjs +11 -0
- package/dist/contexts/enviveContext/types.d.cts +8 -0
- package/dist/contexts/enviveContext/types.d.ts +8 -0
- package/dist/contexts/enviveContext/types.js +10 -0
- package/dist/contexts/featureFlagContext/featureFlagContext.cjs +2 -2
- package/dist/contexts/featureFlagContext/featureFlagContext.js +2 -2
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +2 -2
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +2 -2
- package/dist/contexts/graphqlContext/graphqlContext.cjs +3 -3
- package/dist/contexts/graphqlContext/graphqlContext.js +3 -3
- package/dist/contexts/localStorageContext/localStorageContext.cjs +1 -1
- package/dist/contexts/localStorageContext/localStorageContext.js +1 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +1 -1
- package/dist/contexts/sessionStorageContext/sessionStorageContext.js +1 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.cjs +1 -1
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/types.js +1 -1
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -1
- package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -1
- package/dist/events/index.cjs +2 -4
- package/dist/events/index.js +2 -4
- package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.cjs +1 -1
- package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.js +1 -1
- package/dist/hooks/Debounce/useDebounce.cjs +1 -1
- package/dist/hooks/Debounce/useDebounce.js +1 -1
- package/dist/hooks/ElementObserver/useElementObserver.cjs +2 -2
- package/dist/hooks/ElementObserver/useElementObserver.js +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/IdentifyUser/useIdentifyUser.cjs +1 -1
- package/dist/hooks/IdentifyUser/useIdentifyUser.js +1 -1
- package/dist/hooks/ImageResolver/useImageResolver.cjs +2 -2
- package/dist/hooks/ImageResolver/useImageResolver.js +2 -2
- package/dist/hooks/IsSmallScreen/useIsSmallScreen.cjs +1 -1
- package/dist/hooks/IsSmallScreen/useIsSmallScreen.js +1 -1
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.cjs +11 -3
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.js +11 -3
- package/dist/hooks/Search/useRecommendedProducts.cjs +1 -1
- package/dist/hooks/Search/useRecommendedProducts.js +1 -1
- package/dist/hooks/Search/useSearch.cjs +6 -3
- package/dist/hooks/Search/useSearch.d.cts +3 -1
- package/dist/hooks/Search/useSearch.d.ts +3 -1
- package/dist/hooks/Search/useSearch.js +7 -4
- package/dist/hooks/Search/useSearchInput.cjs +1 -1
- package/dist/hooks/Search/useSearchInput.js +1 -1
- package/dist/hooks/SearchOperations/useSearchOperations.cjs +1 -1
- package/dist/hooks/SearchOperations/useSearchOperations.d.cts +1 -1
- package/dist/hooks/SearchOperations/useSearchOperations.d.ts +1 -1
- package/dist/hooks/SearchOperations/useSearchOperations.js +1 -1
- package/dist/hooks/SessionStorageOperations/useSessionStorageOperations.cjs +1 -1
- package/dist/hooks/SessionStorageOperations/useSessionStorageOperations.js +1 -1
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +1 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +1 -1
- package/dist/hooks/utils.cjs +3 -3
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/hooks/utils.js +3 -3
- package/package.json +25 -6
- package/src/application/commerce-api.ts +12 -10
- package/src/application/models/api/nextMessageRequest.ts +2 -0
- package/src/application/models/api/response.ts +4 -4
- package/src/application/models/api/search.ts +1 -2
- package/src/application/models/api/userEvent.ts +1 -2
- package/src/application/models/frontendConfig.ts +2 -2
- package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +8 -4
- package/src/application/models/guards/api/isApiSearchEventAttributes.ts +1 -1
- package/src/application/models/index.ts +1 -0
- package/src/application/models/message.ts +5 -5
- package/src/application/models/utilityTypes/delimiterCase.ts +1 -0
- package/src/application/models/validators/validateGraphQLColorsConfig.ts +2 -1
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +1 -1
- package/src/application/models/variantInfo/variantInfo.ts +3 -0
- package/src/application/utils/analyticsUtils.ts +3 -3
- package/src/application/utils/domObserver.ts +1 -0
- package/src/application/utils/elementObserver.ts +1 -0
- package/src/application/utils/mutationHelper.ts +3 -1
- package/src/application/utils/nodeSelector.ts +7 -1
- package/src/application/utils/stringUtils.ts +1 -0
- package/src/atoms/app/index.ts +17 -6
- package/src/atoms/app/variant.ts +11 -13
- package/src/atoms/chat/__tests__/messageQueue.test.spec.ts +61 -0
- package/src/atoms/chat/index.ts +8 -8
- package/src/atoms/chat/messageQueue.ts +2 -48
- package/src/atoms/chat/replies.ts +3 -3
- package/src/atoms/org/graphqlConfig.ts +0 -1
- package/src/atoms/org/orgAnalyticsConfig.ts +1 -1
- package/src/atoms/search/searchAPI.ts +1 -1
- package/src/atoms/search/searchServiceAdapter.ts +1 -1
- package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +4 -3
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +5 -5
- package/src/contexts/cdnContext/cdnContext.tsx +1 -1
- package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +2 -3
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +3 -3
- package/src/contexts/enviveContext/enviveContext.tsx +89 -0
- package/src/contexts/enviveContext/index.ts +2 -0
- package/src/contexts/enviveContext/types.ts +4 -0
- package/src/contexts/featureFlagContext/featureFlagContext.tsx +1 -1
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +1 -1
- package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +7 -5
- package/src/contexts/graphqlContext/graphqlContext.tsx +1 -5
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +70 -0
- package/src/contexts/hardcopyContext/index.ts +1 -0
- package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +9 -3
- package/src/contexts/localStorageContext/localStorageContext.tsx +1 -1
- package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +2 -3
- package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +1 -1
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +666 -0
- package/src/contexts/pageContext/index.ts +2 -0
- package/src/contexts/pageContext/mapping.ts +38 -0
- package/src/contexts/pageContext/pageContext.tsx +78 -0
- package/src/contexts/pageContext/types.ts +27 -0
- package/src/contexts/salesAgentContext/chatAPI.ts +75 -0
- package/src/contexts/salesAgentContext/index.ts +3 -0
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +128 -0
- package/src/contexts/salesAgentContext/salesAgentService.ts +197 -0
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +14 -15
- package/src/contexts/searchContext/searchContext.tsx +1 -1
- package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +1 -1
- package/src/contexts/systemSettingsContext/__tests__/systemSettingsContext.test.tsx +7 -6
- package/src/contexts/types.ts +20 -22
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +3 -8
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +1 -1
- package/src/events/index.ts +5 -7
- package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +1 -1
- package/src/hooks/Debounce/useDebounce.ts +1 -1
- package/src/hooks/ElementObserver/useElementObserver.ts +2 -1
- package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +4 -2
- package/src/hooks/IdentifyUser/useIdentifyUser.ts +1 -1
- package/src/hooks/ImageResolver/useImageResolver.ts +2 -0
- package/src/hooks/IsSmallScreen/useIsSmallScreen.ts +1 -1
- package/src/hooks/LocalStorageOperations/useLocalStorageOperations.ts +20 -4
- package/src/hooks/Search/__tests__/useSearch.test.tsx +15 -10
- package/src/hooks/Search/useRecommendedProducts.ts +2 -2
- package/src/hooks/Search/useSearchInput.ts +1 -1
- package/src/hooks/SearchOperations/useSearchOperations.ts +2 -2
- package/src/hooks/SessionStorageOperations/useSessionStorageOperations.ts +1 -1
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +2 -2
- package/src/hooks/utils.ts +3 -2
- package/src/contexts/chatContext/chatContext.tsx +0 -463
- package/src/contexts/chatContext/index.ts +0 -1
|
@@ -225,4 +225,4 @@ const validateGraphQLFrontendConfig = (data) => {
|
|
|
225
225
|
|
|
226
226
|
//#endregion
|
|
227
227
|
export { validateAndTransformMountingConfig, validateAndTransformPageVariants, validateAndTransformWidgetConfig, validateGraphQLFrontendConfig };
|
|
228
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVHcmFwaFFMRnJvbnRlbmRDb25maWcuanMiLCJuYW1lcyI6WyJub3JtYWxpemVkQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiIsInJlc3VsdDogV2lkZ2V0TW91bnRpbmdDb25maWciLCJ2YWxpZGF0ZWRQYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJtb3VudGluZ0NvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPiIsIndpZGdldENvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlR3JhcGhRTEZyb250ZW5kQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyJztcbmltcG9ydCB7XG4gIFdpZGdldENvbmZpZyxcbiAgUGFnZVZhcmlhbnRDb25maWcsXG4gIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gIFdpZGdldE1vdW50aW5nQ29uZmlnLFxufSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXMnO1xuaW1wb3J0IHsgRE9NSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uJztcbmltcG9ydCB7IEdyaWRJbnNlcnRpb25UeXBlIH0gZnJvbSAnc3JjL21lcmNoYW50cy9ncmlkSW5zZXJ0aW9uJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGFuZCB0cmFuc2Zvcm0gUGFnZVZhcmlhbnRRdWVyeURhdGEgdG8gUGFnZVZhcmlhbnRDb25maWdcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyA9IChcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFBhZ2VWYXJpYW50Q29uZmlnID0+IHtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwoY29uZmlnKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdCB7IHZhcmlhbnRDaGVja3MsIHdpZGdldE1vdW50aW5nLCAuLi5yZXN0IH0gPSB0cmFuc2Zvcm1lZDtcblxuICAvLyBDb252ZXJ0IHZhcmlhbnRDaGVja3MgdG8gdmFyaWFudFRlc3RzIHdpdGggdGVzdFR5cGUgbm9ybWFsaXphdGlvblxuICBjb25zdCB2YXJpYW50VGVzdHMgPSBBcnJheS5pc0FycmF5KHZhcmlhbnRDaGVja3MpXG4gICAgPyB2YXJpYW50Q2hlY2tzLm1hcCgoeyBjaGVja1R5cGUsIC4uLnJlc3RDaGVjayB9KSA9PiAoe1xuICAgICAgICAuLi5yZXN0Q2hlY2ssXG4gICAgICAgIHRlc3RUeXBlOiBjaGVja1R5cGUsXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIC8vIE5vcm1hbGl6ZSB3aWRnZXRNb3VudGluZzogY2hlY2tzIC0+IHRlc3RzLCBjaGVja1R5cGUgLT4gdGVzdFR5cGVcbiAgY29uc3Qgbm9ybWFsaXplZFdpZGdldE1vdW50aW5nID0gQXJyYXkuaXNBcnJheSh3aWRnZXRNb3VudGluZylcbiAgICA/IHdpZGdldE1vdW50aW5nLm1hcCgoeyBtb3VudGluZ1BvaW50V2lkZ2V0cywgLi4ucmVzdE1vdW50aW5nIH0pID0+ICh7XG4gICAgICAgIC4uLnJlc3RNb3VudGluZyxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkobW91bnRpbmdQb2ludFdpZGdldHMpXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBtb3VudGluZ1BvaW50V2lkZ2V0cy5tYXAoKHsgY2hlY2tzLCAuLi5yZXN0V2lkZ2V0IH0pID0+ICh7XG4gICAgICAgICAgICAgICAgLi4ucmVzdFdpZGdldCxcbiAgICAgICAgICAgICAgICB0ZXN0czogQXJyYXkuaXNBcnJheShjaGVja3MpXG4gICAgICAgICAgICAgICAgICA/IGNoZWNrcy5tYXAoKHsgY2hlY2tUeXBlLCAuLi5yZXN0Q2hlY2sgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN0Q2hlY2ssXG4gICAgICAgICAgICAgICAgICAgICAgdGVzdFR5cGU6IGNoZWNrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRDb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIC4uLnJlc3QsXG4gICAgLi4uKHZhcmlhbnRUZXN0cyA/IHsgdmFyaWFudFRlc3RzIH0gOiB7fSksXG4gICAgLi4uKG5vcm1hbGl6ZWRXaWRnZXRNb3VudGluZyA/IHsgd2lkZ2V0TW91bnRpbmc6IG5vcm1hbGl6ZWRXaWRnZXRNb3VudGluZyB9IDoge30pLFxuICB9O1xuXG4gIGNvbnN0IHZhcmlhbnRJZCA9IG5vcm1hbGl6ZWRDb25maWcudmFyaWFudElkIGFzIHN0cmluZztcbiAgY29uc3QgdmFyaWFudFR5cGUgPSBub3JtYWxpemVkQ29uZmlnLnZhcmlhbnRUeXBlIGFzIHN0cmluZztcblxuICBpZiAodHlwZW9mIHZhcmlhbnRJZCAhPT0gJ3N0cmluZycgfHwgIXZhcmlhbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRJZCBmb3IgcGFnZVZhcmlhbnRgKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFyaWFudFR5cGUgIT09ICdzdHJpbmcnIHx8ICF2YXJpYW50VHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRUeXBlIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhcmlhbnRUZXN0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRUZXN0cyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfScuIE11c3QgYmUgYW4gYXJyYXlgLFxuICAgICk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHRlc3Qgb2YgdmFyaWFudFRlc3RzKSB7XG4gICAgaWYgKCF0ZXN0LnRlc3RUeXBlIHx8IHR5cGVvZiB0ZXN0LnRlc3RUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhcmlhbnRUZXN0LnRlc3RUeXBlIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cbiAgICBpZiAoIU9iamVjdC52YWx1ZXMoUGFnZVZhcmlhbnRUZXN0VHlwZSkuaW5jbHVkZXModGVzdC50ZXN0VHlwZSBhcyBQYWdlVmFyaWFudFRlc3RUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCB0ZXN0VHlwZSAnJHt0ZXN0LnRlc3RUeXBlfScgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nLiBWYWxpZCB0eXBlczogJHtPYmplY3QudmFsdWVzKFxuICAgICAgICAgIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gICAgICAgICkuam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIUFycmF5LmlzQXJyYXkobm9ybWFsaXplZFdpZGdldE1vdW50aW5nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNaXNzaW5nIG9yIGludmFsaWQgd2lkZ2V0TW91bnRpbmcgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nLiBNdXN0IGJlIGFuIGFycmF5YCxcbiAgICApO1xuICB9XG5cbiAgZm9yIChjb25zdCBtb3VudGluZyBvZiBub3JtYWxpemVkV2lkZ2V0TW91bnRpbmcpIHtcbiAgICBpZiAodHlwZW9mIG1vdW50aW5nLm1vdW50aW5nQ29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICFtb3VudGluZy5tb3VudGluZ0NvbmZpZ0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbW91bnRpbmdDb25maWdJZCBpbiB3aWRnZXRNb3VudGluZyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgKTtcbiAgICB9XG5cbiAgICBpZiAobW91bnRpbmcud2lkZ2V0Q29uZmlnSWQgJiYgdHlwZW9mIG1vdW50aW5nLndpZGdldENvbmZpZ0lkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHdpZGdldENvbmZpZ0lkIGluIHdpZGdldE1vdW50aW5nIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cblxuICAgIGlmIChtb3VudGluZy5tb3VudGluZ1BvaW50V2lkZ2V0cykge1xuICAgICAgZm9yIChjb25zdCB3aWRnZXQgb2YgbW91bnRpbmcubW91bnRpbmdQb2ludFdpZGdldHMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXQud2lkZ2V0Q29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICF3aWRnZXQud2lkZ2V0Q29uZmlnSWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCB3aWRnZXRDb25maWdJZCBpbiBtb3VudGluZ1BvaW50V2lkZ2V0cyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkod2lkZ2V0LnRlc3RzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbnZhbGlkIG9yIG1pc3NpbmcgdGVzdHMgaW4gbW91bnRpbmdQb2ludFdpZGdldHMgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhbnRUeXBlID09PSAncGxwJykge1xuICAgIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5wbHBJZEV4dHJhY3RvciAhPT0gJ3N0cmluZycgfHwgIW5vcm1hbGl6ZWRDb25maWcucGxwSWRFeHRyYWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHBscElkRXh0cmFjdG9yIGZvciBQTFAgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgKTtcbiAgICB9XG4gIH1cblxuICBpZiAodmFyaWFudFR5cGUgPT09ICdwZHAnKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcucHJvZHVjdElkRXh0cmFjdG9yICE9PSAnc3RyaW5nJyB8fFxuICAgICAgIW5vcm1hbGl6ZWRDb25maWcucHJvZHVjdElkRXh0cmFjdG9yXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBwcm9kdWN0SWRFeHRyYWN0b3IgZm9yIFBEUCBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBub3JtYWxpemVkQ29uZmlnLnBhcmVudFByb2R1Y3RJZEV4dHJhY3RvciAmJlxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcucGFyZW50UHJvZHVjdElkRXh0cmFjdG9yICE9PSAnc3RyaW5nJ1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBwYXJlbnRQcm9kdWN0SWRFeHRyYWN0b3IgZm9yIFBEUCBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9Jy4gTXVzdCBiZSBzdHJpbmcgaWYgcHJvdmlkZWRgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplZENvbmZpZyBhcyBQYWdlVmFyaWFudENvbmZpZztcbn07XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhbmQgdHJhbnNmb3JtIE1vdW50aW5nQ29uZmlnUXVlcnlEYXRhIHRvIFdpZGdldE1vdW50aW5nQ29uZmlnXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyA9IChcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgY29uZmlnS2V5OiBzdHJpbmcsXG4pOiBXaWRnZXRNb3VudGluZ0NvbmZpZyA9PiB7XG4gIC8vIFJFTkFNSU5HIExPR0lDOiBDb252ZXJ0IGJhY2tlbmQgXCJDaGVja1wiIHRlcm1pbm9sb2d5IHRvIGZyb250ZW5kIFwiVGVzdFwiIHRlcm1pbm9sb2d5XG4gIGNvbnN0IG5vcm1hbGl6ZWRDb25maWcgPSB7IC4uLmNvbmZpZyB9O1xuXG4gIC8vIENvbnZlcnQgY2hlY2tJZCB0byB0ZXN0SWQgZm9yIGZyb250ZW5kIGNvbXBhdGliaWxpdHkgKGRhdGEgaXMgYWxyZWFkeSBjYW1lbENhc2UpXG4gIGlmIChub3JtYWxpemVkQ29uZmlnLmNoZWNrSWQgJiYgIW5vcm1hbGl6ZWRDb25maWcudGVzdElkKSB7XG4gICAgbm9ybWFsaXplZENvbmZpZy50ZXN0SWQgPSBub3JtYWxpemVkQ29uZmlnLmNoZWNrSWQ7XG4gICAgZGVsZXRlIG5vcm1hbGl6ZWRDb25maWcuY2hlY2tJZDtcbiAgfVxuXG4gIC8vIFJlcXVpcmVkIGZpZWxkcyAtIHRoZXNlIG11c3QgYmUgcHJlc2VudCBhbmQgdmFsaWRcbiAgaWYgKHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLm1vdW50aW5nQ29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLm1vdW50aW5nQ29uZmlnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBtb3VudGluZ0NvbmZpZ0lkIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuICBpZiAodHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY29udGFpbmVySWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLmNvbnRhaW5lcklkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgY29udGFpbmVySWQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy50ZXN0SWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLnRlc3RJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHRlc3RJZCBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCk7XG4gIH1cblxuICAvLyBSZXF1aXJlZCBpbnNlcnRpb25Qb2ludFxuICBpZiAoXG4gICAgIW5vcm1hbGl6ZWRDb25maWcuaW5zZXJ0aW9uUG9pbnQgfHxcbiAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5pbnNlcnRpb25Qb2ludCAhPT0gJ29iamVjdCcgfHxcbiAgICBBcnJheS5pc0FycmF5KG5vcm1hbGl6ZWRDb25maWcuaW5zZXJ0aW9uUG9pbnQpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIGluc2VydGlvblBvaW50IGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuXG4gIGNvbnN0IGluc2VydGlvblBvaW50ID0gbm9ybWFsaXplZENvbmZpZy5pbnNlcnRpb25Qb2ludCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvLyBWYWxpZGF0ZSBpbnNlcnRpb25Qb2ludCByZXF1aXJlZCBmaWVsZHNcbiAgaWYgKHR5cGVvZiBpbnNlcnRpb25Qb2ludC5zZWxlY3RvciAhPT0gJ3N0cmluZycgfHwgIWluc2VydGlvblBvaW50LnNlbGVjdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2YgaW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAhPT0gJ3N0cmluZycgfHwgIWluc2VydGlvblBvaW50Lmluc2VydGlvblR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGluc2VydGlvblR5cGUgaXMgYSB2YWxpZCBET01JbnNlcnRpb25UeXBlXG4gIGlmICghT2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5pbmNsdWRlcyhpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAnJHtpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlfScgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gVmFsaWQgdHlwZXM6ICR7T2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5qb2luKCcsICcpfWAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIGluc2VydGlvblBvaW50IGZpZWxkc1xuICBpZiAoaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT0gbnVsbCAmJiB0eXBlb2YgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIG51bWJlciBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIHBhcmVudEluc2VydGlvblBvaW50IGlmIHByZXNlbnRcbiAgbGV0IHBhcmVudEluc2VydGlvblBvaW50O1xuICBpZiAobm9ybWFsaXplZENvbmZpZy5wYXJlbnRJbnNlcnRpb25Qb2ludCkge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50ICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmVudEluc2VydGlvblBvaW50IGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYW4gb2JqZWN0YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50UG9pbnQgPSBub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2YgcGFyZW50UG9pbnQuc2VsZWN0b3IgIT09ICdzdHJpbmcnIHx8ICFwYXJlbnRQb2ludC5zZWxlY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHBhcmVudFBvaW50Lmluc2VydGlvblR5cGUgIT09ICdzdHJpbmcnIHx8ICFwYXJlbnRQb2ludC5pbnNlcnRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBNaXNzaW5nIG9yIGludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3QudmFsdWVzKERPTUluc2VydGlvblR5cGUpLmluY2x1ZGVzKHBhcmVudFBvaW50Lmluc2VydGlvblR5cGUgYXMgRE9NSW5zZXJ0aW9uVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAnJHtwYXJlbnRQb2ludC5pbnNlcnRpb25UeXBlfScgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gVmFsaWQgdHlwZXM6ICR7T2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5qb2luKCcsICcpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJlbnRQb2ludC5zZWxlY3Rpb25JbmRleCAhPSBudWxsICYmIHR5cGVvZiBwYXJlbnRQb2ludC5zZWxlY3Rpb25JbmRleCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIG51bWJlciBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHBhcmVudEluc2VydGlvblBvaW50ID0ge1xuICAgICAgc2VsZWN0b3I6IHBhcmVudFBvaW50LnNlbGVjdG9yLFxuICAgICAgaW5zZXJ0aW9uVHlwZTogcGFyZW50UG9pbnQuaW5zZXJ0aW9uVHlwZSBhcyBET01JbnNlcnRpb25UeXBlLFxuICAgICAgc2VsZWN0aW9uSW5kZXg6IHBhcmVudFBvaW50LnNlbGVjdGlvbkluZGV4IGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgb3B0aW9uYWwgd3JhcHBpbmdFbGVtZW50IGlmIHByZXNlbnRcbiAgbGV0IHdyYXBwaW5nRWxlbWVudDtcbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50KSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50ICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLndyYXBwaW5nRWxlbWVudClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB3cmFwcGluZ0VsZW1lbnQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhbiBvYmplY3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZyA9IG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2Ygd3JhcHBpbmcuY2xhc3NOYW1lICE9PSAnc3RyaW5nJyB8fCAhd3JhcHBpbmcuY2xhc3NOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3cmFwcGluZ0VsZW1lbnQuY2xhc3NOYW1lIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3cmFwcGluZy5lbGVtZW50ICE9PSAnc3RyaW5nJyB8fCAhd3JhcHBpbmcuZWxlbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgd3JhcHBpbmdFbGVtZW50LmVsZW1lbnQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdyYXBwaW5nLmluc2VydGlvblR5cGUgIT09ICdzdHJpbmcnIHx8ICF3cmFwcGluZy5pbnNlcnRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3cmFwcGluZ0VsZW1lbnQuaW5zZXJ0aW9uVHlwZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3QudmFsdWVzKERPTUluc2VydGlvblR5cGUpLmluY2x1ZGVzKHdyYXBwaW5nLmluc2VydGlvblR5cGUgYXMgRE9NSW5zZXJ0aW9uVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgd3JhcHBpbmdFbGVtZW50Lmluc2VydGlvblR5cGUgJyR7d3JhcHBpbmcuaW5zZXJ0aW9uVHlwZX0nIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIFZhbGlkIHR5cGVzOiAke09iamVjdC52YWx1ZXMoRE9NSW5zZXJ0aW9uVHlwZSkuam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3cmFwcGluZ0VsZW1lbnQgPSB7XG4gICAgICBjbGFzc05hbWU6IHdyYXBwaW5nLmNsYXNzTmFtZSxcbiAgICAgIGVsZW1lbnQ6IHdyYXBwaW5nLmVsZW1lbnQsXG4gICAgICBpbnNlcnRpb25UeXBlOiB3cmFwcGluZy5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIGZpZWxkc1xuICBpZiAoXG4gICAgbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yICE9IG51bGwgJiZcbiAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBkaXZDaGVja1NlbGVjdG9yIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYSBzdHJpbmcgb3IgbnVsbC91bmRlZmluZWRgLFxuICAgICk7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuY2xhc3NOYW1lICE9IG51bGwgJiYgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY2xhc3NOYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNsYXNzTmFtZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nLiBNdXN0IGJlIGEgc3RyaW5nIG9yIG51bGwvdW5kZWZpbmVkYCxcbiAgICApO1xuICB9XG4gIGlmIChcbiAgICBub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHN1cHByZXNzaW9uU2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZyBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuICBpZiAoXG4gICAgbm9ybWFsaXplZENvbmZpZy5kYXRhQXR0cmlidXRlcyAhPSBudWxsICYmXG4gICAgKHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLmRhdGFBdHRyaWJ1dGVzICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLmRhdGFBdHRyaWJ1dGVzKSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgZGF0YUF0dHJpYnV0ZXMgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhbiBvYmplY3Qgb3IgbnVsbC91bmRlZmluZWRgLFxuICAgICk7XG4gIH1cbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWRDb25maWcuc3R5bGUgIT0gbnVsbCAmJlxuICAgICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5zdHlsZSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLnN0eWxlKSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0eWxlIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYW4gb2JqZWN0IG9yIG51bGwvdW5kZWZpbmVkYCk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBncmlkSW5zZXJ0aW9uVHlwZSBpZiBwcmVzZW50XG4gIGxldCBncmlkSW5zZXJ0aW9uVHlwZTtcbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuZ3JpZEluc2VydGlvblR5cGUpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgICFub3JtYWxpemVkQ29uZmlnLmdyaWRJbnNlcnRpb25UeXBlXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ3JpZEluc2VydGlvblR5cGUgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZ2ApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QudmFsdWVzKEdyaWRJbnNlcnRpb25UeXBlKS5pbmNsdWRlcyhcbiAgICAgICAgbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSBhcyBHcmlkSW5zZXJ0aW9uVHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgZ3JpZEluc2VydGlvblR5cGUgJyR7bm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZX0nIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIFZhbGlkIHR5cGVzOiAke09iamVjdC52YWx1ZXMoR3JpZEluc2VydGlvblR5cGUpLmpvaW4oJywgJyl9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGdyaWRJbnNlcnRpb25UeXBlID0gbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSBhcyBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgfVxuXG4gIC8vIEJ1aWxkIHRoZSByZXR1cm4gb2JqZWN0LCBvbmx5IGluY2x1ZGluZyBvcHRpb25hbCBmaWVsZHMgaWYgdGhleSBoYXZlIHZhbHVlc1xuICBjb25zdCByZXN1bHQ6IFdpZGdldE1vdW50aW5nQ29uZmlnID0ge1xuICAgIG1vdW50aW5nQ29uZmlnSWQ6IG5vcm1hbGl6ZWRDb25maWcubW91bnRpbmdDb25maWdJZCxcbiAgICBjb250YWluZXJJZDogbm9ybWFsaXplZENvbmZpZy5jb250YWluZXJJZCxcbiAgICB0ZXN0SWQ6IG5vcm1hbGl6ZWRDb25maWcudGVzdElkLFxuICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICBzZWxlY3RvcjogaW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IsXG4gICAgICBpbnNlcnRpb25UeXBlOiBpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUsXG4gICAgICAuLi4oaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT0gbnVsbCAmJiB7XG4gICAgICAgIHNlbGVjdGlvbkluZGV4OiBpbnNlcnRpb25Qb2ludC5zZWxlY3Rpb25JbmRleCxcbiAgICAgIH0pLFxuICAgIH0sXG4gIH07XG5cbiAgLy8gT25seSBhZGQgb3B0aW9uYWwgZmllbGRzIGlmIHRoZXkgaGF2ZSB2YWx1ZXNcbiAgaWYgKHBhcmVudEluc2VydGlvblBvaW50KSB7XG4gICAgcmVzdWx0LnBhcmVudEluc2VydGlvblBvaW50ID0gcGFyZW50SW5zZXJ0aW9uUG9pbnQ7XG4gIH1cbiAgaWYgKGdyaWRJbnNlcnRpb25UeXBlKSB7XG4gICAgcmVzdWx0LmdyaWRJbnNlcnRpb25UeXBlID0gZ3JpZEluc2VydGlvblR5cGU7XG4gIH1cbiAgaWYgKHdyYXBwaW5nRWxlbWVudCkge1xuICAgIHJlc3VsdC53cmFwcGluZ0VsZW1lbnQgPSB3cmFwcGluZ0VsZW1lbnQ7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuZGl2Q2hlY2tTZWxlY3Rvcikge1xuICAgIHJlc3VsdC5kaXZDaGVja1NlbGVjdG9yID0gbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yIGFzIHN0cmluZztcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5jbGFzc05hbWUpIHtcbiAgICByZXN1bHQuY2xhc3NOYW1lID0gbm9ybWFsaXplZENvbmZpZy5jbGFzc05hbWUgYXMgc3RyaW5nO1xuICB9XG4gIGlmIChub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IpIHtcbiAgICByZXN1bHQuc3VwcHJlc3Npb25TZWxlY3RvciA9IG5vcm1hbGl6ZWRDb25maWcuc3VwcHJlc3Npb25TZWxlY3RvcjtcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5kYXRhQXR0cmlidXRlcykge1xuICAgIHJlc3VsdC5kYXRhQXR0cmlidXRlcyA9IG5vcm1hbGl6ZWRDb25maWcuZGF0YUF0dHJpYnV0ZXMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5zdHlsZSkge1xuICAgIHJlc3VsdC5zdHlsZSA9IG5vcm1hbGl6ZWRDb25maWcuc3R5bGUgYXMgUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSBXaWRnZXRDb25maWdRdWVyeURhdGEgdG8gV2lkZ2V0Q29uZmlnXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1XaWRnZXRDb25maWcgPSAoXG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGNvbmZpZ0tleTogc3RyaW5nLFxuKTogV2lkZ2V0Q29uZmlnID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZENvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb25maWcpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy53aWRnZXRDb25maWdJZCAhPT0gJ3N0cmluZycgfHwgIW5vcm1hbGl6ZWRDb25maWcud2lkZ2V0Q29uZmlnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3aWRnZXRDb25maWdJZCBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy50eXBlICE9PSAnc3RyaW5nJyB8fCAhbm9ybWFsaXplZENvbmZpZy50eXBlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgdHlwZSBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuY29udGVudElkICE9IG51bGwgJiYgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY29udGVudElkICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNvbnRlbnRJZCBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZyBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIE5vdGU6IFdpZGdldCBjb25maWdzIGFyZSBjb21wbGV4IHVuaW9ucyB3aXRoIHR5cGUtc3BlY2lmaWMgcHJvcGVydGllcy5cblxuICAvLyBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgY29uZmlnIGFzIFdpZGdldENvbmZpZ1xuICAvLyBVc2UgaW50ZXJtZWRpYXRlICd1bmtub3duJyBjYXN0IGZvciBjb21wbGV4IHVuaW9uIHR5cGVzXG4gIHJldHVybiBub3JtYWxpemVkQ29uZmlnIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlR3JhcGhRTEZyb250ZW5kQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBGcm9udGVuZENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBub3QgYW4gb2JqZWN0JywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG9iaiA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLy8gVmFsaWRhdGUgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGlmIHByZXNlbnRcbiAgaWYgKFxuICAgICdtZXJjaGFudF9vdmVycmlkZV9jc3MnIGluIG9iaiAmJlxuICAgIHR5cGVvZiBvYmoubWVyY2hhbnRfb3ZlcnJpZGVfY3NzICE9PSAnc3RyaW5nJyAmJlxuICAgIG9iai5tZXJjaGFudF9vdmVycmlkZV9jc3MgIT09IG51bGxcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBtZXJjaGFudF9vdmVycmlkZV9jc3MgbXVzdCBiZSBhIHN0cmluZyBvciBudWxsJyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHsgZGF0YSB9LFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHBhZ2VfdmFyaWFudHMgaWYgcHJlc2VudFxuICBpZiAoJ3BhZ2VfdmFyaWFudHMnIGluIG9iaikge1xuICAgIGlmIChcbiAgICAgIG9iai5wYWdlX3ZhcmlhbnRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iai5wYWdlX3ZhcmlhbnRzICE9PSBudWxsICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShvYmoucGFnZV92YXJpYW50cylcbiAgICApIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKFxuICAgICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBwYWdlX3ZhcmlhbnRzIG11c3QgYmUgYW4gYXJyYXkgb3IgbnVsbC91bmRlZmluZWQnLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHsgZGF0YSB9LFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGUgbW91bnRpbmdfY29uZmlncyBpZiBwcmVzZW50XG4gIGlmICgnbW91bnRpbmdfY29uZmlncycgaW4gb2JqKSB7XG4gICAgaWYgKFxuICAgICAgb2JqLm1vdW50aW5nX2NvbmZpZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb2JqLm1vdW50aW5nX2NvbmZpZ3MgIT09IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG9iai5tb3VudGluZ19jb25maWdzKVxuICAgICkge1xuICAgICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAgICdJbnZhbGlkIEdyYXBoUUwgZnJvbnRlbmQgY29uZmlnIGRhdGE6IG1vdW50aW5nX2NvbmZpZ3MgbXVzdCBiZSBhbiBhcnJheSBvciBudWxsL3VuZGVmaW5lZCcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgeyBkYXRhIH0sXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0ZSB3aWRnZXRfY29uZmlncyBpZiBwcmVzZW50XG4gIGlmICgnd2lkZ2V0X2NvbmZpZ3MnIGluIG9iaikge1xuICAgIGlmIChcbiAgICAgIG9iai53aWRnZXRfY29uZmlncyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBvYmoud2lkZ2V0X2NvbmZpZ3MgIT09IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG9iai53aWRnZXRfY29uZmlncylcbiAgICApIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKFxuICAgICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiB3aWRnZXRfY29uZmlncyBtdXN0IGJlIGFuIGFycmF5IG9yIG51bGwvdW5kZWZpbmVkJyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB7IGRhdGEgfSxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHVpX2NvbmZpZ3MgaWYgcHJlc2VudFxuICBpZiAoJ3VpX2NvbmZpZ3MnIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnVpX2NvbmZpZ3MgIT09ICdvYmplY3QnICYmIG9iai51aV9jb25maWdzICE9PSBudWxsKSB7XG4gICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiB1aV9jb25maWdzIG11c3QgYmUgYW4gb2JqZWN0IG9yIG51bGwvdW5kZWZpbmVkJyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHsgZGF0YSB9LFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVHJhbnNmb3JtIHRoZSBkYXRhIHRvIGNhbWVsQ2FzZVxuICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChvYmopIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgLy8gQ29udmVydCBwYWdlX3ZhcmlhbnRzIGZyb20gYXJyYXkgdG8gdmFsaWRhdGVkIGFycmF5IGlmIHByZXNlbnRcbiAgICBpZiAodHJhbnNmb3JtZWREYXRhLnBhZ2VWYXJpYW50cyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHMpKSB7XG4gICAgICBjb25zdCBwYWdlVmFyaWFudHNBcnJheSA9IHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHM7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRQYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCB2YXJpYW50IG9mIHBhZ2VWYXJpYW50c0FycmF5KSB7XG4gICAgICAgIGlmICh2YXJpYW50ICYmIHR5cGVvZiB2YXJpYW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFyaWFudC52YXJpYW50SWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhcmlhbnQgPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50KTtcbiAgICAgICAgICAgIHZhbGlkYXRlZFBhZ2VWYXJpYW50cy5wdXNoKHZhbGlkYXRlZFZhcmlhbnQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBwYWdlIHZhcmlhbnQsIHNraXBwaW5nJywgZXJyb3IsIHtcbiAgICAgICAgICAgICAgdmFyaWFudElkOiB2YXJpYW50LnZhcmlhbnRJZCxcbiAgICAgICAgICAgICAgdmFyaWFudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQ29udGludWUgcHJvY2Vzc2luZyBvdGhlciB2YXJpYW50c1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBwYWdlIHZhcmlhbnQgc3RydWN0dXJlLCBza2lwcGluZycsIHVuZGVmaW5lZCwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHMgPSB2YWxpZGF0ZWRQYWdlVmFyaWFudHM7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBtb3VudGluZ19jb25maWdzIGZyb20gYXJyYXkgdG8gUmVjb3JkIGlmIHByZXNlbnRcbiAgICBpZiAodHJhbnNmb3JtZWREYXRhLm1vdW50aW5nQ29uZmlncyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS5tb3VudGluZ0NvbmZpZ3MpKSB7XG4gICAgICBjb25zdCBtb3VudGluZ0NvbmZpZ3NBcnJheSA9IHRyYW5zZm9ybWVkRGF0YS5tb3VudGluZ0NvbmZpZ3MgYXMgQXJyYXk8e1xuICAgICAgICBrZXk6IHN0cmluZztcbiAgICAgICAgY29uZmlnOiB1bmtub3duO1xuICAgICAgfT47XG4gICAgICBjb25zdCBtb3VudGluZ0NvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPiA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbW91bnRpbmdDb25maWdzQXJyYXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGl0ZW0gJiZcbiAgICAgICAgICB0eXBlb2YgaXRlbS5rZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgaXRlbS5jb25maWcgJiZcbiAgICAgICAgICB0eXBlb2YgaXRlbS5jb25maWcgPT09ICdvYmplY3QnXG4gICAgICAgICkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBWYWxpZGF0ZSBhbmQgdHJhbnNmb3JtIHRoZSBjb25maWcgc3RydWN0dXJlXG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBpdGVtLmNvbmZpZyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBpdGVtLmtleSk7XG4gICAgICAgICAgICBtb3VudGluZ0NvbmZpZ3NSZWNvcmRbaXRlbS5rZXldID0gdmFsaWRhdGVkQ29uZmlnO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBtb3VudGluZyBjb25maWcsIHNraXBwaW5nJywgZXJyb3IsIHtcbiAgICAgICAgICAgICAgY29uZmlnS2V5OiBpdGVtLmtleSxcbiAgICAgICAgICAgICAgY29uZmlnOiBpdGVtLmNvbmZpZyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQ29udGludWUgcHJvY2Vzc2luZyBvdGhlciBjb25maWdzXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIExvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZyBpdGVtIHN0cnVjdHVyZSwgc2tpcHBpbmcnLCB1bmRlZmluZWQsIHsgaXRlbSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0cmFuc2Zvcm1lZERhdGEubW91bnRpbmdDb25maWdzID0gbW91bnRpbmdDb25maWdzUmVjb3JkO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgd2lkZ2V0X2NvbmZpZ3MgZnJvbSBhcnJheSB0byBSZWNvcmQgaWYgcHJlc2VudFxuICAgIGlmICh0cmFuc2Zvcm1lZERhdGEud2lkZ2V0Q29uZmlncyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS53aWRnZXRDb25maWdzKSkge1xuICAgICAgY29uc3Qgd2lkZ2V0Q29uZmlnc0FycmF5ID0gdHJhbnNmb3JtZWREYXRhLndpZGdldENvbmZpZ3MgYXMgQXJyYXk8e1xuICAgICAgICBrZXk6IHN0cmluZztcbiAgICAgICAgY29uZmlnOiB1bmtub3duO1xuICAgICAgfT47XG4gICAgICBjb25zdCB3aWRnZXRDb25maWdzUmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygd2lkZ2V0Q29uZmlnc0FycmF5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpdGVtICYmXG4gICAgICAgICAgdHlwZW9mIGl0ZW0ua2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgIGl0ZW0uY29uZmlnICYmXG4gICAgICAgICAgdHlwZW9mIGl0ZW0uY29uZmlnID09PSAnb2JqZWN0J1xuICAgICAgICApIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gVmFsaWRhdGUgYW5kIHRyYW5zZm9ybSB3aWRnZXQgY29uZmlnIHVzaW5nIHRoZSBkZWRpY2F0ZWQgdmFsaWRhdGlvbiBmdW5jdGlvblxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gaXRlbS5jb25maWcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRDb25maWcgPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybVdpZGdldENvbmZpZyhjb25maWcsIGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ3NSZWNvcmRbaXRlbS5rZXldID0gdmFsaWRhdGVkQ29uZmlnO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCB3aWRnZXQgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7XG4gICAgICAgICAgICAgIGNvbmZpZ0tleTogaXRlbS5rZXksXG4gICAgICAgICAgICAgIGNvbmZpZzogaXRlbS5jb25maWcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIENvbnRpbnVlIHByb2Nlc3Npbmcgb3RoZXIgY29uZmlnc1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCB3aWRnZXQgY29uZmlnIGl0ZW0gc3RydWN0dXJlLCBza2lwcGluZycsIHVuZGVmaW5lZCwgeyBpdGVtIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybWVkRGF0YS53aWRnZXRDb25maWdzID0gd2lkZ2V0Q29uZmlnc1JlY29yZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZWREYXRhIGFzIEZyb250ZW5kQ29uZmlnO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIExvZ2dlci5sb2dXYXJuKCdGYWlsZWQgdG8gdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhJywgZXJyb3IsIHtcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWFBLE1BQWEsb0NBQ1gsV0FDc0I7Q0FHdEIsTUFBTSxFQUFFLGVBQWUsZ0JBQWdCLEdBQUcsU0FGdEIsc0JBQXNCLE9BQU87Q0FLakQsTUFBTSxlQUFlLE1BQU0sUUFBUSxjQUFjLEdBQzdDLGNBQWMsS0FBSyxFQUFFLFdBQVcsR0FBRyxpQkFBaUI7RUFDbEQsR0FBRztFQUNILFVBQVU7RUFDWCxFQUFFLEdBQ0gsRUFBRTtDQUdOLE1BQU0sMkJBQTJCLE1BQU0sUUFBUSxlQUFlLEdBQzFELGVBQWUsS0FBSyxFQUFFLHNCQUFzQixHQUFHLG9CQUFvQjtFQUNqRSxHQUFHO0VBQ0gsR0FBSSxNQUFNLFFBQVEscUJBQXFCLEdBQ25DLEVBQ0Usc0JBQXNCLHFCQUFxQixLQUFLLEVBQUUsUUFBUSxHQUFHLGtCQUFrQjtHQUM3RSxHQUFHO0dBQ0gsT0FBTyxNQUFNLFFBQVEsT0FBTyxHQUN4QixPQUFPLEtBQUssRUFBRSxXQUFXLEdBQUcsaUJBQWlCO0lBQzNDLEdBQUc7SUFDSCxVQUFVO0lBQ1gsRUFBRSxHQUNILEVBQUU7R0FDUCxFQUFFLEVBQ0osR0FDRCxFQUFFO0VBQ1AsRUFBRSxHQUNILEVBQUU7Q0FFTixNQUFNQSxtQkFBNEM7RUFDaEQsR0FBRztFQUNILEdBQUksZUFBZSxFQUFFLGNBQWMsR0FBRyxFQUFFO0VBQ3hDLEdBQUksMkJBQTJCLEVBQUUsZ0JBQWdCLDBCQUEwQixHQUFHLEVBQUU7RUFDakY7Q0FFRCxNQUFNLFlBQVksaUJBQWlCO0NBQ25DLE1BQU0sY0FBYyxpQkFBaUI7QUFFckMsS0FBSSxPQUFPLGNBQWMsWUFBWSxDQUFDLFVBQ3BDLE9BQU0sSUFBSSxNQUFNLCtDQUErQztBQUdqRSxLQUFJLE9BQU8sZ0JBQWdCLFlBQVksQ0FBQyxZQUN0QyxPQUFNLElBQUksTUFBTSxtREFBbUQsVUFBVSxHQUFHO0FBR2xGLEtBQUksQ0FBQyxNQUFNLFFBQVEsYUFBYSxDQUM5QixPQUFNLElBQUksTUFDUixvREFBb0QsVUFBVSxxQkFDL0Q7QUFHSCxNQUFLLE1BQU0sUUFBUSxjQUFjO0FBQy9CLE1BQUksQ0FBQyxLQUFLLFlBQVksT0FBTyxLQUFLLGFBQWEsU0FDN0MsT0FBTSxJQUFJLE1BQU0saURBQWlELFVBQVUsR0FBRztBQUVoRixNQUFJLENBQUMsT0FBTyxPQUFPLG9CQUFvQixDQUFDLFNBQVMsS0FBSyxTQUFnQyxDQUNwRixPQUFNLElBQUksTUFDUixxQkFBcUIsS0FBSyxTQUFTLHFCQUFxQixVQUFVLGtCQUFrQixPQUFPLE9BQ3pGLG9CQUNELENBQUMsS0FBSyxLQUFLLEdBQ2I7O0FBSUwsS0FBSSxDQUFDLE1BQU0sUUFBUSx5QkFBeUIsQ0FDMUMsT0FBTSxJQUFJLE1BQ1Isc0RBQXNELFVBQVUscUJBQ2pFO0FBR0gsTUFBSyxNQUFNLFlBQVksMEJBQTBCO0FBQy9DLE1BQUksT0FBTyxTQUFTLHFCQUFxQixZQUFZLENBQUMsU0FBUyxpQkFDN0QsT0FBTSxJQUFJLE1BQU0sK0RBQStELFVBQVUsR0FBRztBQUc5RixNQUFJLFNBQVMsa0JBQWtCLE9BQU8sU0FBUyxtQkFBbUIsU0FDaEUsT0FBTSxJQUFJLE1BQU0sNkRBQTZELFVBQVUsR0FBRztBQUc1RixNQUFJLFNBQVMscUJBQ1gsTUFBSyxNQUFNLFVBQVUsU0FBUyxzQkFBc0I7QUFDbEQsT0FBSSxPQUFPLE9BQU8sbUJBQW1CLFlBQVksQ0FBQyxPQUFPLGVBQ3ZELE9BQU0sSUFBSSxNQUNSLG1FQUFtRSxVQUFVLEdBQzlFO0FBR0gsT0FBSSxDQUFDLE1BQU0sUUFBUSxPQUFPLE1BQU0sQ0FDOUIsT0FBTSxJQUFJLE1BQ1IscUVBQXFFLFVBQVUsR0FDaEY7OztBQU1ULEtBQUksZ0JBQWdCLE9BQ2xCO01BQUksT0FBTyxpQkFBaUIsbUJBQW1CLFlBQVksQ0FBQyxpQkFBaUIsZUFDM0UsT0FBTSxJQUFJLE1BQU0sMERBQTBELFVBQVUsR0FBRzs7QUFJM0YsS0FBSSxnQkFBZ0IsT0FBTztBQUN6QixNQUNFLE9BQU8saUJBQWlCLHVCQUF1QixZQUMvQyxDQUFDLGlCQUFpQixtQkFFbEIsT0FBTSxJQUFJLE1BQU0sOERBQThELFVBQVUsR0FBRztBQUU3RixNQUNFLGlCQUFpQiw0QkFDakIsT0FBTyxpQkFBaUIsNkJBQTZCLFNBRXJELE9BQU0sSUFBSSxNQUNSLHlEQUF5RCxVQUFVLCtCQUNwRTs7QUFJTCxRQUFPOztBQUlULE1BQWEsc0NBQ1gsUUFDQSxjQUN5QjtDQUV6QixNQUFNLG1CQUFtQixFQUFFLEdBQUcsUUFBUTtBQUd0QyxLQUFJLGlCQUFpQixXQUFXLENBQUMsaUJBQWlCLFFBQVE7QUFDeEQsbUJBQWlCLFNBQVMsaUJBQWlCO0FBQzNDLFNBQU8saUJBQWlCOztBQUkxQixLQUFJLE9BQU8saUJBQWlCLHFCQUFxQixZQUFZLENBQUMsaUJBQWlCLGlCQUM3RSxPQUFNLElBQUksTUFBTSxtREFBbUQsVUFBVSxHQUFHO0FBRWxGLEtBQUksT0FBTyxpQkFBaUIsZ0JBQWdCLFlBQVksQ0FBQyxpQkFBaUIsWUFDeEUsT0FBTSxJQUFJLE1BQU0sOENBQThDLFVBQVUsR0FBRztBQUU3RSxLQUFJLE9BQU8saUJBQWlCLFdBQVcsWUFBWSxDQUFDLGlCQUFpQixPQUNuRSxPQUFNLElBQUksTUFBTSx5Q0FBeUMsVUFBVSxHQUFHO0FBSXhFLEtBQ0UsQ0FBQyxpQkFBaUIsa0JBQ2xCLE9BQU8saUJBQWlCLG1CQUFtQixZQUMzQyxNQUFNLFFBQVEsaUJBQWlCLGVBQWUsQ0FFOUMsT0FBTSxJQUFJLE1BQU0saURBQWlELFVBQVUsR0FBRztDQUdoRixNQUFNLGlCQUFpQixpQkFBaUI7QUFHeEMsS0FBSSxPQUFPLGVBQWUsYUFBYSxZQUFZLENBQUMsZUFBZSxTQUNqRSxPQUFNLElBQUksTUFBTSwwREFBMEQsVUFBVSxHQUFHO0FBRXpGLEtBQUksT0FBTyxlQUFlLGtCQUFrQixZQUFZLENBQUMsZUFBZSxjQUN0RSxPQUFNLElBQUksTUFBTSwrREFBK0QsVUFBVSxHQUFHO0FBSTlGLEtBQUksQ0FBQyxPQUFPLE9BQU8saUJBQWlCLENBQUMsU0FBUyxlQUFlLGNBQWtDLENBQzdGLE9BQU0sSUFBSSxNQUNSLHlDQUF5QyxlQUFlLGNBQWMsZ0JBQWdCLFVBQVUsa0JBQWtCLE9BQU8sT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssR0FDN0o7QUFJSCxLQUFJLGVBQWUsa0JBQWtCLFFBQVEsT0FBTyxlQUFlLG1CQUFtQixTQUNwRixPQUFNLElBQUksTUFDUixxREFBcUQsVUFBVSx1Q0FDaEU7Q0FJSCxJQUFJO0FBQ0osS0FBSSxpQkFBaUIsc0JBQXNCO0FBQ3pDLE1BQ0UsT0FBTyxpQkFBaUIseUJBQXlCLFlBQ2pELE1BQU0sUUFBUSxpQkFBaUIscUJBQXFCLENBRXBELE9BQU0sSUFBSSxNQUFNLDRDQUE0QyxVQUFVLHNCQUFzQjtFQUc5RixNQUFNLGNBQWMsaUJBQWlCO0FBQ3JDLE1BQUksT0FBTyxZQUFZLGFBQWEsWUFBWSxDQUFDLFlBQVksU0FDM0QsT0FBTSxJQUFJLE1BQU0sZ0VBQWdFLFVBQVUsR0FBRztBQUUvRixNQUFJLE9BQU8sWUFBWSxrQkFBa0IsWUFBWSxDQUFDLFlBQVksY0FDaEUsT0FBTSxJQUFJLE1BQ1IscUVBQXFFLFVBQVUsR0FDaEY7QUFHSCxNQUFJLENBQUMsT0FBTyxPQUFPLGlCQUFpQixDQUFDLFNBQVMsWUFBWSxjQUFrQyxDQUMxRixPQUFNLElBQUksTUFDUiwrQ0FBK0MsWUFBWSxjQUFjLGdCQUFnQixVQUFVLGtCQUFrQixPQUFPLE9BQU8saUJBQWlCLENBQUMsS0FBSyxLQUFLLEdBQ2hLO0FBR0gsTUFBSSxZQUFZLGtCQUFrQixRQUFRLE9BQU8sWUFBWSxtQkFBbUIsU0FDOUUsT0FBTSxJQUFJLE1BQ1IsMkRBQTJELFVBQVUsdUNBQ3RFO0FBR0gseUJBQXVCO0dBQ3JCLFVBQVUsWUFBWTtHQUN0QixlQUFlLFlBQVk7R0FDM0IsZ0JBQWdCLFlBQVk7R0FDN0I7O0NBSUgsSUFBSTtBQUNKLEtBQUksaUJBQWlCLGlCQUFpQjtBQUNwQyxNQUNFLE9BQU8saUJBQWlCLG9CQUFvQixZQUM1QyxNQUFNLFFBQVEsaUJBQWlCLGdCQUFnQixDQUUvQyxPQUFNLElBQUksTUFBTSx1Q0FBdUMsVUFBVSxzQkFBc0I7RUFHekYsTUFBTSxXQUFXLGlCQUFpQjtBQUNsQyxNQUFJLE9BQU8sU0FBUyxjQUFjLFlBQVksQ0FBQyxTQUFTLFVBQ3RELE9BQU0sSUFBSSxNQUFNLDREQUE0RCxVQUFVLEdBQUc7QUFFM0YsTUFBSSxPQUFPLFNBQVMsWUFBWSxZQUFZLENBQUMsU0FBUyxRQUNwRCxPQUFNLElBQUksTUFBTSwwREFBMEQsVUFBVSxHQUFHO0FBRXpGLE1BQUksT0FBTyxTQUFTLGtCQUFrQixZQUFZLENBQUMsU0FBUyxjQUMxRCxPQUFNLElBQUksTUFBTSxnRUFBZ0UsVUFBVSxHQUFHO0FBRy9GLE1BQUksQ0FBQyxPQUFPLE9BQU8saUJBQWlCLENBQUMsU0FBUyxTQUFTLGNBQWtDLENBQ3ZGLE9BQU0sSUFBSSxNQUNSLDBDQUEwQyxTQUFTLGNBQWMsZ0JBQWdCLFVBQVUsa0JBQWtCLE9BQU8sT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssR0FDeEo7QUFHSCxvQkFBa0I7R0FDaEIsV0FBVyxTQUFTO0dBQ3BCLFNBQVMsU0FBUztHQUNsQixlQUFlLFNBQVM7R0FDekI7O0FBSUgsS0FDRSxpQkFBaUIsb0JBQW9CLFFBQ3JDLE9BQU8saUJBQWlCLHFCQUFxQixTQUU3QyxPQUFNLElBQUksTUFDUix3Q0FBd0MsVUFBVSx1Q0FDbkQ7QUFFSCxLQUFJLGlCQUFpQixhQUFhLFFBQVEsT0FBTyxpQkFBaUIsY0FBYyxTQUM5RSxPQUFNLElBQUksTUFDUixpQ0FBaUMsVUFBVSx1Q0FDNUM7QUFFSCxLQUNFLGlCQUFpQix1QkFBdUIsUUFDeEMsT0FBTyxpQkFBaUIsd0JBQXdCLFNBRWhELE9BQU0sSUFBSSxNQUNSLDJDQUEyQyxVQUFVLHVDQUN0RDtBQUVILEtBQ0UsaUJBQWlCLGtCQUFrQixTQUNsQyxPQUFPLGlCQUFpQixtQkFBbUIsWUFDMUMsTUFBTSxRQUFRLGlCQUFpQixlQUFlLEVBRWhELE9BQU0sSUFBSSxNQUNSLHNDQUFzQyxVQUFVLHdDQUNqRDtBQUVILEtBQ0UsaUJBQWlCLFNBQVMsU0FDekIsT0FBTyxpQkFBaUIsVUFBVSxZQUFZLE1BQU0sUUFBUSxpQkFBaUIsTUFBTSxFQUVwRixPQUFNLElBQUksTUFBTSw2QkFBNkIsVUFBVSx3Q0FBd0M7Q0FJakcsSUFBSTtBQUNKLEtBQUksaUJBQWlCLG1CQUFtQjtBQUN0QyxNQUNFLE9BQU8saUJBQWlCLHNCQUFzQixZQUM5QyxDQUFDLGlCQUFpQixrQkFFbEIsT0FBTSxJQUFJLE1BQU0seUNBQXlDLFVBQVUscUJBQXFCO0FBRzFGLE1BQ0UsQ0FBQyxPQUFPLE9BQU8sa0JBQWtCLENBQUMsU0FDaEMsaUJBQWlCLGtCQUNsQixDQUVELE9BQU0sSUFBSSxNQUNSLDhCQUE4QixpQkFBaUIsa0JBQWtCLGdCQUFnQixVQUFVLGtCQUFrQixPQUFPLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxLQUFLLEdBQ3pKO0FBRUgsc0JBQW9CLGlCQUFpQjs7Q0FJdkMsTUFBTUMsU0FBK0I7RUFDbkMsa0JBQWtCLGlCQUFpQjtFQUNuQyxhQUFhLGlCQUFpQjtFQUM5QixRQUFRLGlCQUFpQjtFQUN6QixnQkFBZ0I7R0FDZCxVQUFVLGVBQWU7R0FDekIsZUFBZSxlQUFlO0dBQzlCLEdBQUksZUFBZSxrQkFBa0IsUUFBUSxFQUMzQyxnQkFBZ0IsZUFBZSxnQkFDaEM7R0FDRjtFQUNGO0FBR0QsS0FBSSxxQkFDRixRQUFPLHVCQUF1QjtBQUVoQyxLQUFJLGtCQUNGLFFBQU8sb0JBQW9CO0FBRTdCLEtBQUksZ0JBQ0YsUUFBTyxrQkFBa0I7QUFFM0IsS0FBSSxpQkFBaUIsaUJBQ25CLFFBQU8sbUJBQW1CLGlCQUFpQjtBQUU3QyxLQUFJLGlCQUFpQixVQUNuQixRQUFPLFlBQVksaUJBQWlCO0FBRXRDLEtBQUksaUJBQWlCLG9CQUNuQixRQUFPLHNCQUFzQixpQkFBaUI7QUFFaEQsS0FBSSxpQkFBaUIsZUFDbkIsUUFBTyxpQkFBaUIsaUJBQWlCO0FBRTNDLEtBQUksaUJBQWlCLE1BQ25CLFFBQU8sUUFBUSxpQkFBaUI7QUFHbEMsUUFBTzs7QUFJVCxNQUFhLG9DQUNYLFFBQ0EsY0FDaUI7Q0FDakIsTUFBTSxtQkFBbUIsc0JBQXNCLE9BQU87QUFFdEQsS0FBSSxPQUFPLGlCQUFpQixtQkFBbUIsWUFBWSxDQUFDLGlCQUFpQixlQUMzRSxPQUFNLElBQUksTUFBTSx3REFBd0QsVUFBVSxHQUFHO0FBRXZGLEtBQUksT0FBTyxpQkFBaUIsU0FBUyxZQUFZLENBQUMsaUJBQWlCLEtBQ2pFLE9BQU0sSUFBSSxNQUFNLDhDQUE4QyxVQUFVLEdBQUc7QUFHN0UsS0FBSSxpQkFBaUIsYUFBYSxRQUFRLE9BQU8saUJBQWlCLGNBQWMsU0FDOUUsT0FBTSxJQUFJLE1BQ1Isd0NBQXdDLFVBQVUsdUNBQ25EO0FBT0gsUUFBTzs7QUFHVCxNQUFhLGlDQUFpQyxTQUE4QztBQUMxRixLQUFJLFNBQVMsUUFBUSxTQUFTLE9BQzVCO0FBR0YsS0FBSSxPQUFPLFNBQVMsWUFBWSxNQUFNLFFBQVEsS0FBSyxFQUFFO0FBQ25ELGlCQUFPLFFBQVEsdURBQXVELFFBQVcsRUFBRSxNQUFNLENBQUM7QUFDMUY7O0NBR0YsTUFBTSxNQUFNO0FBR1osS0FDRSwyQkFBMkIsT0FDM0IsT0FBTyxJQUFJLDBCQUEwQixZQUNyQyxJQUFJLDBCQUEwQixNQUM5QjtBQUNBLGlCQUFPLFFBQ0wsd0ZBQ0EsUUFDQSxFQUFFLE1BQU0sQ0FDVDtBQUNEOztBQUlGLEtBQUksbUJBQW1CLEtBQ3JCO01BQ0UsSUFBSSxrQkFBa0IsVUFDdEIsSUFBSSxrQkFBa0IsUUFDdEIsQ0FBQyxNQUFNLFFBQVEsSUFBSSxjQUFjLEVBQ2pDO0FBQ0Esa0JBQU8sUUFDTCwwRkFDQSxRQUNBLEVBQUUsTUFBTSxDQUNUO0FBQ0Q7OztBQUtKLEtBQUksc0JBQXNCLEtBQ3hCO01BQ0UsSUFBSSxxQkFBcUIsVUFDekIsSUFBSSxxQkFBcUIsUUFDekIsQ0FBQyxNQUFNLFFBQVEsSUFBSSxpQkFBaUIsRUFDcEM7QUFDQSxrQkFBTyxRQUNMLDZGQUNBLFFBQ0EsRUFBRSxNQUFNLENBQ1Q7QUFDRDs7O0FBS0osS0FBSSxvQkFBb0IsS0FDdEI7TUFDRSxJQUFJLG1CQUFtQixVQUN2QixJQUFJLG1CQUFtQixRQUN2QixDQUFDLE1BQU0sUUFBUSxJQUFJLGVBQWUsRUFDbEM7QUFDQSxrQkFBTyxRQUNMLDJGQUNBLFFBQ0EsRUFBRSxNQUFNLENBQ1Q7QUFDRDs7O0FBS0osS0FBSSxnQkFBZ0IsT0FBTyxPQUFPLElBQUksZUFBZSxZQUFZLElBQUksZUFBZSxNQUFNO0FBQ3hGLGlCQUFPLFFBQ0wsd0ZBQ0EsUUFDQSxFQUFFLE1BQU0sQ0FDVDtBQUNEOztBQUdGLEtBQUk7RUFFRixNQUFNLGtCQUFrQixzQkFBc0IsSUFBSTtBQUdsRCxNQUFJLGdCQUFnQixnQkFBZ0IsTUFBTSxRQUFRLGdCQUFnQixhQUFhLEVBQUU7R0FDL0UsTUFBTSxvQkFBb0IsZ0JBQWdCO0dBQzFDLE1BQU1DLHdCQUE2QyxFQUFFO0FBRXJELFFBQUssTUFBTSxXQUFXLGtCQUNwQixLQUFJLFdBQVcsT0FBTyxZQUFZLFlBQVksT0FBTyxRQUFRLGNBQWMsU0FDekUsS0FBSTtJQUNGLE1BQU0sbUJBQW1CLGlDQUFpQyxRQUFRO0FBQ2xFLDBCQUFzQixLQUFLLGlCQUFpQjtZQUNyQyxPQUFPO0FBQ2QsbUJBQU8sUUFBUSxrQ0FBa0MsT0FBTztLQUN0RCxXQUFXLFFBQVE7S0FDbkI7S0FDRCxDQUFDOztPQUlKLGdCQUFPLFFBQVEsNENBQTRDLFFBQVcsRUFBRSxTQUFTLENBQUM7QUFJdEYsbUJBQWdCLGVBQWU7O0FBSWpDLE1BQUksZ0JBQWdCLG1CQUFtQixNQUFNLFFBQVEsZ0JBQWdCLGdCQUFnQixFQUFFO0dBQ3JGLE1BQU0sdUJBQXVCLGdCQUFnQjtHQUk3QyxNQUFNQyx3QkFBOEQsRUFBRTtBQUV0RSxRQUFLLE1BQU0sUUFBUSxxQkFDakIsS0FDRSxRQUNBLE9BQU8sS0FBSyxRQUFRLFlBQ3BCLEtBQUssVUFDTCxPQUFPLEtBQUssV0FBVyxTQUV2QixLQUFJO0lBRUYsTUFBTSxTQUFTLEtBQUs7SUFDcEIsTUFBTSxrQkFBa0IsbUNBQW1DLFFBQVEsS0FBSyxJQUFJO0FBQzVFLDBCQUFzQixLQUFLLE9BQU87WUFDM0IsT0FBTztBQUNkLG1CQUFPLFFBQVEscUNBQXFDLE9BQU87S0FDekQsV0FBVyxLQUFLO0tBQ2hCLFFBQVEsS0FBSztLQUNkLENBQUM7O09BSUosZ0JBQU8sUUFBUSxvREFBb0QsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUkzRixtQkFBZ0Isa0JBQWtCOztBQUlwQyxNQUFJLGdCQUFnQixpQkFBaUIsTUFBTSxRQUFRLGdCQUFnQixjQUFjLEVBQUU7R0FDakYsTUFBTSxxQkFBcUIsZ0JBQWdCO0dBSTNDLE1BQU1DLHNCQUErQyxFQUFFO0FBRXZELFFBQUssTUFBTSxRQUFRLG1CQUNqQixLQUNFLFFBQ0EsT0FBTyxLQUFLLFFBQVEsWUFDcEIsS0FBSyxVQUNMLE9BQU8sS0FBSyxXQUFXLFNBRXZCLEtBQUk7SUFFRixNQUFNLFNBQVMsS0FBSztJQUNwQixNQUFNLGtCQUFrQixpQ0FBaUMsUUFBUSxLQUFLLElBQUk7QUFDMUUsd0JBQW9CLEtBQUssT0FBTztZQUN6QixPQUFPO0FBQ2QsbUJBQU8sUUFBUSxtQ0FBbUMsT0FBTztLQUN2RCxXQUFXLEtBQUs7S0FDaEIsUUFBUSxLQUFLO0tBQ2QsQ0FBQzs7T0FJSixnQkFBTyxRQUFRLGtEQUFrRCxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBSXpGLG1CQUFnQixnQkFBZ0I7O0FBR2xDLFNBQU87VUFDQSxPQUFPO0FBQ2QsaUJBQU8sUUFBUSxpRUFBaUUsT0FBTyxFQUNyRixNQUNELENBQUM7QUFDRiJ9
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVHcmFwaFFMRnJvbnRlbmRDb25maWcuanMiLCJuYW1lcyI6WyJub3JtYWxpemVkQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiIsInJlc3VsdDogV2lkZ2V0TW91bnRpbmdDb25maWciLCJ2YWxpZGF0ZWRQYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJtb3VudGluZ0NvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPiIsIndpZGdldENvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlR3JhcGhRTEZyb250ZW5kQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyJztcbmltcG9ydCB7XG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRDb25maWcsXG4gIFdpZGdldE1vdW50aW5nQ29uZmlnLFxufSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXMnO1xuaW1wb3J0IHsgRE9NSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uJztcbmltcG9ydCB7IEdyaWRJbnNlcnRpb25UeXBlIH0gZnJvbSAnc3JjL21lcmNoYW50cy9ncmlkSW5zZXJ0aW9uJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGFuZCB0cmFuc2Zvcm0gUGFnZVZhcmlhbnRRdWVyeURhdGEgdG8gUGFnZVZhcmlhbnRDb25maWdcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyA9IChcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFBhZ2VWYXJpYW50Q29uZmlnID0+IHtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwoY29uZmlnKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdCB7IHZhcmlhbnRDaGVja3MsIHdpZGdldE1vdW50aW5nLCAuLi5yZXN0IH0gPSB0cmFuc2Zvcm1lZDtcblxuICAvLyBDb252ZXJ0IHZhcmlhbnRDaGVja3MgdG8gdmFyaWFudFRlc3RzIHdpdGggdGVzdFR5cGUgbm9ybWFsaXphdGlvblxuICBjb25zdCB2YXJpYW50VGVzdHMgPSBBcnJheS5pc0FycmF5KHZhcmlhbnRDaGVja3MpXG4gICAgPyB2YXJpYW50Q2hlY2tzLm1hcCgoeyBjaGVja1R5cGUsIC4uLnJlc3RDaGVjayB9KSA9PiAoe1xuICAgICAgICAuLi5yZXN0Q2hlY2ssXG4gICAgICAgIHRlc3RUeXBlOiBjaGVja1R5cGUsXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIC8vIE5vcm1hbGl6ZSB3aWRnZXRNb3VudGluZzogY2hlY2tzIC0+IHRlc3RzLCBjaGVja1R5cGUgLT4gdGVzdFR5cGVcbiAgY29uc3Qgbm9ybWFsaXplZFdpZGdldE1vdW50aW5nID0gQXJyYXkuaXNBcnJheSh3aWRnZXRNb3VudGluZylcbiAgICA/IHdpZGdldE1vdW50aW5nLm1hcCgoeyBtb3VudGluZ1BvaW50V2lkZ2V0cywgLi4ucmVzdE1vdW50aW5nIH0pID0+ICh7XG4gICAgICAgIC4uLnJlc3RNb3VudGluZyxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkobW91bnRpbmdQb2ludFdpZGdldHMpXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBtb3VudGluZ1BvaW50V2lkZ2V0cy5tYXAoKHsgY2hlY2tzLCAuLi5yZXN0V2lkZ2V0IH0pID0+ICh7XG4gICAgICAgICAgICAgICAgLi4ucmVzdFdpZGdldCxcbiAgICAgICAgICAgICAgICB0ZXN0czogQXJyYXkuaXNBcnJheShjaGVja3MpXG4gICAgICAgICAgICAgICAgICA/IGNoZWNrcy5tYXAoKHsgY2hlY2tUeXBlLCAuLi5yZXN0Q2hlY2sgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN0Q2hlY2ssXG4gICAgICAgICAgICAgICAgICAgICAgdGVzdFR5cGU6IGNoZWNrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9KSlcbiAgICA6IFtdO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRDb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIC4uLnJlc3QsXG4gICAgLi4uKHZhcmlhbnRUZXN0cyA/IHsgdmFyaWFudFRlc3RzIH0gOiB7fSksXG4gICAgLi4uKG5vcm1hbGl6ZWRXaWRnZXRNb3VudGluZyA/IHsgd2lkZ2V0TW91bnRpbmc6IG5vcm1hbGl6ZWRXaWRnZXRNb3VudGluZyB9IDoge30pLFxuICB9O1xuXG4gIGNvbnN0IHZhcmlhbnRJZCA9IG5vcm1hbGl6ZWRDb25maWcudmFyaWFudElkIGFzIHN0cmluZztcbiAgY29uc3QgdmFyaWFudFR5cGUgPSBub3JtYWxpemVkQ29uZmlnLnZhcmlhbnRUeXBlIGFzIHN0cmluZztcblxuICBpZiAodHlwZW9mIHZhcmlhbnRJZCAhPT0gJ3N0cmluZycgfHwgIXZhcmlhbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRJZCBmb3IgcGFnZVZhcmlhbnRgKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFyaWFudFR5cGUgIT09ICdzdHJpbmcnIHx8ICF2YXJpYW50VHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRUeXBlIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhcmlhbnRUZXN0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTWlzc2luZyBvciBpbnZhbGlkIHZhcmlhbnRUZXN0cyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfScuIE11c3QgYmUgYW4gYXJyYXlgLFxuICAgICk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHRlc3Qgb2YgdmFyaWFudFRlc3RzKSB7XG4gICAgaWYgKCF0ZXN0LnRlc3RUeXBlIHx8IHR5cGVvZiB0ZXN0LnRlc3RUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhcmlhbnRUZXN0LnRlc3RUeXBlIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cbiAgICBpZiAoIU9iamVjdC52YWx1ZXMoUGFnZVZhcmlhbnRUZXN0VHlwZSkuaW5jbHVkZXModGVzdC50ZXN0VHlwZSBhcyBQYWdlVmFyaWFudFRlc3RUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCB0ZXN0VHlwZSAnJHt0ZXN0LnRlc3RUeXBlfScgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nLiBWYWxpZCB0eXBlczogJHtPYmplY3QudmFsdWVzKFxuICAgICAgICAgIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gICAgICAgICkuam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIUFycmF5LmlzQXJyYXkobm9ybWFsaXplZFdpZGdldE1vdW50aW5nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNaXNzaW5nIG9yIGludmFsaWQgd2lkZ2V0TW91bnRpbmcgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nLiBNdXN0IGJlIGFuIGFycmF5YCxcbiAgICApO1xuICB9XG5cbiAgZm9yIChjb25zdCBtb3VudGluZyBvZiBub3JtYWxpemVkV2lkZ2V0TW91bnRpbmcpIHtcbiAgICBpZiAodHlwZW9mIG1vdW50aW5nLm1vdW50aW5nQ29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICFtb3VudGluZy5tb3VudGluZ0NvbmZpZ0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbW91bnRpbmdDb25maWdJZCBpbiB3aWRnZXRNb3VudGluZyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgKTtcbiAgICB9XG5cbiAgICBpZiAobW91bnRpbmcud2lkZ2V0Q29uZmlnSWQgJiYgdHlwZW9mIG1vdW50aW5nLndpZGdldENvbmZpZ0lkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHdpZGdldENvbmZpZ0lkIGluIHdpZGdldE1vdW50aW5nIGZvciBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cblxuICAgIGlmIChtb3VudGluZy5tb3VudGluZ1BvaW50V2lkZ2V0cykge1xuICAgICAgZm9yIChjb25zdCB3aWRnZXQgb2YgbW91bnRpbmcubW91bnRpbmdQb2ludFdpZGdldHMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXQud2lkZ2V0Q29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICF3aWRnZXQud2lkZ2V0Q29uZmlnSWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCB3aWRnZXRDb25maWdJZCBpbiBtb3VudGluZ1BvaW50V2lkZ2V0cyBmb3IgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkod2lkZ2V0LnRlc3RzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbnZhbGlkIG9yIG1pc3NpbmcgdGVzdHMgaW4gbW91bnRpbmdQb2ludFdpZGdldHMgZm9yIHBhZ2VWYXJpYW50ICcke3ZhcmlhbnRJZH0nYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhbnRUeXBlID09PSAncGxwJykge1xuICAgIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5wbHBJZEV4dHJhY3RvciAhPT0gJ3N0cmluZycgfHwgIW5vcm1hbGl6ZWRDb25maWcucGxwSWRFeHRyYWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHBscElkRXh0cmFjdG9yIGZvciBQTFAgcGFnZVZhcmlhbnQgJyR7dmFyaWFudElkfSdgKTtcbiAgICB9XG4gIH1cblxuICBpZiAodmFyaWFudFR5cGUgPT09ICdwZHAnKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcucHJvZHVjdElkRXh0cmFjdG9yICE9PSAnc3RyaW5nJyB8fFxuICAgICAgIW5vcm1hbGl6ZWRDb25maWcucHJvZHVjdElkRXh0cmFjdG9yXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBwcm9kdWN0SWRFeHRyYWN0b3IgZm9yIFBEUCBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9J2ApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBub3JtYWxpemVkQ29uZmlnLnBhcmVudFByb2R1Y3RJZEV4dHJhY3RvciAmJlxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcucGFyZW50UHJvZHVjdElkRXh0cmFjdG9yICE9PSAnc3RyaW5nJ1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBwYXJlbnRQcm9kdWN0SWRFeHRyYWN0b3IgZm9yIFBEUCBwYWdlVmFyaWFudCAnJHt2YXJpYW50SWR9Jy4gTXVzdCBiZSBzdHJpbmcgaWYgcHJvdmlkZWRgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplZENvbmZpZyBhcyBQYWdlVmFyaWFudENvbmZpZztcbn07XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhbmQgdHJhbnNmb3JtIE1vdW50aW5nQ29uZmlnUXVlcnlEYXRhIHRvIFdpZGdldE1vdW50aW5nQ29uZmlnXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyA9IChcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgY29uZmlnS2V5OiBzdHJpbmcsXG4pOiBXaWRnZXRNb3VudGluZ0NvbmZpZyA9PiB7XG4gIC8vIFJFTkFNSU5HIExPR0lDOiBDb252ZXJ0IGJhY2tlbmQgXCJDaGVja1wiIHRlcm1pbm9sb2d5IHRvIGZyb250ZW5kIFwiVGVzdFwiIHRlcm1pbm9sb2d5XG4gIGNvbnN0IG5vcm1hbGl6ZWRDb25maWcgPSB7IC4uLmNvbmZpZyB9O1xuXG4gIC8vIENvbnZlcnQgY2hlY2tJZCB0byB0ZXN0SWQgZm9yIGZyb250ZW5kIGNvbXBhdGliaWxpdHkgKGRhdGEgaXMgYWxyZWFkeSBjYW1lbENhc2UpXG4gIGlmIChub3JtYWxpemVkQ29uZmlnLmNoZWNrSWQgJiYgIW5vcm1hbGl6ZWRDb25maWcudGVzdElkKSB7XG4gICAgbm9ybWFsaXplZENvbmZpZy50ZXN0SWQgPSBub3JtYWxpemVkQ29uZmlnLmNoZWNrSWQ7XG4gICAgZGVsZXRlIG5vcm1hbGl6ZWRDb25maWcuY2hlY2tJZDtcbiAgfVxuXG4gIC8vIFJlcXVpcmVkIGZpZWxkcyAtIHRoZXNlIG11c3QgYmUgcHJlc2VudCBhbmQgdmFsaWRcbiAgaWYgKHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLm1vdW50aW5nQ29uZmlnSWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLm1vdW50aW5nQ29uZmlnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBtb3VudGluZ0NvbmZpZ0lkIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuICBpZiAodHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY29udGFpbmVySWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLmNvbnRhaW5lcklkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgY29udGFpbmVySWQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy50ZXN0SWQgIT09ICdzdHJpbmcnIHx8ICFub3JtYWxpemVkQ29uZmlnLnRlc3RJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIHRlc3RJZCBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCk7XG4gIH1cblxuICAvLyBSZXF1aXJlZCBpbnNlcnRpb25Qb2ludFxuICBpZiAoXG4gICAgIW5vcm1hbGl6ZWRDb25maWcuaW5zZXJ0aW9uUG9pbnQgfHxcbiAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5pbnNlcnRpb25Qb2ludCAhPT0gJ29iamVjdCcgfHxcbiAgICBBcnJheS5pc0FycmF5KG5vcm1hbGl6ZWRDb25maWcuaW5zZXJ0aW9uUG9pbnQpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkIGluc2VydGlvblBvaW50IGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuXG4gIGNvbnN0IGluc2VydGlvblBvaW50ID0gbm9ybWFsaXplZENvbmZpZy5pbnNlcnRpb25Qb2ludCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvLyBWYWxpZGF0ZSBpbnNlcnRpb25Qb2ludCByZXF1aXJlZCBmaWVsZHNcbiAgaWYgKHR5cGVvZiBpbnNlcnRpb25Qb2ludC5zZWxlY3RvciAhPT0gJ3N0cmluZycgfHwgIWluc2VydGlvblBvaW50LnNlbGVjdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2YgaW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAhPT0gJ3N0cmluZycgfHwgIWluc2VydGlvblBvaW50Lmluc2VydGlvblR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGluc2VydGlvblR5cGUgaXMgYSB2YWxpZCBET01JbnNlcnRpb25UeXBlXG4gIGlmICghT2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5pbmNsdWRlcyhpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAnJHtpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlfScgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gVmFsaWQgdHlwZXM6ICR7T2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5qb2luKCcsICcpfWAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIGluc2VydGlvblBvaW50IGZpZWxkc1xuICBpZiAoaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT0gbnVsbCAmJiB0eXBlb2YgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIG51bWJlciBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIHBhcmVudEluc2VydGlvblBvaW50IGlmIHByZXNlbnRcbiAgbGV0IHBhcmVudEluc2VydGlvblBvaW50O1xuICBpZiAobm9ybWFsaXplZENvbmZpZy5wYXJlbnRJbnNlcnRpb25Qb2ludCkge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50ICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmVudEluc2VydGlvblBvaW50IGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYW4gb2JqZWN0YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50UG9pbnQgPSBub3JtYWxpemVkQ29uZmlnLnBhcmVudEluc2VydGlvblBvaW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2YgcGFyZW50UG9pbnQuc2VsZWN0b3IgIT09ICdzdHJpbmcnIHx8ICFwYXJlbnRQb2ludC5zZWxlY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHBhcmVudFBvaW50Lmluc2VydGlvblR5cGUgIT09ICdzdHJpbmcnIHx8ICFwYXJlbnRQb2ludC5pbnNlcnRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBNaXNzaW5nIG9yIGludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3QudmFsdWVzKERPTUluc2VydGlvblR5cGUpLmluY2x1ZGVzKHBhcmVudFBvaW50Lmluc2VydGlvblR5cGUgYXMgRE9NSW5zZXJ0aW9uVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuaW5zZXJ0aW9uVHlwZSAnJHtwYXJlbnRQb2ludC5pbnNlcnRpb25UeXBlfScgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gVmFsaWQgdHlwZXM6ICR7T2JqZWN0LnZhbHVlcyhET01JbnNlcnRpb25UeXBlKS5qb2luKCcsICcpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJlbnRQb2ludC5zZWxlY3Rpb25JbmRleCAhPSBudWxsICYmIHR5cGVvZiBwYXJlbnRQb2ludC5zZWxlY3Rpb25JbmRleCAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcGFyZW50SW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIG51bWJlciBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHBhcmVudEluc2VydGlvblBvaW50ID0ge1xuICAgICAgc2VsZWN0b3I6IHBhcmVudFBvaW50LnNlbGVjdG9yLFxuICAgICAgaW5zZXJ0aW9uVHlwZTogcGFyZW50UG9pbnQuaW5zZXJ0aW9uVHlwZSBhcyBET01JbnNlcnRpb25UeXBlLFxuICAgICAgc2VsZWN0aW9uSW5kZXg6IHBhcmVudFBvaW50LnNlbGVjdGlvbkluZGV4IGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgb3B0aW9uYWwgd3JhcHBpbmdFbGVtZW50IGlmIHByZXNlbnRcbiAgbGV0IHdyYXBwaW5nRWxlbWVudDtcbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50KSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50ICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLndyYXBwaW5nRWxlbWVudClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB3cmFwcGluZ0VsZW1lbnQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhbiBvYmplY3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZyA9IG5vcm1hbGl6ZWRDb25maWcud3JhcHBpbmdFbGVtZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2Ygd3JhcHBpbmcuY2xhc3NOYW1lICE9PSAnc3RyaW5nJyB8fCAhd3JhcHBpbmcuY2xhc3NOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3cmFwcGluZ0VsZW1lbnQuY2xhc3NOYW1lIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fSdgKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3cmFwcGluZy5lbGVtZW50ICE9PSAnc3RyaW5nJyB8fCAhd3JhcHBpbmcuZWxlbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgd3JhcHBpbmdFbGVtZW50LmVsZW1lbnQgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdyYXBwaW5nLmluc2VydGlvblR5cGUgIT09ICdzdHJpbmcnIHx8ICF3cmFwcGluZy5pbnNlcnRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3cmFwcGluZ0VsZW1lbnQuaW5zZXJ0aW9uVHlwZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nYCk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3QudmFsdWVzKERPTUluc2VydGlvblR5cGUpLmluY2x1ZGVzKHdyYXBwaW5nLmluc2VydGlvblR5cGUgYXMgRE9NSW5zZXJ0aW9uVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgd3JhcHBpbmdFbGVtZW50Lmluc2VydGlvblR5cGUgJyR7d3JhcHBpbmcuaW5zZXJ0aW9uVHlwZX0nIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIFZhbGlkIHR5cGVzOiAke09iamVjdC52YWx1ZXMoRE9NSW5zZXJ0aW9uVHlwZSkuam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3cmFwcGluZ0VsZW1lbnQgPSB7XG4gICAgICBjbGFzc05hbWU6IHdyYXBwaW5nLmNsYXNzTmFtZSxcbiAgICAgIGVsZW1lbnQ6IHdyYXBwaW5nLmVsZW1lbnQsXG4gICAgICBpbnNlcnRpb25UeXBlOiB3cmFwcGluZy5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIG9wdGlvbmFsIGZpZWxkc1xuICBpZiAoXG4gICAgbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yICE9IG51bGwgJiZcbiAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBkaXZDaGVja1NlbGVjdG9yIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYSBzdHJpbmcgb3IgbnVsbC91bmRlZmluZWRgLFxuICAgICk7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuY2xhc3NOYW1lICE9IG51bGwgJiYgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY2xhc3NOYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNsYXNzTmFtZSBmb3IgY29uZmlnICcke2NvbmZpZ0tleX0nLiBNdXN0IGJlIGEgc3RyaW5nIG9yIG51bGwvdW5kZWZpbmVkYCxcbiAgICApO1xuICB9XG4gIGlmIChcbiAgICBub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHN1cHByZXNzaW9uU2VsZWN0b3IgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZyBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuICBpZiAoXG4gICAgbm9ybWFsaXplZENvbmZpZy5kYXRhQXR0cmlidXRlcyAhPSBudWxsICYmXG4gICAgKHR5cGVvZiBub3JtYWxpemVkQ29uZmlnLmRhdGFBdHRyaWJ1dGVzICE9PSAnb2JqZWN0JyB8fFxuICAgICAgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLmRhdGFBdHRyaWJ1dGVzKSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgZGF0YUF0dHJpYnV0ZXMgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhbiBvYmplY3Qgb3IgbnVsbC91bmRlZmluZWRgLFxuICAgICk7XG4gIH1cbiAgaWYgKFxuICAgIG5vcm1hbGl6ZWRDb25maWcuc3R5bGUgIT0gbnVsbCAmJlxuICAgICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5zdHlsZSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShub3JtYWxpemVkQ29uZmlnLnN0eWxlKSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0eWxlIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIE11c3QgYmUgYW4gb2JqZWN0IG9yIG51bGwvdW5kZWZpbmVkYCk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBncmlkSW5zZXJ0aW9uVHlwZSBpZiBwcmVzZW50XG4gIGxldCBncmlkSW5zZXJ0aW9uVHlwZTtcbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuZ3JpZEluc2VydGlvblR5cGUpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgICFub3JtYWxpemVkQ29uZmlnLmdyaWRJbnNlcnRpb25UeXBlXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ3JpZEluc2VydGlvblR5cGUgZm9yIGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZ2ApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QudmFsdWVzKEdyaWRJbnNlcnRpb25UeXBlKS5pbmNsdWRlcyhcbiAgICAgICAgbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSBhcyBHcmlkSW5zZXJ0aW9uVHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgZ3JpZEluc2VydGlvblR5cGUgJyR7bm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZX0nIGZvciBjb25maWcgJyR7Y29uZmlnS2V5fScuIFZhbGlkIHR5cGVzOiAke09iamVjdC52YWx1ZXMoR3JpZEluc2VydGlvblR5cGUpLmpvaW4oJywgJyl9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGdyaWRJbnNlcnRpb25UeXBlID0gbm9ybWFsaXplZENvbmZpZy5ncmlkSW5zZXJ0aW9uVHlwZSBhcyBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgfVxuXG4gIC8vIEJ1aWxkIHRoZSByZXR1cm4gb2JqZWN0LCBvbmx5IGluY2x1ZGluZyBvcHRpb25hbCBmaWVsZHMgaWYgdGhleSBoYXZlIHZhbHVlc1xuICBjb25zdCByZXN1bHQ6IFdpZGdldE1vdW50aW5nQ29uZmlnID0ge1xuICAgIG1vdW50aW5nQ29uZmlnSWQ6IG5vcm1hbGl6ZWRDb25maWcubW91bnRpbmdDb25maWdJZCxcbiAgICBjb250YWluZXJJZDogbm9ybWFsaXplZENvbmZpZy5jb250YWluZXJJZCxcbiAgICB0ZXN0SWQ6IG5vcm1hbGl6ZWRDb25maWcudGVzdElkLFxuICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICBzZWxlY3RvcjogaW5zZXJ0aW9uUG9pbnQuc2VsZWN0b3IsXG4gICAgICBpbnNlcnRpb25UeXBlOiBpbnNlcnRpb25Qb2ludC5pbnNlcnRpb25UeXBlIGFzIERPTUluc2VydGlvblR5cGUsXG4gICAgICAuLi4oaW5zZXJ0aW9uUG9pbnQuc2VsZWN0aW9uSW5kZXggIT0gbnVsbCAmJiB7XG4gICAgICAgIHNlbGVjdGlvbkluZGV4OiBpbnNlcnRpb25Qb2ludC5zZWxlY3Rpb25JbmRleCxcbiAgICAgIH0pLFxuICAgIH0sXG4gIH07XG5cbiAgLy8gT25seSBhZGQgb3B0aW9uYWwgZmllbGRzIGlmIHRoZXkgaGF2ZSB2YWx1ZXNcbiAgaWYgKHBhcmVudEluc2VydGlvblBvaW50KSB7XG4gICAgcmVzdWx0LnBhcmVudEluc2VydGlvblBvaW50ID0gcGFyZW50SW5zZXJ0aW9uUG9pbnQ7XG4gIH1cbiAgaWYgKGdyaWRJbnNlcnRpb25UeXBlKSB7XG4gICAgcmVzdWx0LmdyaWRJbnNlcnRpb25UeXBlID0gZ3JpZEluc2VydGlvblR5cGU7XG4gIH1cbiAgaWYgKHdyYXBwaW5nRWxlbWVudCkge1xuICAgIHJlc3VsdC53cmFwcGluZ0VsZW1lbnQgPSB3cmFwcGluZ0VsZW1lbnQ7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuZGl2Q2hlY2tTZWxlY3Rvcikge1xuICAgIHJlc3VsdC5kaXZDaGVja1NlbGVjdG9yID0gbm9ybWFsaXplZENvbmZpZy5kaXZDaGVja1NlbGVjdG9yIGFzIHN0cmluZztcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5jbGFzc05hbWUpIHtcbiAgICByZXN1bHQuY2xhc3NOYW1lID0gbm9ybWFsaXplZENvbmZpZy5jbGFzc05hbWUgYXMgc3RyaW5nO1xuICB9XG4gIGlmIChub3JtYWxpemVkQ29uZmlnLnN1cHByZXNzaW9uU2VsZWN0b3IpIHtcbiAgICByZXN1bHQuc3VwcHJlc3Npb25TZWxlY3RvciA9IG5vcm1hbGl6ZWRDb25maWcuc3VwcHJlc3Npb25TZWxlY3RvcjtcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5kYXRhQXR0cmlidXRlcykge1xuICAgIHJlc3VsdC5kYXRhQXR0cmlidXRlcyA9IG5vcm1hbGl6ZWRDb25maWcuZGF0YUF0dHJpYnV0ZXMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgfVxuICBpZiAobm9ybWFsaXplZENvbmZpZy5zdHlsZSkge1xuICAgIHJlc3VsdC5zdHlsZSA9IG5vcm1hbGl6ZWRDb25maWcuc3R5bGUgYXMgUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSBXaWRnZXRDb25maWdRdWVyeURhdGEgdG8gV2lkZ2V0Q29uZmlnXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1XaWRnZXRDb25maWcgPSAoXG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGNvbmZpZ0tleTogc3RyaW5nLFxuKTogV2lkZ2V0Q29uZmlnID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZENvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb25maWcpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy53aWRnZXRDb25maWdJZCAhPT0gJ3N0cmluZycgfHwgIW5vcm1hbGl6ZWRDb25maWcud2lkZ2V0Q29uZmlnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCB3aWRnZXRDb25maWdJZCBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9ybWFsaXplZENvbmZpZy50eXBlICE9PSAnc3RyaW5nJyB8fCAhbm9ybWFsaXplZENvbmZpZy50eXBlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgdHlwZSBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9J2ApO1xuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRDb25maWcuY29udGVudElkICE9IG51bGwgJiYgdHlwZW9mIG5vcm1hbGl6ZWRDb25maWcuY29udGVudElkICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNvbnRlbnRJZCBmb3Igd2lkZ2V0IGNvbmZpZyAnJHtjb25maWdLZXl9Jy4gTXVzdCBiZSBhIHN0cmluZyBvciBudWxsL3VuZGVmaW5lZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIE5vdGU6IFdpZGdldCBjb25maWdzIGFyZSBjb21wbGV4IHVuaW9ucyB3aXRoIHR5cGUtc3BlY2lmaWMgcHJvcGVydGllcy5cblxuICAvLyBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgY29uZmlnIGFzIFdpZGdldENvbmZpZ1xuICAvLyBVc2UgaW50ZXJtZWRpYXRlICd1bmtub3duJyBjYXN0IGZvciBjb21wbGV4IHVuaW9uIHR5cGVzXG4gIHJldHVybiBub3JtYWxpemVkQ29uZmlnIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlR3JhcGhRTEZyb250ZW5kQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBGcm9udGVuZENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBub3QgYW4gb2JqZWN0JywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG9iaiA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLy8gVmFsaWRhdGUgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGlmIHByZXNlbnRcbiAgaWYgKFxuICAgICdtZXJjaGFudF9vdmVycmlkZV9jc3MnIGluIG9iaiAmJlxuICAgIHR5cGVvZiBvYmoubWVyY2hhbnRfb3ZlcnJpZGVfY3NzICE9PSAnc3RyaW5nJyAmJlxuICAgIG9iai5tZXJjaGFudF9vdmVycmlkZV9jc3MgIT09IG51bGxcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBtZXJjaGFudF9vdmVycmlkZV9jc3MgbXVzdCBiZSBhIHN0cmluZyBvciBudWxsJyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHsgZGF0YSB9LFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHBhZ2VfdmFyaWFudHMgaWYgcHJlc2VudFxuICBpZiAoJ3BhZ2VfdmFyaWFudHMnIGluIG9iaikge1xuICAgIGlmIChcbiAgICAgIG9iai5wYWdlX3ZhcmlhbnRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iai5wYWdlX3ZhcmlhbnRzICE9PSBudWxsICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShvYmoucGFnZV92YXJpYW50cylcbiAgICApIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKFxuICAgICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiBwYWdlX3ZhcmlhbnRzIG11c3QgYmUgYW4gYXJyYXkgb3IgbnVsbC91bmRlZmluZWQnLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHsgZGF0YSB9LFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGUgbW91bnRpbmdfY29uZmlncyBpZiBwcmVzZW50XG4gIGlmICgnbW91bnRpbmdfY29uZmlncycgaW4gb2JqKSB7XG4gICAgaWYgKFxuICAgICAgb2JqLm1vdW50aW5nX2NvbmZpZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb2JqLm1vdW50aW5nX2NvbmZpZ3MgIT09IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG9iai5tb3VudGluZ19jb25maWdzKVxuICAgICkge1xuICAgICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAgICdJbnZhbGlkIEdyYXBoUUwgZnJvbnRlbmQgY29uZmlnIGRhdGE6IG1vdW50aW5nX2NvbmZpZ3MgbXVzdCBiZSBhbiBhcnJheSBvciBudWxsL3VuZGVmaW5lZCcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgeyBkYXRhIH0sXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0ZSB3aWRnZXRfY29uZmlncyBpZiBwcmVzZW50XG4gIGlmICgnd2lkZ2V0X2NvbmZpZ3MnIGluIG9iaikge1xuICAgIGlmIChcbiAgICAgIG9iai53aWRnZXRfY29uZmlncyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBvYmoud2lkZ2V0X2NvbmZpZ3MgIT09IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG9iai53aWRnZXRfY29uZmlncylcbiAgICApIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKFxuICAgICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiB3aWRnZXRfY29uZmlncyBtdXN0IGJlIGFuIGFycmF5IG9yIG51bGwvdW5kZWZpbmVkJyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB7IGRhdGEgfSxcbiAgICAgICk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHVpX2NvbmZpZ3MgaWYgcHJlc2VudFxuICBpZiAoJ3VpX2NvbmZpZ3MnIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnVpX2NvbmZpZ3MgIT09ICdvYmplY3QnICYmIG9iai51aV9jb25maWdzICE9PSBudWxsKSB7XG4gICAgTG9nZ2VyLmxvZ1dhcm4oXG4gICAgICAnSW52YWxpZCBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhOiB1aV9jb25maWdzIG11c3QgYmUgYW4gb2JqZWN0IG9yIG51bGwvdW5kZWZpbmVkJyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHsgZGF0YSB9LFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVHJhbnNmb3JtIHRoZSBkYXRhIHRvIGNhbWVsQ2FzZVxuICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChvYmopIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgLy8gQ29udmVydCBwYWdlX3ZhcmlhbnRzIGZyb20gYXJyYXkgdG8gdmFsaWRhdGVkIGFycmF5IGlmIHByZXNlbnRcbiAgICBpZiAodHJhbnNmb3JtZWREYXRhLnBhZ2VWYXJpYW50cyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHMpKSB7XG4gICAgICBjb25zdCBwYWdlVmFyaWFudHNBcnJheSA9IHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHM7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRQYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCB2YXJpYW50IG9mIHBhZ2VWYXJpYW50c0FycmF5KSB7XG4gICAgICAgIGlmICh2YXJpYW50ICYmIHR5cGVvZiB2YXJpYW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFyaWFudC52YXJpYW50SWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhcmlhbnQgPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50KTtcbiAgICAgICAgICAgIHZhbGlkYXRlZFBhZ2VWYXJpYW50cy5wdXNoKHZhbGlkYXRlZFZhcmlhbnQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBwYWdlIHZhcmlhbnQsIHNraXBwaW5nJywgZXJyb3IsIHtcbiAgICAgICAgICAgICAgdmFyaWFudElkOiB2YXJpYW50LnZhcmlhbnRJZCxcbiAgICAgICAgICAgICAgdmFyaWFudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQ29udGludWUgcHJvY2Vzc2luZyBvdGhlciB2YXJpYW50c1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBwYWdlIHZhcmlhbnQgc3RydWN0dXJlLCBza2lwcGluZycsIHVuZGVmaW5lZCwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybWVkRGF0YS5wYWdlVmFyaWFudHMgPSB2YWxpZGF0ZWRQYWdlVmFyaWFudHM7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBtb3VudGluZ19jb25maWdzIGZyb20gYXJyYXkgdG8gUmVjb3JkIGlmIHByZXNlbnRcbiAgICBpZiAodHJhbnNmb3JtZWREYXRhLm1vdW50aW5nQ29uZmlncyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS5tb3VudGluZ0NvbmZpZ3MpKSB7XG4gICAgICBjb25zdCBtb3VudGluZ0NvbmZpZ3NBcnJheSA9IHRyYW5zZm9ybWVkRGF0YS5tb3VudGluZ0NvbmZpZ3MgYXMgQXJyYXk8e1xuICAgICAgICBrZXk6IHN0cmluZztcbiAgICAgICAgY29uZmlnOiB1bmtub3duO1xuICAgICAgfT47XG4gICAgICBjb25zdCBtb3VudGluZ0NvbmZpZ3NSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPiA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbW91bnRpbmdDb25maWdzQXJyYXkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGl0ZW0gJiZcbiAgICAgICAgICB0eXBlb2YgaXRlbS5rZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgaXRlbS5jb25maWcgJiZcbiAgICAgICAgICB0eXBlb2YgaXRlbS5jb25maWcgPT09ICdvYmplY3QnXG4gICAgICAgICkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBWYWxpZGF0ZSBhbmQgdHJhbnNmb3JtIHRoZSBjb25maWcgc3RydWN0dXJlXG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBpdGVtLmNvbmZpZyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBpdGVtLmtleSk7XG4gICAgICAgICAgICBtb3VudGluZ0NvbmZpZ3NSZWNvcmRbaXRlbS5rZXldID0gdmFsaWRhdGVkQ29uZmlnO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCBtb3VudGluZyBjb25maWcsIHNraXBwaW5nJywgZXJyb3IsIHtcbiAgICAgICAgICAgICAgY29uZmlnS2V5OiBpdGVtLmtleSxcbiAgICAgICAgICAgICAgY29uZmlnOiBpdGVtLmNvbmZpZyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQ29udGludWUgcHJvY2Vzc2luZyBvdGhlciBjb25maWdzXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIExvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZyBpdGVtIHN0cnVjdHVyZSwgc2tpcHBpbmcnLCB1bmRlZmluZWQsIHsgaXRlbSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0cmFuc2Zvcm1lZERhdGEubW91bnRpbmdDb25maWdzID0gbW91bnRpbmdDb25maWdzUmVjb3JkO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgd2lkZ2V0X2NvbmZpZ3MgZnJvbSBhcnJheSB0byBSZWNvcmQgaWYgcHJlc2VudFxuICAgIGlmICh0cmFuc2Zvcm1lZERhdGEud2lkZ2V0Q29uZmlncyAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVkRGF0YS53aWRnZXRDb25maWdzKSkge1xuICAgICAgY29uc3Qgd2lkZ2V0Q29uZmlnc0FycmF5ID0gdHJhbnNmb3JtZWREYXRhLndpZGdldENvbmZpZ3MgYXMgQXJyYXk8e1xuICAgICAgICBrZXk6IHN0cmluZztcbiAgICAgICAgY29uZmlnOiB1bmtub3duO1xuICAgICAgfT47XG4gICAgICBjb25zdCB3aWRnZXRDb25maWdzUmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygd2lkZ2V0Q29uZmlnc0FycmF5KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpdGVtICYmXG4gICAgICAgICAgdHlwZW9mIGl0ZW0ua2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgIGl0ZW0uY29uZmlnICYmXG4gICAgICAgICAgdHlwZW9mIGl0ZW0uY29uZmlnID09PSAnb2JqZWN0J1xuICAgICAgICApIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gVmFsaWRhdGUgYW5kIHRyYW5zZm9ybSB3aWRnZXQgY29uZmlnIHVzaW5nIHRoZSBkZWRpY2F0ZWQgdmFsaWRhdGlvbiBmdW5jdGlvblxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gaXRlbS5jb25maWcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRDb25maWcgPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybVdpZGdldENvbmZpZyhjb25maWcsIGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ3NSZWNvcmRbaXRlbS5rZXldID0gdmFsaWRhdGVkQ29uZmlnO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCB3aWRnZXQgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7XG4gICAgICAgICAgICAgIGNvbmZpZ0tleTogaXRlbS5rZXksXG4gICAgICAgICAgICAgIGNvbmZpZzogaXRlbS5jb25maWcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIENvbnRpbnVlIHByb2Nlc3Npbmcgb3RoZXIgY29uZmlnc1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBMb2dnZXIubG9nV2FybignSW52YWxpZCB3aWRnZXQgY29uZmlnIGl0ZW0gc3RydWN0dXJlLCBza2lwcGluZycsIHVuZGVmaW5lZCwgeyBpdGVtIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybWVkRGF0YS53aWRnZXRDb25maWdzID0gd2lkZ2V0Q29uZmlnc1JlY29yZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZWREYXRhIGFzIEZyb250ZW5kQ29uZmlnO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIExvZ2dlci5sb2dXYXJuKCdGYWlsZWQgdG8gdmFsaWRhdGUgYW5kIHRyYW5zZm9ybSBHcmFwaFFMIGZyb250ZW5kIGNvbmZpZyBkYXRhJywgZXJyb3IsIHtcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWFBLE1BQWEsb0NBQ1gsV0FDc0I7Q0FHdEIsTUFBTSxFQUFFLGVBQWUsZ0JBQWdCLEdBQUcsU0FGdEIsc0JBQXNCLE9BQU87Q0FLakQsTUFBTSxlQUFlLE1BQU0sUUFBUSxjQUFjLEdBQzdDLGNBQWMsS0FBSyxFQUFFLFdBQVcsR0FBRyxpQkFBaUI7RUFDbEQsR0FBRztFQUNILFVBQVU7RUFDWCxFQUFFLEdBQ0gsRUFBRTtDQUdOLE1BQU0sMkJBQTJCLE1BQU0sUUFBUSxlQUFlLEdBQzFELGVBQWUsS0FBSyxFQUFFLHNCQUFzQixHQUFHLG9CQUFvQjtFQUNqRSxHQUFHO0VBQ0gsR0FBSSxNQUFNLFFBQVEscUJBQXFCLEdBQ25DLEVBQ0Usc0JBQXNCLHFCQUFxQixLQUFLLEVBQUUsUUFBUSxHQUFHLGtCQUFrQjtHQUM3RSxHQUFHO0dBQ0gsT0FBTyxNQUFNLFFBQVEsT0FBTyxHQUN4QixPQUFPLEtBQUssRUFBRSxXQUFXLEdBQUcsaUJBQWlCO0lBQzNDLEdBQUc7SUFDSCxVQUFVO0lBQ1gsRUFBRSxHQUNILEVBQUU7R0FDUCxFQUFFLEVBQ0osR0FDRCxFQUFFO0VBQ1AsRUFBRSxHQUNILEVBQUU7Q0FFTixNQUFNQSxtQkFBNEM7RUFDaEQsR0FBRztFQUNILEdBQUksZUFBZSxFQUFFLGNBQWMsR0FBRyxFQUFFO0VBQ3hDLEdBQUksMkJBQTJCLEVBQUUsZ0JBQWdCLDBCQUEwQixHQUFHLEVBQUU7RUFDakY7Q0FFRCxNQUFNLFlBQVksaUJBQWlCO0NBQ25DLE1BQU0sY0FBYyxpQkFBaUI7QUFFckMsS0FBSSxPQUFPLGNBQWMsWUFBWSxDQUFDLFVBQ3BD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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
const require_logger = require('../logging/logger.cjs');
|
|
1
2
|
const require_isBaseEcommerceEvent = require('../models/guards/isBaseEcommerceEvent.cjs');
|
|
2
3
|
const require_isGA4EcommerceEvent = require('../models/guards/isGA4EcommerceEvent.cjs');
|
|
3
4
|
const require_isLegacyUAEcommerceEvent = require('../models/guards/isLegacyUAEcommerceEvent.cjs');
|
|
4
|
-
const require_logger = require('../logging/logger.cjs');
|
|
5
5
|
require('../models/index.cjs');
|
|
6
6
|
const require_amplitudeContext = require('../../contexts/amplitudeContext/amplitudeContext.cjs');
|
|
7
7
|
|
|
@@ -85,4 +85,4 @@ const initAmplitude = (track) => {
|
|
|
85
85
|
//#endregion
|
|
86
86
|
exports.initAmplitude = initAmplitude;
|
|
87
87
|
exports.initDataLayerWrapper = initDataLayerWrapper;
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzVXRpbHMuY2pzIiwibmFtZXMiOlsiZXZlbnRQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4iLCJpc0xlZ2FjeVVBRWNvbW1lcmNlRXZlbnQiLCJpc0dBNEVjb21tZXJjZUV2ZW50IiwiU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSIsImlzQmFzZUVjb21tZXJjZUV2ZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2FuYWx5dGljc1V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIEJhc2VFY29tbWVyY2VFdmVudCxcbiAgaXNCYXNlRWNvbW1lcmNlRXZlbnQsXG4gIGlzR0E0RWNvbW1lcmNlRXZlbnQsXG4gIGlzTGVnYWN5VUFFY29tbWVyY2VFdmVudCxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQvYW1wbGl0dWRlQ29udGV4dCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgZGF0YUxheWVyOiBhbnlbXTtcbiAgfVxufVxuXG5jb25zdCBOT1JNQUxJWkVEX0FERF9UT19DQVJUX0VWRU5UX05BTUVTID0gWydhZGR0b2NhcnQnLCAnYWRkZWR0b2NhcnQnXTtcbmNvbnN0IENIRUNLX0RBVEFfTEFZRVJfSU5URVJWQUxfTVMgPSA1MDA7XG5jb25zdCBDSEVDS19EQVRBX0xBWUVSX01BWF9BVFRFTVBUUyA9IDEwO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIEdvb2dsZSBBbmFseXRpY3MgZXZlbnQgaXMgYW4gYWRkX3RvX2NhcnQgZXZlbnQuXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBuYW1lIHRvIGNoZWNrLlxuICpcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGV2ZW50IGlzIGFuIGFkZF90b19jYXJ0IGV2ZW50LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmNvbnN0IGlzQWRkVG9DYXJ0RXZlbnQgPSAoZXZlbnQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkRXZlbnQgPSBldmVudC5yZXBsYWNlKC9bLV9dL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gTk9STUFMSVpFRF9BRERfVE9fQ0FSVF9FVkVOVF9OQU1FUy5zb21lKG5hbWUgPT4gbm9ybWFsaXplZEV2ZW50LmluY2x1ZGVzKG5hbWUpKTtcbn07XG5cbi8qKlxuICogVHJhY2tzIGFuIGFkZF90b19jYXJ0IGV2ZW50IGluIEFtcGxpdHVkZS5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IHRvIHRyYWNrLlxuICovXG5jb25zdCBoYW5kbGVBZGRUb0NhcnRFdmVudCA9IChcbiAgZXZlbnQ6IEJhc2VFY29tbWVyY2VFdmVudCxcbiAgdHJhY2s6IChldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZCxcbikgPT4ge1xuICBsZXQgZXZlbnRQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgaWYgKGlzTGVnYWN5VUFFY29tbWVyY2VFdmVudChldmVudCkpIHtcbiAgICBldmVudFByb3BzID0ge1xuICAgICAgaXRlbXM6IGV2ZW50LmVjb21tZXJjZS5hZGQucHJvZHVjdHMubWFwKHByb2R1Y3QgPT4gKHtcbiAgICAgICAgaXRlbV9uYW1lOiBwcm9kdWN0Lm5hbWUsXG4gICAgICAgIGl0ZW1fY2F0ZWdvcnk6IHByb2R1Y3QuY2F0ZWdvcnksXG4gICAgICAgIHByaWNlOiBwcm9kdWN0LnByaWNlLFxuICAgICAgICBxdWFudGl0eTogcHJvZHVjdC5xdWFudGl0eSxcbiAgICAgIH0pKSxcbiAgICAgIGN1cnJlbmN5OiBldmVudC5lY29tbWVyY2UuYWRkLmN1cnJlbmN5Q29kZSxcbiAgICAgIGV2ZW50X2Zvcm1hdF92ZXJzaW9uOiAnbGVnYWN5X3VuaXZlcnNhbF9hbmFseXRpY3MnLFxuICAgIH07XG4gIH0gZWxzZSBpZiAoaXNHQTRFY29tbWVyY2VFdmVudChldmVudCkpIHtcbiAgICBldmVudFByb3BzID0ge1xuICAgICAgaXRlbXM6IGV2ZW50LmVjb21tZXJjZS5pdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpdGVtX25hbWU6IGl0ZW0uaXRlbV9uYW1lLFxuICAgICAgICBpdGVtX2NhdGVnb3J5OiBpdGVtLml0ZW1fY2F0ZWdvcnksXG4gICAgICAgIHByaWNlOiBpdGVtLnByaWNlLFxuICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eSxcbiAgICAgIH0pKSxcbiAgICAgIGN1cnJlbmN5OiBldmVudC5lY29tbWVyY2UuY3VycmVuY3ksXG4gICAgICBldmVudF9mb3JtYXRfdmVyc2lvbjogJ2dvb2dsZV9hbmFseXRpY3NfNCcsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBldmVudFByb3BzID0ge1xuICAgICAgZXZlbnRfcHJvcGVydGllczogeyAuLi5ldmVudCB9LFxuICAgICAgZXZlbnRfZm9ybWF0X3ZlcnNpb246ICd1bmtub3duJyxcbiAgICB9O1xuICB9XG5cbiAgdHJhY2soU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5BZGRUb0NhcnRDbGlja2VkLCB7XG4gICAgZXZlbnRQcm9wcyxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFdyYXBzIHRoZSB3aW5kb3cuZGF0YUxheWVyLnB1c2ggbWV0aG9kIHRvIGludGVyY2VwdCBhZGRfdG9fY2FydCBldmVudHMgYW5kIHNlbmQgdGhlbSB0byBBbXBsaXR1ZGUuXG4gKiBUaGlzIGZ1bmN0aW9uIHJ1bnMgb24gYW4gaW50ZXJ2YWwgdW50aWwgdGhlIGRhdGFMYXllciBpcyBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBpbml0RGF0YUxheWVyV3JhcHBlciA9IChcbiAgdHJhY2s6IChldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZCxcbikgPT4ge1xuICBsZXQgYXR0ZW1wdHMgPSAwO1xuXG4gIC8vIGN1cnJlbnRseSwgb3VyIGJ1bmRsZSBpcyBhbHdheXMgbG9hZGVkIGFmdGVyIEdUTSBoYXMgaW5pdGlhbGl6ZWQgR0EvZGF0YUxheWVyXG4gIC8vIHdlJ2xsIG5lZWQgdGhpcyBjaGVjayBoZXJlIGlmL3doZW4gd2UgbG9hZCBzcGlmZnkgYmVmb3JlL291dHNpZGUgb2YgR1RNXG4gIGNvbnN0IGNoZWNrQW5kSW5pdGlhbGl6ZSA9ICgpID0+IHtcbiAgICBpZiAoIXdpbmRvdy5kYXRhTGF5ZXIgfHwgISh3aW5kb3cuZGF0YUxheWVyIGFzIGFueSkucHVzaCkge1xuICAgICAgYXR0ZW1wdHMgKz0gMTtcblxuICAgICAgaWYgKGF0dGVtcHRzID49IENIRUNLX0RBVEFfTEFZRVJfTUFYX0FUVEVNUFRTKSB7XG4gICAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgICBgW3NwaWZmeS1haV0gZGF0YUxheWVyIG5vdCBhdmFpbGFibGUgYWZ0ZXIgJHtDSEVDS19EQVRBX0xBWUVSX01BWF9BVFRFTVBUU30gYXR0ZW1wdHNgLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNldFRpbWVvdXQoY2hlY2tBbmRJbml0aWFsaXplLCBDSEVDS19EQVRBX0xBWUVSX0lOVEVSVkFMX01TKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGRhdGFMYXllciBpcyBhdmFpbGFibGUsIHdyYXBwaW5nIHB1c2ggZnVuY3Rpb24uLi4nKTtcbiAgICBjb25zdCBvcmlnaW5hbFB1c2ggPSB3aW5kb3cuZGF0YUxheWVyLnB1c2g7XG4gICAgd2luZG93LmRhdGFMYXllci5wdXNoID0gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICAgICAgaWYgKGlzQmFzZUVjb21tZXJjZUV2ZW50KGFyZ3NbMF0pICYmIGlzQWRkVG9DYXJ0RXZlbnQoKGFyZ3NbMF0gYXMgYW55KS5ldmVudCkpIHtcbiAgICAgICAgaGFuZGxlQWRkVG9DYXJ0RXZlbnQoYXJnc1swXSBhcyBCYXNlRWNvbW1lcmNlRXZlbnQsIHRyYWNrKTtcbiAgICAgIH1cblxuICAgICAgLy8gSU1QT1JUQU5UOiBjYWxsIHRoZSBvcmlnaW5hbCBwdXNoIG1ldGhvZCBzbyB0aGF0IHRoZSBldmVudCBpcyBzdGlsbCBsb2dnZWQgdG8gR0FcbiAgICAgIHJldHVybiBvcmlnaW5hbFB1c2guYXBwbHkod2luZG93LmRhdGFMYXllciwgYXJncyk7XG4gICAgfTtcbiAgfTtcblxuICBjaGVja0FuZEluaXRpYWxpemUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbml0QW1wbGl0dWRlID0gKFxuICB0cmFjazogKGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkLFxuKSA9PiB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gbWlnaHQgbm90IGJlIG5lZWRlZCBhbnltb3JlIGlmIEFtcGxpdHVkZSBpcyBpbml0aWFsaXplZCB2aWEgY29udGV4dC5cbiAgLy8gRm9yIG5vdywgd2UnbGwga2VlcCBpdCBhbmQgcGFzcyB0aGUgdHJhY2sgZnVuY3Rpb24uXG4gIC8vIElmIGl0J3MgdHJ1bHkgcmVkdW5kYW50LCBpdCBjYW4gYmUgcmVtb3ZlZCBsYXRlci5cbiAgdHJhY2soU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5CdW5kbGVMb2FkZWQpOyAvLyBFeGFtcGxlIHVzYWdlLCBhZGp1c3QgYXMgbmVlZGVkXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWVBLE1BQU0scUNBQXFDLENBQUMsYUFBYSxjQUFjO0FBQ3ZFLE1BQU0sK0JBQStCO0FBQ3JDLE1BQU0sZ0NBQWdDOzs7Ozs7OztBQVN0QyxNQUFNLG9CQUFvQixVQUEyQjtDQUNuRCxNQUFNLGtCQUFrQixNQUFNLFFBQVEsU0FBUyxHQUFHLENBQUMsYUFBYTtBQUNoRSxRQUFPLG1DQUFtQyxNQUFLLFNBQVEsZ0JBQWdCLFNBQVMsS0FBSyxDQUFDOzs7Ozs7O0FBUXhGLE1BQU0sd0JBQ0osT0FDQSxVQUNHO0NBQ0gsSUFBSUE7QUFFSixLQUFJQywwREFBeUIsTUFBTSxDQUNqQyxjQUFhO0VBQ1gsT0FBTyxNQUFNLFVBQVUsSUFBSSxTQUFTLEtBQUksYUFBWTtHQUNsRCxXQUFXLFFBQVE7R0FDbkIsZUFBZSxRQUFRO0dBQ3ZCLE9BQU8sUUFBUTtHQUNmLFVBQVUsUUFBUTtHQUNuQixFQUFFO0VBQ0gsVUFBVSxNQUFNLFVBQVUsSUFBSTtFQUM5QixzQkFBc0I7RUFDdkI7VUFDUUMsZ0RBQW9CLE1BQU0sQ0FDbkMsY0FBYTtFQUNYLE9BQU8sTUFBTSxVQUFVLE1BQU0sS0FBSSxVQUFTO0dBQ3hDLFdBQVcsS0FBSztHQUNoQixlQUFlLEtBQUs7R0FDcEIsT0FBTyxLQUFLO0dBQ1osVUFBVSxLQUFLO0dBQ2hCLEVBQUU7RUFDSCxVQUFVLE1BQU0sVUFBVTtFQUMxQixzQkFBc0I7RUFDdkI7S0FFRCxjQUFhO0VBQ1gsa0JBQWtCLEVBQUUsR0FBRyxPQUFPO0VBQzlCLHNCQUFzQjtFQUN2QjtBQUdILE9BQU1DLGdEQUF1QixrQkFBa0IsRUFDN0MsWUFDRCxDQUFDOzs7Ozs7QUFPSixNQUFhLHdCQUNYLFVBQ0c7Q0FDSCxJQUFJLFdBQVc7Q0FJZixNQUFNLDJCQUEyQjtBQUMvQixNQUFJLENBQUMsT0FBTyxhQUFhLENBQUUsT0FBTyxVQUFrQixNQUFNO0FBQ3hELGVBQVk7QUFFWixPQUFJLFlBQVksK0JBQStCO0FBQzdDLDJCQUFPLFNBQ0wsNkNBQTZDLDhCQUE4QixXQUM1RTtBQUNEOztBQUdGLGNBQVcsb0JBQW9CLDZCQUE2QjtBQUM1RDs7QUFHRix5QkFBTyxTQUFTLGdFQUFnRTtFQUNoRixNQUFNLGVBQWUsT0FBTyxVQUFVO0FBQ3RDLFNBQU8sVUFBVSxRQUFRLEdBQUcsU0FBb0I7QUFDOUMsT0FBSUMsa0RBQXFCLEtBQUssR0FBRyxJQUFJLGlCQUFrQixLQUFLLEdBQVcsTUFBTSxDQUMzRSxzQkFBcUIsS0FBSyxJQUEwQixNQUFNO0FBSTVELFVBQU8sYUFBYSxNQUFNLE9BQU8sV0FBVyxLQUFLOzs7QUFJckQscUJBQW9COztBQUd0QixNQUFhLGlCQUNYLFVBQ0c7QUFJSCxPQUFNRCxnREFBdUIsYUFBYSJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import logger_default from "../logging/logger.js";
|
|
1
2
|
import { isBaseEcommerceEvent } from "../models/guards/isBaseEcommerceEvent.js";
|
|
2
3
|
import { isGA4EcommerceEvent } from "../models/guards/isGA4EcommerceEvent.js";
|
|
3
4
|
import { isLegacyUAEcommerceEvent } from "../models/guards/isLegacyUAEcommerceEvent.js";
|
|
4
|
-
import logger_default from "../logging/logger.js";
|
|
5
5
|
import "../models/index.js";
|
|
6
6
|
import { SpiffyMetricsEventName } from "../../contexts/amplitudeContext/amplitudeContext.js";
|
|
7
7
|
|
|
@@ -84,4 +84,4 @@ const initAmplitude = (track) => {
|
|
|
84
84
|
|
|
85
85
|
//#endregion
|
|
86
86
|
export { initAmplitude, initDataLayerWrapper };
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzVXRpbHMuanMiLCJuYW1lcyI6WyJldmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9hbmFseXRpY3NVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBCYXNlRWNvbW1lcmNlRXZlbnQsXG4gIGlzQmFzZUVjb21tZXJjZUV2ZW50LFxuICBpc0dBNEVjb21tZXJjZUV2ZW50LFxuICBpc0xlZ2FjeVVBRWNvbW1lcmNlRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIGRhdGFMYXllcjogYW55W107XG4gIH1cbn1cblxuY29uc3QgTk9STUFMSVpFRF9BRERfVE9fQ0FSVF9FVkVOVF9OQU1FUyA9IFsnYWRkdG9jYXJ0JywgJ2FkZGVkdG9jYXJ0J107XG5jb25zdCBDSEVDS19EQVRBX0xBWUVSX0lOVEVSVkFMX01TID0gNTAwO1xuY29uc3QgQ0hFQ0tfREFUQV9MQVlFUl9NQVhfQVRURU1QVFMgPSAxMDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBHb29nbGUgQW5hbHl0aWNzIGV2ZW50IGlzIGFuIGFkZF90b19jYXJ0IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgbmFtZSB0byBjaGVjay5cbiAqXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBldmVudCBpcyBhbiBhZGRfdG9fY2FydCBldmVudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5jb25zdCBpc0FkZFRvQ2FydEV2ZW50ID0gKGV2ZW50OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZEV2ZW50ID0gZXZlbnQucmVwbGFjZSgvWy1fXS9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIE5PUk1BTElaRURfQUREX1RPX0NBUlRfRVZFTlRfTkFNRVMuc29tZShuYW1lID0+IG5vcm1hbGl6ZWRFdmVudC5pbmNsdWRlcyhuYW1lKSk7XG59O1xuXG4vKipcbiAqIFRyYWNrcyBhbiBhZGRfdG9fY2FydCBldmVudCBpbiBBbXBsaXR1ZGUuXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0byB0cmFjay5cbiAqL1xuY29uc3QgaGFuZGxlQWRkVG9DYXJ0RXZlbnQgPSAoXG4gIGV2ZW50OiBCYXNlRWNvbW1lcmNlRXZlbnQsXG4gIHRyYWNrOiAoZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCBldmVudFByb3BzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQsXG4pID0+IHtcbiAgbGV0IGV2ZW50UHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGlmIChpc0xlZ2FjeVVBRWNvbW1lcmNlRXZlbnQoZXZlbnQpKSB7XG4gICAgZXZlbnRQcm9wcyA9IHtcbiAgICAgIGl0ZW1zOiBldmVudC5lY29tbWVyY2UuYWRkLnByb2R1Y3RzLm1hcChwcm9kdWN0ID0+ICh7XG4gICAgICAgIGl0ZW1fbmFtZTogcHJvZHVjdC5uYW1lLFxuICAgICAgICBpdGVtX2NhdGVnb3J5OiBwcm9kdWN0LmNhdGVnb3J5LFxuICAgICAgICBwcmljZTogcHJvZHVjdC5wcmljZSxcbiAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHksXG4gICAgICB9KSksXG4gICAgICBjdXJyZW5jeTogZXZlbnQuZWNvbW1lcmNlLmFkZC5jdXJyZW5jeUNvZGUsXG4gICAgICBldmVudF9mb3JtYXRfdmVyc2lvbjogJ2xlZ2FjeV91bml2ZXJzYWxfYW5hbHl0aWNzJyxcbiAgICB9O1xuICB9IGVsc2UgaWYgKGlzR0E0RWNvbW1lcmNlRXZlbnQoZXZlbnQpKSB7XG4gICAgZXZlbnRQcm9wcyA9IHtcbiAgICAgIGl0ZW1zOiBldmVudC5lY29tbWVyY2UuaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgaXRlbV9uYW1lOiBpdGVtLml0ZW1fbmFtZSxcbiAgICAgICAgaXRlbV9jYXRlZ29yeTogaXRlbS5pdGVtX2NhdGVnb3J5LFxuICAgICAgICBwcmljZTogaXRlbS5wcmljZSxcbiAgICAgICAgcXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHksXG4gICAgICB9KSksXG4gICAgICBjdXJyZW5jeTogZXZlbnQuZWNvbW1lcmNlLmN1cnJlbmN5LFxuICAgICAgZXZlbnRfZm9ybWF0X3ZlcnNpb246ICdnb29nbGVfYW5hbHl0aWNzXzQnLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZXZlbnRQcm9wcyA9IHtcbiAgICAgIGV2ZW50X3Byb3BlcnRpZXM6IHsgLi4uZXZlbnQgfSxcbiAgICAgIGV2ZW50X2Zvcm1hdF92ZXJzaW9uOiAndW5rbm93bicsXG4gICAgfTtcbiAgfVxuXG4gIHRyYWNrKFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQWRkVG9DYXJ0Q2xpY2tlZCwge1xuICAgIGV2ZW50UHJvcHMsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBXcmFwcyB0aGUgd2luZG93LmRhdGFMYXllci5wdXNoIG1ldGhvZCB0byBpbnRlcmNlcHQgYWRkX3RvX2NhcnQgZXZlbnRzIGFuZCBzZW5kIHRoZW0gdG8gQW1wbGl0dWRlLlxuICogVGhpcyBmdW5jdGlvbiBydW5zIG9uIGFuIGludGVydmFsIHVudGlsIHRoZSBkYXRhTGF5ZXIgaXMgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgY29uc3QgaW5pdERhdGFMYXllcldyYXBwZXIgPSAoXG4gIHRyYWNrOiAoZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCBldmVudFByb3BzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQsXG4pID0+IHtcbiAgbGV0IGF0dGVtcHRzID0gMDtcblxuICAvLyBjdXJyZW50bHksIG91ciBidW5kbGUgaXMgYWx3YXlzIGxvYWRlZCBhZnRlciBHVE0gaGFzIGluaXRpYWxpemVkIEdBL2RhdGFMYXllclxuICAvLyB3ZSdsbCBuZWVkIHRoaXMgY2hlY2sgaGVyZSBpZi93aGVuIHdlIGxvYWQgc3BpZmZ5IGJlZm9yZS9vdXRzaWRlIG9mIEdUTVxuICBjb25zdCBjaGVja0FuZEluaXRpYWxpemUgPSAoKSA9PiB7XG4gICAgaWYgKCF3aW5kb3cuZGF0YUxheWVyIHx8ICEod2luZG93LmRhdGFMYXllciBhcyBhbnkpLnB1c2gpIHtcbiAgICAgIGF0dGVtcHRzICs9IDE7XG5cbiAgICAgIGlmIChhdHRlbXB0cyA+PSBDSEVDS19EQVRBX0xBWUVSX01BWF9BVFRFTVBUUykge1xuICAgICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgICAgYFtzcGlmZnktYWldIGRhdGFMYXllciBub3QgYXZhaWxhYmxlIGFmdGVyICR7Q0hFQ0tfREFUQV9MQVlFUl9NQVhfQVRURU1QVFN9IGF0dGVtcHRzYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KGNoZWNrQW5kSW5pdGlhbGl6ZSwgQ0hFQ0tfREFUQV9MQVlFUl9JTlRFUlZBTF9NUyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBkYXRhTGF5ZXIgaXMgYXZhaWxhYmxlLCB3cmFwcGluZyBwdXNoIGZ1bmN0aW9uLi4uJyk7XG4gICAgY29uc3Qgb3JpZ2luYWxQdXNoID0gd2luZG93LmRhdGFMYXllci5wdXNoO1xuICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCA9ICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICAgIGlmIChpc0Jhc2VFY29tbWVyY2VFdmVudChhcmdzWzBdKSAmJiBpc0FkZFRvQ2FydEV2ZW50KChhcmdzWzBdIGFzIGFueSkuZXZlbnQpKSB7XG4gICAgICAgIGhhbmRsZUFkZFRvQ2FydEV2ZW50KGFyZ3NbMF0gYXMgQmFzZUVjb21tZXJjZUV2ZW50LCB0cmFjayk7XG4gICAgICB9XG5cbiAgICAgIC8vIElNUE9SVEFOVDogY2FsbCB0aGUgb3JpZ2luYWwgcHVzaCBtZXRob2Qgc28gdGhhdCB0aGUgZXZlbnQgaXMgc3RpbGwgbG9nZ2VkIHRvIEdBXG4gICAgICByZXR1cm4gb3JpZ2luYWxQdXNoLmFwcGx5KHdpbmRvdy5kYXRhTGF5ZXIsIGFyZ3MpO1xuICAgIH07XG4gIH07XG5cbiAgY2hlY2tBbmRJbml0aWFsaXplKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5pdEFtcGxpdHVkZSA9IChcbiAgdHJhY2s6IChldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZCxcbikgPT4ge1xuICAvLyBUaGlzIGZ1bmN0aW9uIG1pZ2h0IG5vdCBiZSBuZWVkZWQgYW55bW9yZSBpZiBBbXBsaXR1ZGUgaXMgaW5pdGlhbGl6ZWQgdmlhIGNvbnRleHQuXG4gIC8vIEZvciBub3csIHdlJ2xsIGtlZXAgaXQgYW5kIHBhc3MgdGhlIHRyYWNrIGZ1bmN0aW9uLlxuICAvLyBJZiBpdCdzIHRydWx5IHJlZHVuZGFudCwgaXQgY2FuIGJlIHJlbW92ZWQgbGF0ZXIuXG4gIHRyYWNrKFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQnVuZGxlTG9hZGVkKTsgLy8gRXhhbXBsZSB1c2FnZSwgYWRqdXN0IGFzIG5lZWRlZFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFlQSxNQUFNLHFDQUFxQyxDQUFDLGFBQWEsY0FBYztBQUN2RSxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLGdDQUFnQzs7Ozs7Ozs7QUFTdEMsTUFBTSxvQkFBb0IsVUFBMkI7Q0FDbkQsTUFBTSxrQkFBa0IsTUFBTSxRQUFRLFNBQVMsR0FBRyxDQUFDLGFBQWE7QUFDaEUsUUFBTyxtQ0FBbUMsTUFBSyxTQUFRLGdCQUFnQixTQUFTLEtBQUssQ0FBQzs7Ozs7OztBQVF4RixNQUFNLHdCQUNKLE9BQ0EsVUFDRztDQUNILElBQUlBO0FBRUosS0FBSSx5QkFBeUIsTUFBTSxDQUNqQyxjQUFhO0VBQ1gsT0FBTyxNQUFNLFVBQVUsSUFBSSxTQUFTLEtBQUksYUFBWTtHQUNsRCxXQUFXLFFBQVE7R0FDbkIsZUFBZSxRQUFRO0dBQ3ZCLE9BQU8sUUFBUTtHQUNmLFVBQVUsUUFBUTtHQUNuQixFQUFFO0VBQ0gsVUFBVSxNQUFNLFVBQVUsSUFBSTtFQUM5QixzQkFBc0I7RUFDdkI7VUFDUSxvQkFBb0IsTUFBTSxDQUNuQyxjQUFhO0VBQ1gsT0FBTyxNQUFNLFVBQVUsTUFBTSxLQUFJLFVBQVM7R0FDeEMsV0FBVyxLQUFLO0dBQ2hCLGVBQWUsS0FBSztHQUNwQixPQUFPLEtBQUs7R0FDWixVQUFVLEtBQUs7R0FDaEIsRUFBRTtFQUNILFVBQVUsTUFBTSxVQUFVO0VBQzFCLHNCQUFzQjtFQUN2QjtLQUVELGNBQWE7RUFDWCxrQkFBa0IsRUFBRSxHQUFHLE9BQU87RUFDOUIsc0JBQXNCO0VBQ3ZCO0FBR0gsT0FBTSx1QkFBdUIsa0JBQWtCLEVBQzdDLFlBQ0QsQ0FBQzs7Ozs7O0FBT0osTUFBYSx3QkFDWCxVQUNHO0NBQ0gsSUFBSSxXQUFXO0NBSWYsTUFBTSwyQkFBMkI7QUFDL0IsTUFBSSxDQUFDLE9BQU8sYUFBYSxDQUFFLE9BQU8sVUFBa0IsTUFBTTtBQUN4RCxlQUFZO0FBRVosT0FBSSxZQUFZLCtCQUErQjtBQUM3QyxtQkFBTyxTQUNMLDZDQUE2Qyw4QkFBOEIsV0FDNUU7QUFDRDs7QUFHRixjQUFXLG9CQUFvQiw2QkFBNkI7QUFDNUQ7O0FBR0YsaUJBQU8sU0FBUyxnRUFBZ0U7RUFDaEYsTUFBTSxlQUFlLE9BQU8sVUFBVTtBQUN0QyxTQUFPLFVBQVUsUUFBUSxHQUFHLFNBQW9CO0FBQzlDLE9BQUkscUJBQXFCLEtBQUssR0FBRyxJQUFJLGlCQUFrQixLQUFLLEdBQVcsTUFBTSxDQUMzRSxzQkFBcUIsS0FBSyxJQUEwQixNQUFNO0FBSTVELFVBQU8sYUFBYSxNQUFNLE9BQU8sV0FBVyxLQUFLOzs7QUFJckQscUJBQW9COztBQUd0QixNQUFhLGlCQUNYLFVBQ0c7QUFJSCxPQUFNLHVCQUF1QixhQUFhIn0=
|
|
@@ -84,4 +84,4 @@ var DOMObserver = class {
|
|
|
84
84
|
|
|
85
85
|
//#endregion
|
|
86
86
|
exports.DOMObserver = DOMObserver;
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXIuY2pzIiwibmFtZXMiOlsiRWxlbWVudE9ic2VydmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2RvbU9ic2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRPYnNlcnZlciB9IGZyb20gJy4vZWxlbWVudE9ic2VydmVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1hbmFnZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgZm9yIHRoZSBgZG9jdW1lbnQuYm9keWAuIEl0IG1vbml0b3JzIG5vZGVzIHRoYXQgYXJlXG4gKiBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIERPTSBhbmQgbm90aWZpZXMgdGhlIG9ic2VydmVycyBmb3IgZWFjaCBvYnNlcnZhYmxlIGVsZW1lbnRcbiAqIHdoZW4gdGhleSBhcmUgcmVhZHkgdG8gYmUgd2F0Y2hlZC5cbiAqXG4gKiBIb3cgdGhhdCB3b3JrczpcbiAqXG4gKiBXaGVuIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBpdCBhdHRhY2hlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCB0byB0aGUgYGRvY3VtZW50LmJvZHlgIGVsZW1lbnQuXG4gKiBBbGwgY2hhbmdlcyB0byBgZG9jdW1lbnQuYm9keWAgYXJlIHRyYWNrZWQgYnkgdGhpcyBvYnNlcnZlci4gV2hlbiBjaGFuZ2VzIGFyZSBkZXRlY3RlZCwgdGhlIGBNdXRhdGlvbk9ic2VydmVyYFxuICogaXRlcmF0ZXMgdGhyb3VnaCBhbGwgYWRkZWQgYW5kIHJlbW92ZWQgbm9kZXMgYW5kIGNoZWNrcyBpZiBlYWNoIG5vZGUgZXhpc3RzIGluIHRoZSBtYWluIG1hcCBvZiBvYnNlcnZhYmxlIGVsZW1lbnRzLlxuICpcbiAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIGl0IG5vdGlmaWVzIHRoZSBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIHRvIHN0YXJ0IG1vbml0b3JpbmcgY2hhbmdlcyBmb3IgdGhhdCBlbGVtZW50LlxuICpcbiAqIFRoZSBwcmltYXJ5IGBNdXRhdGlvbk9ic2VydmVyYCByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgYGRlc3Ryb3lgIGZ1bmN0aW9uIGlzIGNhbGxlZC4gQ2FsbGluZyBgZGVzdHJveWAgd2lsbCBkaXNjb25uZWN0IGFsbFxuICogaW5kaXZpZHVhbCBlbGVtZW50IG9ic2VydmVycyBhbmQgcmVsZWFzZSBhbnkgYXNzb2NpYXRlZCByZXNvdXJjZXMuXG4gKlxuICogVGhlcmUgaXMgbm8gbmVlZCB0byBleHBsaWNpdGx5IGNhbGwgdGhlIGBvYnNlcnZlYCBmdW5jdGlvbi4gSXQgaXMgYXV0b21hdGljYWxseSBpbnZva2VkIHdoZW4gYSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rIGlzIGluc3RhbnRpYXRlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBET01PYnNlcnZlciB7XG4gIHByaXZhdGUgc3RhdGljIGRvY3VtZW50T2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsO1xuXG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT5cbiAgICAgIHJlY29yZC5hZGRlZE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgbm9kZU1hcHBpbmcuZ2V0KG5vZGUpPy5kZXN0cm95KCk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlDaGlsZHJlbkNoYW5nZXMobm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgQXJyYXkuZnJvbShub2RlTWFwcGluZy52YWx1ZXMoKSkuZm9yRWFjaChvYnNlcnZlciA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZU1hcHBpbmcgPSB0aGlzLm1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpO1xuICAgICAgICB0aGlzLm5vdGlmeUFkaXRpb24obXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5UmVtb3ZhbChtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlDaGlsZHJlbkNoYW5nZXMobm9kZU1hcHBpbmcpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGxpc3RlbmVyID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBYSxjQUFiLE1BQXlCOzttQ0FHa0MsSUFBSSxLQUFLOztDQUVsRSxPQUFlLGNBQWMsU0FBMkIsYUFBeUM7QUFDL0YsVUFBUSxTQUFRLFdBQ2QsT0FBTyxXQUFXLFNBQVEsU0FBUTtBQUNoQyxlQUFZLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSztBQUNsQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsY0FBYyxTQUEyQixhQUF5QztBQUMvRixVQUFRLFNBQVEsV0FDZCxPQUFPLGFBQWEsU0FBUSxTQUFRO0FBQ2xDLGVBQVksSUFBSSxLQUFLLEVBQUUsU0FBUztBQUNoQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsc0JBQXNCLGFBQXlDO0FBQzVFLFFBQU0sS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUFDLFNBQVEsYUFBWSxTQUFTLGFBQWEsQ0FBQzs7Q0FHOUUsT0FBZSw4QkFBMEQ7RUFDdkUsTUFBTSw4QkFBYyxJQUFJLEtBQTRCO0FBQ3BELE9BQUssVUFBVSxTQUFRLGFBQVk7R0FDakMsTUFBTSxPQUFPLFNBQVMsU0FBUyxJQUFJLFNBQVMsYUFBYSxFQUFFLE9BQU87QUFDbEUsT0FBSSxLQUNGLGFBQVksSUFBSSxNQUFNLFNBQVM7SUFFakM7QUFDRixTQUFPOztDQUdULE9BQU8sSUFBSSxVQUF5QztFQUNsRCxNQUFNLE9BQU8sU0FBUyxZQUFZO0VBQ2xDLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLEtBQUs7QUFDOUMsTUFBSSxnQkFDRixRQUFPO0FBR1Qsb0JBQWtCLElBQUlBLHdDQUFnQixTQUFTO0FBQy9DLE9BQUssVUFBVSxJQUFJLE1BQU0sZ0JBQWdCO0FBQ3pDLFNBQU87O0NBR1QsT0FBTyxPQUFPLFVBQXdCO0VBQ3BDLE1BQU0sT0FBTyxTQUFTLFlBQVk7QUFDbEMsT0FBSyxVQUFVLElBQUksS0FBSyxFQUFFLFNBQVM7QUFDbkMsT0FBSyxVQUFVLE9BQU8sS0FBSzs7Q0FHN0IsT0FBTyxVQUFVO0FBQ2YsTUFBSSxDQUFDLEtBQUssa0JBQWtCO0FBQzFCLFFBQUssbUJBQW1CLElBQUksa0JBQWlCLGNBQWE7SUFDeEQsTUFBTSxjQUFjLEtBQUssNkJBQTZCO0FBQ3RELFNBQUssY0FBYyxXQUFXLFlBQVk7QUFDMUMsU0FBSyxjQUFjLFdBQVcsWUFBWTtBQUMxQyxTQUFLLHNCQUFzQixZQUFZO0tBQ3ZDO0FBQ0YsUUFBSyxpQkFBaUIsUUFBUSxTQUFTLE1BQU07SUFBRSxXQUFXO0lBQU0sU0FBUztJQUFNLENBQUM7OztDQUlwRixPQUFPLFVBQVU7QUFDZixPQUFLLGtCQUFrQixZQUFZO0FBQ25DLE9BQUssVUFBVSxTQUFRLGFBQVksU0FBUyxTQUFTLENBQUM7QUFDdEQsT0FBSyxVQUFVLE9BQU87QUFDdEIsT0FBSyxtQkFBbUIifQ==
|
|
@@ -84,4 +84,4 @@ var DOMObserver = class {
|
|
|
84
84
|
|
|
85
85
|
//#endregion
|
|
86
86
|
export { DOMObserver };
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2RvbU9ic2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRPYnNlcnZlciB9IGZyb20gJy4vZWxlbWVudE9ic2VydmVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1hbmFnZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgZm9yIHRoZSBgZG9jdW1lbnQuYm9keWAuIEl0IG1vbml0b3JzIG5vZGVzIHRoYXQgYXJlXG4gKiBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIERPTSBhbmQgbm90aWZpZXMgdGhlIG9ic2VydmVycyBmb3IgZWFjaCBvYnNlcnZhYmxlIGVsZW1lbnRcbiAqIHdoZW4gdGhleSBhcmUgcmVhZHkgdG8gYmUgd2F0Y2hlZC5cbiAqXG4gKiBIb3cgdGhhdCB3b3JrczpcbiAqXG4gKiBXaGVuIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBpdCBhdHRhY2hlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCB0byB0aGUgYGRvY3VtZW50LmJvZHlgIGVsZW1lbnQuXG4gKiBBbGwgY2hhbmdlcyB0byBgZG9jdW1lbnQuYm9keWAgYXJlIHRyYWNrZWQgYnkgdGhpcyBvYnNlcnZlci4gV2hlbiBjaGFuZ2VzIGFyZSBkZXRlY3RlZCwgdGhlIGBNdXRhdGlvbk9ic2VydmVyYFxuICogaXRlcmF0ZXMgdGhyb3VnaCBhbGwgYWRkZWQgYW5kIHJlbW92ZWQgbm9kZXMgYW5kIGNoZWNrcyBpZiBlYWNoIG5vZGUgZXhpc3RzIGluIHRoZSBtYWluIG1hcCBvZiBvYnNlcnZhYmxlIGVsZW1lbnRzLlxuICpcbiAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIGl0IG5vdGlmaWVzIHRoZSBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIHRvIHN0YXJ0IG1vbml0b3JpbmcgY2hhbmdlcyBmb3IgdGhhdCBlbGVtZW50LlxuICpcbiAqIFRoZSBwcmltYXJ5IGBNdXRhdGlvbk9ic2VydmVyYCByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgYGRlc3Ryb3lgIGZ1bmN0aW9uIGlzIGNhbGxlZC4gQ2FsbGluZyBgZGVzdHJveWAgd2lsbCBkaXNjb25uZWN0IGFsbFxuICogaW5kaXZpZHVhbCBlbGVtZW50IG9ic2VydmVycyBhbmQgcmVsZWFzZSBhbnkgYXNzb2NpYXRlZCByZXNvdXJjZXMuXG4gKlxuICogVGhlcmUgaXMgbm8gbmVlZCB0byBleHBsaWNpdGx5IGNhbGwgdGhlIGBvYnNlcnZlYCBmdW5jdGlvbi4gSXQgaXMgYXV0b21hdGljYWxseSBpbnZva2VkIHdoZW4gYSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rIGlzIGluc3RhbnRpYXRlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBET01PYnNlcnZlciB7XG4gIHByaXZhdGUgc3RhdGljIGRvY3VtZW50T2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsO1xuXG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT5cbiAgICAgIHJlY29yZC5hZGRlZE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgbm9kZU1hcHBpbmcuZ2V0KG5vZGUpPy5kZXN0cm95KCk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlDaGlsZHJlbkNoYW5nZXMobm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgQXJyYXkuZnJvbShub2RlTWFwcGluZy52YWx1ZXMoKSkuZm9yRWFjaChvYnNlcnZlciA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZU1hcHBpbmcgPSB0aGlzLm1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpO1xuICAgICAgICB0aGlzLm5vdGlmeUFkaXRpb24obXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5UmVtb3ZhbChtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlDaGlsZHJlbkNoYW5nZXMobm9kZU1hcHBpbmcpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGxpc3RlbmVyID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBYSxjQUFiLE1BQXlCOzttQ0FHa0MsSUFBSSxLQUFLOztDQUVsRSxPQUFlLGNBQWMsU0FBMkIsYUFBeUM7QUFDL0YsVUFBUSxTQUFRLFdBQ2QsT0FBTyxXQUFXLFNBQVEsU0FBUTtBQUNoQyxlQUFZLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSztBQUNsQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsY0FBYyxTQUEyQixhQUF5QztBQUMvRixVQUFRLFNBQVEsV0FDZCxPQUFPLGFBQWEsU0FBUSxTQUFRO0FBQ2xDLGVBQVksSUFBSSxLQUFLLEVBQUUsU0FBUztBQUNoQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsc0JBQXNCLGFBQXlDO0FBQzVFLFFBQU0sS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUFDLFNBQVEsYUFBWSxTQUFTLGFBQWEsQ0FBQzs7Q0FHOUUsT0FBZSw4QkFBMEQ7RUFDdkUsTUFBTSw4QkFBYyxJQUFJLEtBQTRCO0FBQ3BELE9BQUssVUFBVSxTQUFRLGFBQVk7R0FDakMsTUFBTSxPQUFPLFNBQVMsU0FBUyxJQUFJLFNBQVMsYUFBYSxFQUFFLE9BQU87QUFDbEUsT0FBSSxLQUNGLGFBQVksSUFBSSxNQUFNLFNBQVM7SUFFakM7QUFDRixTQUFPOztDQUdULE9BQU8sSUFBSSxVQUF5QztFQUNsRCxNQUFNLE9BQU8sU0FBUyxZQUFZO0VBQ2xDLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLEtBQUs7QUFDOUMsTUFBSSxnQkFDRixRQUFPO0FBR1Qsb0JBQWtCLElBQUksZ0JBQWdCLFNBQVM7QUFDL0MsT0FBSyxVQUFVLElBQUksTUFBTSxnQkFBZ0I7QUFDekMsU0FBTzs7Q0FHVCxPQUFPLE9BQU8sVUFBd0I7RUFDcEMsTUFBTSxPQUFPLFNBQVMsWUFBWTtBQUNsQyxPQUFLLFVBQVUsSUFBSSxLQUFLLEVBQUUsU0FBUztBQUNuQyxPQUFLLFVBQVUsT0FBTyxLQUFLOztDQUc3QixPQUFPLFVBQVU7QUFDZixNQUFJLENBQUMsS0FBSyxrQkFBa0I7QUFDMUIsUUFBSyxtQkFBbUIsSUFBSSxrQkFBaUIsY0FBYTtJQUN4RCxNQUFNLGNBQWMsS0FBSyw2QkFBNkI7QUFDdEQsU0FBSyxjQUFjLFdBQVcsWUFBWTtBQUMxQyxTQUFLLGNBQWMsV0FBVyxZQUFZO0FBQzFDLFNBQUssc0JBQXNCLFlBQVk7S0FDdkM7QUFDRixRQUFLLGlCQUFpQixRQUFRLFNBQVMsTUFBTTtJQUFFLFdBQVc7SUFBTSxTQUFTO0lBQU0sQ0FBQzs7O0NBSXBGLE9BQU8sVUFBVTtBQUNmLE9BQUssa0JBQWtCLFlBQVk7QUFDbkMsT0FBSyxVQUFVLFNBQVEsYUFBWSxTQUFTLFNBQVMsQ0FBQztBQUN0RCxPQUFLLFVBQVUsT0FBTztBQUN0QixPQUFLLG1CQUFtQiJ9
|
|
@@ -173,4 +173,4 @@ var ElementObserver = class {
|
|
|
173
173
|
|
|
174
174
|
//#endregion
|
|
175
175
|
exports.ElementObserver = ElementObserver;
|
|
176
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudE9ic2VydmVyLmNqcyIsIm5hbWVzIjpbIk11dGF0aW9uSGVscGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnLi9tb3VzZUV2ZW50VHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQ2hhbmdlKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NDaGFuZ2VGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NBZGRlZChtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQWRkZWQpO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzUmVtb3ZlZChtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzUmVtb3ZlZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNoaWxkTGlzdChtdXRhdGlvblJlY29yZDogTXV0YXRpb25SZWNvcmRbXSkge1xuICAgIGlmICghdGhpcy5hZGRDaGlsZEZuICYmICF0aGlzLnJlbW92ZUNoaWxkRm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDaGlsZExpc3QpLmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvblJlY29yZCA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBYSxrQkFBYixNQUE2QjtDQTZCM0IsWUFBWSxVQUF3QjtBQUNsQyxPQUFLLFdBQVc7QUFDaEIsT0FBSyxXQUFXO0FB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
|
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudE9ic2VydmVyLmNqcyIsIm5hbWVzIjpbIk11dGF0aW9uSGVscGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnLi9tb3VzZUV2ZW50VHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQ2hhbmdlKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NDaGFuZ2VGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NBZGRlZChtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQWRkZWQpO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzUmVtb3ZlZChtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzUmVtb3ZlZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNoaWxkTGlzdChtdXRhdGlvblJlY29yZDogTXV0YXRpb25SZWNvcmRbXSkge1xuICAgIGlmICghdGhpcy5hZGRDaGlsZEZuICYmICF0aGlzLnJlbW92ZUNoaWxkRm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDaGlsZExpc3QpLmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvblJlY29yZCA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZmlyZShldmVudDogTW91c2VFdmVudFR5cGVzKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBNb3VzZUV2ZW50KGV2ZW50LCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgIHZpZXc6IHdpbmRvdyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5vZGVEaXNwbGF5IHx8ICdibG9jayc7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGVEaXNwbGF5ID0gZGlzcGxheSB8fCAnYmxvY2snO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0ZuID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZpb3VzRm4pIHtcbiAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHByZXZpb3VzRm4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5zZXQoZXZlbnQsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVzZXRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0FkZGVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQSxJQUFhLGtCQUFiLE1BQTZCO0NBNkIzQixZQUFZLFVBQXdCO0FBQ2xDLE9BQUss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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MouseEventTypes } from "./mouseEventTypes.cjs";
|
|
2
2
|
import { NodeSelector } from "./nodeSelector.cjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react4 from "react";
|
|
4
4
|
import { ReactElement } from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/application/utils/elementObserver.d.ts
|
|
@@ -48,7 +48,7 @@ declare class ElementObserver {
|
|
|
48
48
|
init(): void;
|
|
49
49
|
watch(node: Node): void;
|
|
50
50
|
destroy(): void;
|
|
51
|
-
render(fn: () => ReactElement):
|
|
51
|
+
render(fn: () => ReactElement): react4.ReactPortal | undefined;
|
|
52
52
|
fire(event: MouseEventTypes): void;
|
|
53
53
|
show(): void;
|
|
54
54
|
hide(): void;
|
|
@@ -172,4 +172,4 @@ var ElementObserver = class {
|
|
|
172
172
|
|
|
173
173
|
//#endregion
|
|
174
174
|
export { ElementObserver };
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudE9ic2VydmVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJy4vbW91c2VFdmVudFR5cGVzJztcbmltcG9ydCB7IE11dGF0aW9uSGVscGVyIH0gZnJvbSAnLi9tdXRhdGlvbkhlbHBlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhlIGBFbGVtZW50T2JzZXJ2ZXJgIGNsYXNzIG1vbml0b3JzIGFsbCBjaGFuZ2VzIHJlbGF0ZWQgdG8gdGhlIHNwZWNpZmljIGVsZW1lbnQgaXQgaXMgcmVzcG9uc2libGUgZm9yLlxuICogSXQgaXMgYXV0b21hdGljYWxseSBpbnN0YW50aWF0ZWQgYnkgdGhlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2ssIHdoaWNoIG1hbmFnZXMgYWxsIGluc3RhbmNlcyBvZiB0aGlzIGNsYXNzLlxuICpcbiAqIEhvdyBpdCB3b3JrczpcbiAqXG4gKiBFYWNoIGluc3RhbmNlIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGhvbGRzIHNldmVyYWwgcGllY2VzIG9mIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIG5vZGUgaXQgaXMgbW9uaXRvcmluZyxcbiAqIHN1Y2ggYXMgdGhlIG5vZGUncyBzZWxlY3RvciBhbmQgaXRzIGBNdXRhdGlvbk9ic2VydmVyYC4gVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgdHJhbnNsYXRpbmcgcmF3IG5vZGVcbiAqIGNoYW5nZXMgaW50byBhIG1vcmUgdXNlci1mcmllbmRseSBmb3JtYXQuIEZvciBleGFtcGxlLCB3aGVuIHRoZSBub2RlIGlzIGFkZGVkIHRvIHRoZSBET00sIHRoZSBgRWxlbWVudE9ic2VydmVyYFxuICogaXMgbm90aWZpZWQgYnkgdGhlIGBET01PYnNlcnZlcmAsIHdoaWNoIHRyaWdnZXJzIHRoZSBgb25BZGRgIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIHRoZSByZXNwZWN0aXZlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpbnN0YW5jZS5cbiAqXG4gKiBJbnN0YW5jZXMgb2YgYEVsZW1lbnRPYnNlcnZlcmAgYXJlIGZ1bGx5IG1hbmFnZWQgYnkgdGhlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2ssIHJlcXVpcmluZyBubyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24uXG4gKiBXaGVuIHRoZSBob29rIGlzIGRlc3Ryb3llZCwgaXRzIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgaXMgYXV0b21hdGljYWxseSByZW1vdmVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEVsZW1lbnRPYnNlcnZlciB7XG4gIHByaXZhdGUgbXV0YXRpb246IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsO1xuXG4gIHByaXZhdGUgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIHByaXZhdGUgc2VsZWN0b3I6IE5vZGVTZWxlY3RvcjtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBNYXA8a2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdD47XG5cbiAgcHJpdmF0ZSBjbGFzc0FkZGVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIGNsYXNzUmVtb3ZlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBub2RlRGlzcGxheTogc3RyaW5nO1xuXG4gIHByaXZhdGUgYWRkRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgY2hhbmdlRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgY2xhc3NDaGFuZ2VGbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBhZGRDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUNoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVzZXRGbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHRoaXMubXV0YXRpb24gPSBudWxsO1xuICAgIHRoaXMubm9kZSA9IG51bGw7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzQWRkZWQgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5ub2RlRGlzcGxheSA9ICdibG9jayc7XG4gICAgdGhpcy5hZGRGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMucmVtb3ZlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNoYW5nZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jbGFzc0NoYW5nZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5hZGRDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlc2V0Rm4gPSAoKSA9PiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZDogTXV0YXRpb25SZWNvcmRbXSkge1xuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NsYXNzKS5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25SZWNvcmQgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoaWxkTGlzdChtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm4odGhpcy5ub2RlKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tdXRhdGlvbi5vYnNlcnZlKG5vZGUsIHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ub2RlID0gbm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHRoaXMuYWRkRm4odGhpcy5ub2RlKTtcbiAgICAgIHRoaXMuYWRkSW5pdGlhbExpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNldEZuKCk7XG4gICAgdGhpcy5yZW1vdmVGbih0aGlzLm5vZGUpO1xuICAgIHRoaXMubXV0YXRpb24/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNsZWFyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmNsYXNzQWRkZWQuY2xlYXIoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZC5jbGVhcigpO1xuICAgIHRoaXMubXV0YXRpb24gPSBudWxsO1xuICAgIHRoaXMubm9kZSA9IG51bGw7XG4gIH1cblxuICByZW5kZXIoZm46ICgpID0+IFJlYWN0RWxlbWVudCkge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHJldHVybiBjcmVhdGVQb3J0YWwoZm4oKSwgdGhpcy5ub2RlKTtcbiAgICB9XG4gIH1cblxuICBmaXJlKGV2ZW50OiBNb3VzZUV2ZW50VHlwZXMpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICB0aGlzLm5vZGUuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IE1vdXNlRXZlbnQoZXZlbnQsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgICAgdmlldzogd2luZG93LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2hvdygpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSA9PT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGUuc3R5bGUuZGlzcGxheSA9IHRoaXMubm9kZURpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICB9XG4gIH1cblxuICBoaWRlKCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ICE9PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZURpc3BsYXkgPSBkaXNwbGF5IHx8ICdibG9jayc7XG4gICAgICB0aGlzLm5vZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG4gIH1cblxuICByZWdpc3RlckV2ZW50KGV2ZW50OiBrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBmbjogRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCkge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzRm4gPSB0aGlzLmV2ZW50TGlzdGVuZXJzLmdldChldmVudCk7XG4gICAgICBpZiAocHJldmlvdXNGbikge1xuICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgcHJldmlvdXNGbik7XG4gICAgICB9XG4gICAgICB0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZm4pO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNldChldmVudCwgZm4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlc2V0KGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZXNldEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGQoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hZGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uY2xhc3NDaGFuZ2UoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0NoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkQ2hpbGQoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hZGRDaGlsZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlQ2hpbGQoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NBZGRlZChjbGFzc05hbWU6IHN0cmluZywgZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQWRkZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzUmVtb3ZlZChjbGFzc05hbWU6IHN0cmluZywgZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBYSxrQkFBYixNQUE2QjtDQTZCM0IsWUFBWSxVQUF3QjtBQUNsQyxPQUFLLFdBQVc7QUFDaEIsT0FBSyxXQUFXO0FBQ2hCLE9BQUssT0FBTztBQUNa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
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudE9ic2VydmVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJy4vbW91c2VFdmVudFR5cGVzJztcbmltcG9ydCB7IE11dGF0aW9uSGVscGVyIH0gZnJvbSAnLi9tdXRhdGlvbkhlbHBlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhlIGBFbGVtZW50T2JzZXJ2ZXJgIGNsYXNzIG1vbml0b3JzIGFsbCBjaGFuZ2VzIHJlbGF0ZWQgdG8gdGhlIHNwZWNpZmljIGVsZW1lbnQgaXQgaXMgcmVzcG9uc2libGUgZm9yLlxuICogSXQgaXMgYXV0b21hdGljYWxseSBpbnN0YW50aWF0ZWQgYnkgdGhlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2ssIHdoaWNoIG1hbmFnZXMgYWxsIGluc3RhbmNlcyBvZiB0aGlzIGNsYXNzLlxuICpcbiAqIEhvdyBpdCB3b3JrczpcbiAqXG4gKiBFYWNoIGluc3RhbmNlIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGhvbGRzIHNldmVyYWwgcGllY2VzIG9mIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIG5vZGUgaXQgaXMgbW9uaXRvcmluZyxcbiAqIHN1Y2ggYXMgdGhlIG5vZGUncyBzZWxlY3RvciBhbmQgaXRzIGBNdXRhdGlvbk9ic2VydmVyYC4gVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgdHJhbnNsYXRpbmcgcmF3IG5vZGVcbiAqIGNoYW5nZXMgaW50byBhIG1vcmUgdXNlci1mcmllbmRseSBmb3JtYXQuIEZvciBleGFtcGxlLCB3aGVuIHRoZSBub2RlIGlzIGFkZGVkIHRvIHRoZSBET00sIHRoZSBgRWxlbWVudE9ic2VydmVyYFxuICogaXMgbm90aWZpZWQgYnkgdGhlIGBET01PYnNlcnZlcmAsIHdoaWNoIHRyaWdnZXJzIHRoZSBgb25BZGRgIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIHRoZSByZXNwZWN0aXZlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpbnN0YW5jZS5cbiAqXG4gKiBJbnN0YW5jZXMgb2YgYEVsZW1lbnRPYnNlcnZlcmAgYXJlIGZ1bGx5IG1hbmFnZWQgYnkgdGhlIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2ssIHJlcXVpcmluZyBubyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24uXG4gKiBXaGVuIHRoZSBob29rIGlzIGRlc3Ryb3llZCwgaXRzIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgaXMgYXV0b21hdGljYWxseSByZW1vdmVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEVsZW1lbnRPYnNlcnZlciB7XG4gIHByaXZhdGUgbXV0YXRpb246IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsO1xuXG4gIHByaXZhdGUgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIHByaXZhdGUgc2VsZWN0b3I6IE5vZGVTZWxlY3RvcjtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBNYXA8a2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdD47XG5cbiAgcHJpdmF0ZSBjbGFzc0FkZGVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIGNsYXNzUmVtb3ZlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBub2RlRGlzcGxheTogc3RyaW5nO1xuXG4gIHByaXZhdGUgYWRkRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgY2hhbmdlRm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgY2xhc3NDaGFuZ2VGbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBhZGRDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUNoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVzZXRGbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHRoaXMubXV0YXRpb24gPSBudWxsO1xuICAgIHRoaXMubm9kZSA9IG51bGw7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzQWRkZWQgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5ub2RlRGlzcGxheSA9ICdibG9jayc7XG4gICAgdGhpcy5hZGRGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMucmVtb3ZlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNoYW5nZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jbGFzc0NoYW5nZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5hZGRDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlc2V0Rm4gPSAoKSA9PiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZDogTXV0YXRpb25SZWNvcmRbXSkge1xuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NsYXNzKS5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25SZWNvcmQgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoaWxkTGlzdChtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm4odGhpcy5ub2RlKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tdXRhdGlvbi5vYnNlcnZlKG5vZGUsIHtcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ub2RlID0gbm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHRoaXMuYWRkRm4odGhpcy5ub2RlKTtcbiAgICAgIHRoaXMuYWRkSW5pdGlhbExpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNldEZuKCk7XG4gICAgdGhpcy5yZW1vdmVGbih0aGlzLm5vZGUpO1xuICAgIHRoaXMubXV0YXRpb24/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNsZWFyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmNsYXNzQWRkZWQuY2xlYXIoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZC5jbGVhcigpO1xuICAgIHRoaXMubXV0YXRpb24gPSBudWxsO1xuICAgIHRoaXMubm9kZSA9IG51bGw7XG4gIH1cblxuICByZW5kZXIoZm46ICgpID0+IFJlYWN0RWxlbWVudCkge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHJldHVybiBjcmVhdGVQb3J0YWwoZm4oKSwgdGhpcy5ub2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQSxJQUFhLGtCQUFiLE1BQTZCO0NBNkIzQixZQUFZLFVBQXdCO0FBQ2xDLE9BQUssV0FBVztBQUNoQixPQUFLLFdB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
|
|
@@ -16,7 +16,7 @@ var MutationHelper = class {
|
|
|
16
16
|
if (node && record.oldValue) compareTokens(record.oldValue, node?.classList.value).forEach((className) => classMap.get(className)?.());
|
|
17
17
|
}
|
|
18
18
|
static fireSubtreeChange(nodes, fn) {
|
|
19
|
-
nodes.length && fn
|
|
19
|
+
if (nodes.length && fn) fn(nodes);
|
|
20
20
|
}
|
|
21
21
|
static isClass(mutation) {
|
|
22
22
|
return mutation.type === "attributes" && mutation.attributeName === "class";
|
|
@@ -28,4 +28,4 @@ var MutationHelper = class {
|
|
|
28
28
|
|
|
29
29
|
//#endregion
|
|
30
30
|
exports.MutationHelper = MutationHelper;
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25IZWxwZXIuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcih0b2tlbiA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaChjbGFzc05hbWUgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZUNsYXNzUmVtb3ZlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2VucyhyZWNvcmQub2xkVmFsdWUsIG5vZGU/LmNsYXNzTGlzdC52YWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaChjbGFzc05hbWUgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25IZWxwZXIuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcih0b2tlbiA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaChjbGFzc05hbWUgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZUNsYXNzUmVtb3ZlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2VucyhyZWNvcmQub2xkVmFsdWUsIG5vZGU/LmNsYXNzTGlzdC52YWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaChjbGFzc05hbWUgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+IHZvaWQpIHtcbiAgICBpZiAobm9kZXMubGVuZ3RoICYmIGZuKSB7XG4gICAgICBmbihub2Rlcyk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnO1xuICB9XG5cbiAgc3RhdGljIGlzQ2hpbGRMaXN0KG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkge1xuICAgIHJldHVybiBtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0JztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFPLFVBQVMsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzFFLElBQWEsaUJBQWIsTUFBNEI7Q0FDMUIsT0FBTyxnQkFDTCxRQUNBLE1BQ0EsSUFDQTtBQUNBLE1BQUksUUFBUSxPQUFPLGFBQWEsTUFBTSxVQUFVLE1BQzlDLElBQUcsTUFBTSxVQUFVOztDQUl2QixPQUFPLGVBQ0wsUUFDQSxNQUNBLFVBQ0E7QUFDQSxNQUFJLFFBQVEsT0FBTyxTQUVqQixDQURlLGNBQWMsTUFBTSxVQUFVLE9BQU8sT0FBTyxTQUFTLENBQzdELFNBQVEsY0FBYSxTQUFTLElBQUksVUFBVSxJQUFJLENBQUM7O0NBSTVELE9BQU8saUJBQ0wsUUFDQSxNQUNBLFVBQ0E7QUFDQSxNQUFJLFFBQVEsT0FBTyxTQUVqQixDQURlLGNBQWMsT0FBTyxVQUFVLE1BQU0sVUFBVSxNQUFNLENBQzdELFNBQVEsY0FBYSxTQUFTLElBQUksVUFBVSxJQUFJLENBQUM7O0NBSTVELE9BQU8sa0JBQWtCLE9BQWlCLElBQWdDO0FBQ3hFLE1BQUksTUFBTSxVQUFVLEdBQ2xCLElBQUcsTUFBTTs7Q0FJYixPQUFPLFFBQVEsVUFBMEI7QUFDdkMsU0FBTyxTQUFTLFNBQVMsZ0JBQWdCLFNBQVMsa0JBQWtCOztDQUd0RSxPQUFPLFlBQVksVUFBMEI7QUFDM0MsU0FBTyxTQUFTLFNBQVMifQ==
|
|
@@ -15,7 +15,7 @@ var MutationHelper = class {
|
|
|
15
15
|
if (node && record.oldValue) compareTokens(record.oldValue, node?.classList.value).forEach((className) => classMap.get(className)?.());
|
|
16
16
|
}
|
|
17
17
|
static fireSubtreeChange(nodes, fn) {
|
|
18
|
-
nodes.length && fn
|
|
18
|
+
if (nodes.length && fn) fn(nodes);
|
|
19
19
|
}
|
|
20
20
|
static isClass(mutation) {
|
|
21
21
|
return mutation.type === "attributes" && mutation.attributeName === "class";
|
|
@@ -27,4 +27,4 @@ var MutationHelper = class {
|
|
|
27
27
|
|
|
28
28
|
//#endregion
|
|
29
29
|
export { MutationHelper };
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25IZWxwZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbXBhcmVUb2tlbnMgPSAob3JpZ2luYWw6IHN0cmluZywgY29tcGFyaXNvbjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsVG9rZW5zID0gbmV3IFNldChvcmlnaW5hbC5zcGxpdCgnICcpKTtcbiAgY29uc3QgY29tcGFyaXNvblRva2VucyA9IG5ldyBTZXQoY29tcGFyaXNvbi5zcGxpdCgnICcpKTtcbiAgcmV0dXJuIFsuLi5vcmlnaW5hbFRva2Vuc10uZmlsdGVyKHRva2VuID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25IZWxwZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbXBhcmVUb2tlbnMgPSAob3JpZ2luYWw6IHN0cmluZywgY29tcGFyaXNvbjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsVG9rZW5zID0gbmV3IFNldChvcmlnaW5hbC5zcGxpdCgnICcpKTtcbiAgY29uc3QgY29tcGFyaXNvblRva2VucyA9IG5ldyBTZXQoY29tcGFyaXNvbi5zcGxpdCgnICcpKTtcbiAgcmV0dXJuIFsuLi5vcmlnaW5hbFRva2Vuc10uZmlsdGVyKHRva2VuID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/LmNsYXNzTGlzdC52YWx1ZSwgcmVjb3JkLm9sZFZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKGNsYXNzTmFtZSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NSZW1vdmVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKHJlY29yZC5vbGRWYWx1ZSwgbm9kZT8uY2xhc3NMaXN0LnZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKGNsYXNzTmFtZSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlU3VidHJlZUNoYW5nZShub2RlczogTm9kZUxpc3QsIGZuPzogKG5vZGVzOiBOb2RlTGlzdCkgPT4gdm9pZCkge1xuICAgIGlmIChub2Rlcy5sZW5ndGggJiYgZm4pIHtcbiAgICAgIGZuKG5vZGVzKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpIHtcbiAgICByZXR1cm4gbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcyc7XG4gIH1cblxuICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLGlCQUFpQixVQUFrQixlQUF1QjtDQUM5RCxNQUFNLGlCQUFpQixJQUFJLElBQUksU0FBUyxNQUFNLElBQUksQ0FBQztDQUNuRCxNQUFNLG1CQUFtQixJQUFJLElBQUksV0FBVyxNQUFNLElBQUksQ0FBQztBQUN2RCxRQUFPLENBQUMsR0FBRyxlQUFlLENBQUMsUUFBTyxVQUFTLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFDOztBQUcxRSxJQUFhLGlCQUFiLE1BQTRCO0NBQzFCLE9BQU8sZ0JBQ0wsUUFDQSxNQUNBLElBQ0E7QUFDQSxNQUFJLFFBQVEsT0FBTyxhQUFhLE1BQU0sVUFBVSxNQUM5QyxJQUFHLE1BQU0sVUFBVTs7Q0FJdkIsT0FBTyxlQUNMLFFBQ0EsTUFDQSxVQUNBO0FBQ0EsTUFBSSxRQUFRLE9BQU8sU0FFakIsQ0FEZSxjQUFjLE1BQU0sVUFBVSxPQUFPLE9BQU8sU0FBUyxDQUM3RCxTQUFRLGNBQWEsU0FBUyxJQUFJLFVBQVUsSUFBSSxDQUFDOztDQUk1RCxPQUFPLGlCQUNMLFFBQ0EsTUFDQSxVQUNBO0FBQ0EsTUFBSSxRQUFRLE9BQU8sU0FFakIsQ0FEZSxjQUFjLE9BQU8sVUFBVSxNQUFNLFVBQVUsTUFBTSxDQUM3RCxTQUFRLGNBQWEsU0FBUyxJQUFJLFVBQVUsSUFBSSxDQUFDOztDQUk1RCxPQUFPLGtCQUFrQixPQUFpQixJQUFnQztBQUN4RSxNQUFJLE1BQU0sVUFBVSxHQUNsQixJQUFHLE1BQU07O0NBSWIsT0FBTyxRQUFRLFVBQTBCO0FBQ3ZDLFNBQU8sU0FBUyxTQUFTLGdCQUFnQixTQUFTLGtCQUFrQjs7Q0FHdEUsT0FBTyxZQUFZLFVBQTBCO0FBQzNDLFNBQU8sU0FBUyxTQUFTIn0=
|