@softheon/armature 10.18.2 → 10.23.0
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/README.md +17 -0
- package/assets/styles/arm-theme.scss +242 -56
- package/assets/styles/material-overrides.scss +5 -1
- package/bundles/softheon-armature.umd.js +210 -93
- package/bundles/softheon-armature.umd.js.map +1 -1
- package/bundles/softheon-armature.umd.min.js +2 -2
- package/bundles/softheon-armature.umd.min.js.map +1 -1
- package/esm2015/lib/alert-banner/alert-banner-api.js +1 -1
- package/esm2015/lib/alert-banner/alert-banner.module.js +1 -1
- package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +8 -4
- package/esm2015/lib/alert-banner/models/alert-banner-config.js +1 -1
- package/esm2015/lib/alert-banner/models/alert-banner-context.js +1 -1
- package/esm2015/lib/alert-banner/models/constants.js +1 -1
- package/esm2015/lib/alert-banner/services/alert-banner.service.js +4 -2
- package/esm2015/lib/armature.module.js +1 -1
- package/esm2015/lib/core/client-generated/api/session.service.js +1 -1
- package/esm2015/lib/core/client-generated/configuration.js +1 -1
- package/esm2015/lib/core/client-generated/encoder.js +1 -1
- package/esm2015/lib/core/client-generated/model/applicationUserModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/assertedUserModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/brandingModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/errorModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/folderLink.js +1 -1
- package/esm2015/lib/core/client-generated/model/identityProfile.js +1 -1
- package/esm2015/lib/core/client-generated/model/models.js +1 -1
- package/esm2015/lib/core/client-generated/model/oAuthModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/preferencesRow.js +1 -1
- package/esm2015/lib/core/client-generated/model/rolesRow.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/settingsProfile.js +1 -1
- package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/themePaletteModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/trackingModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +1 -1
- package/esm2015/lib/core/client-generated/variables.js +1 -1
- package/esm2015/lib/core/components/app-template/app-template.component.js +3 -2
- package/esm2015/lib/core/functions/guid.js +1 -1
- package/esm2015/lib/core/functions/naming-convention.js +1 -1
- package/esm2015/lib/core/initializer/abstract-startup-service.js +1 -1
- package/esm2015/lib/core/initializer/initializer.service.js +51 -24
- package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +1 -1
- package/esm2015/lib/core/models/base-config.js +1 -1
- package/esm2015/lib/core/models/constants.js +1 -1
- package/esm2015/lib/core/models/data-store-config.js +1 -1
- package/esm2015/lib/core/models/header-config.js +1 -1
- package/esm2015/lib/core/models/http-verbs.js +1 -1
- package/esm2015/lib/core/models/navigation-config.js +1 -1
- package/esm2015/lib/core/models/oidc-auth-settings.js +1 -1
- package/esm2015/lib/core/models/route-path.js +1 -1
- package/esm2015/lib/core/models/session-config.js +1 -1
- package/esm2015/lib/core/models/styles.js +1 -1
- package/esm2015/lib/core/models/typed-session.js +1 -1
- package/esm2015/lib/core/models/user-entity-service-config.js +3 -1
- package/esm2015/lib/core/services/authorization.service.js +89 -56
- package/esm2015/lib/core/services/banner.service.js +1 -1
- package/esm2015/lib/core/services/base-config.service.js +1 -1
- package/esm2015/lib/core/services/custom-auth-config.service.js +4 -0
- package/esm2015/lib/core/services/default-config.service.js +1 -1
- package/esm2015/lib/core/services/session.service.js +1 -1
- package/esm2015/lib/core/services/user-entity.service.js +3 -2
- package/esm2015/lib/distributed-cache/client-generated/api/api.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/configuration.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/encoder.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/models.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/variables.js +1 -1
- package/esm2015/lib/distributed-cache/distributed-cache-api.js +1 -1
- package/esm2015/lib/distributed-cache/distributed-cache.module.js +1 -1
- package/esm2015/lib/distributed-cache/models/constants.js +1 -1
- package/esm2015/lib/distributed-cache/models/policy-person.js +1 -1
- package/esm2015/lib/distributed-cache/services/server-cache.service.js +1 -1
- package/esm2015/lib/error/components/error-common/error-common.component.js +1 -1
- package/esm2015/lib/error/error-api.js +1 -1
- package/esm2015/lib/error/error.module.js +1 -1
- package/esm2015/lib/error/models/error-common-config.js +1 -1
- package/esm2015/lib/faq/components/faq/faq.component.js +1 -1
- package/esm2015/lib/faq/faq-api.js +1 -1
- package/esm2015/lib/faq/faq.module.js +1 -1
- package/esm2015/lib/faq/models/faq-config.js +1 -1
- package/esm2015/lib/faq/models/faq.js +1 -1
- package/esm2015/lib/footer/components/footer/footer.component.js +1 -1
- package/esm2015/lib/footer/components/site-map/site-map.component.js +1 -1
- package/esm2015/lib/footer/footer-api.js +1 -1
- package/esm2015/lib/footer/footer.module.js +1 -1
- package/esm2015/lib/footer/models/enum/site-map-direction.js +1 -1
- package/esm2015/lib/footer/models/footer-config.js +1 -1
- package/esm2015/lib/footer/models/site-map-models.js +1 -1
- package/esm2015/lib/forms/components/sof-address/sof-address.component.js +1 -1
- package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +1 -1
- package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +1 -1
- package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +1 -1
- package/esm2015/lib/forms/forms-api.js +1 -1
- package/esm2015/lib/forms/forms.module.js +1 -1
- package/esm2015/lib/forms/models/address.js +1 -1
- package/esm2015/lib/forms/models/constants.js +1 -1
- package/esm2015/lib/forms/models/county.js +1 -1
- package/esm2015/lib/forms/models/enums/states.js +1 -1
- package/esm2015/lib/forms/pipes/phone-format.pipe.js +1 -1
- package/esm2015/lib/forms/services/alert.service.js +1 -1
- package/esm2015/lib/header/components/header/header.component.js +2 -2
- package/esm2015/lib/header/header-api.js +1 -1
- package/esm2015/lib/header/header.module.js +1 -1
- package/esm2015/lib/header/models/header-auth.settings.js +2 -1
- package/esm2015/lib/header/models/header-language.settings.js +1 -1
- package/esm2015/lib/header/models/header-theme.settings.js +1 -1
- package/esm2015/lib/header/models/header.settings.js +1 -1
- package/esm2015/lib/header/models/mobile-header-nav.settings.js +1 -1
- package/esm2015/lib/navigation/components/navigation/navigation.component.js +2 -2
- package/esm2015/lib/navigation/models/nav-theme.settings.js +1 -1
- package/esm2015/lib/navigation/models/nav.settings.js +1 -1
- package/esm2015/lib/navigation/models/navigation.js +1 -1
- package/esm2015/lib/navigation/navigation-api.js +1 -1
- package/esm2015/lib/navigation/navigation.module.js +1 -1
- package/esm2015/lib/oauth/models/constants.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/coverageDetail.js +1 -1
- package/esm2015/lib/oauth/models/generated/finance.js +1 -1
- package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/person.js +1 -1
- package/esm2015/lib/oauth/models/generated/policy.js +1 -1
- package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +1 -1
- package/esm2015/lib/oauth/oauth-api.js +1 -1
- package/esm2015/lib/oauth/oauth.module.js +1 -1
- package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +1 -1
- package/esm2015/lib/rbac/directives/rbac-action.directive.js +1 -1
- package/esm2015/lib/rbac/models/access-token-claims.js +1 -1
- package/esm2015/lib/rbac/models/constants.js +1 -1
- package/esm2015/lib/rbac/models/decoded-access-token.js +1 -1
- package/esm2015/lib/rbac/models/rbac-config.js +1 -1
- package/esm2015/lib/rbac/models/role-access.js +1 -1
- package/esm2015/lib/rbac/rbac-api.js +1 -1
- package/esm2015/lib/rbac/rbac.module.js +1 -1
- package/esm2015/lib/rbac/services/ar-role-nav.service.js +1 -1
- package/esm2015/lib/rbac/services/oauth2-role.service.js +1 -1
- package/esm2015/lib/rbac/services/role-nav.service.js +1 -1
- package/esm2015/lib/rum/models/arm-error.js +1 -1
- package/esm2015/lib/rum/models/rum-config.js +1 -1
- package/esm2015/lib/rum/rum-api.js +1 -1
- package/esm2015/lib/rum/rum.module.js +1 -1
- package/esm2015/lib/rum/services/rum.service.js +1 -1
- package/esm2015/lib/rum/services/shared-error.service.js +1 -1
- package/esm2015/lib/rum/services/softheon-error-handler.service.js +1 -1
- package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +1 -1
- package/esm2015/lib/saml/models/i-saml-request.js +1 -1
- package/esm2015/lib/saml/models/i-saml-response.js +1 -1
- package/esm2015/lib/saml/models/redirect-saml-request.js +1 -1
- package/esm2015/lib/saml/models/sso-gateway-model.js +1 -1
- package/esm2015/lib/saml/saml-api.js +1 -1
- package/esm2015/lib/saml/saml.module.js +1 -1
- package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +1 -1
- package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +1 -1
- package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +1 -1
- package/esm2015/lib/saml/services/send-off/saml.service.js +1 -1
- package/esm2015/lib/theming/directives/css-override.directive.js +1 -1
- package/esm2015/lib/theming/models/css-override.js +1 -1
- package/esm2015/lib/theming/services/theme.service.js +35 -1
- package/esm2015/lib/theming/theme-api.js +1 -1
- package/esm2015/lib/theming/theme.module.js +1 -1
- package/esm2015/public-api.js +2 -1
- package/esm2015/softheon-armature.js +1 -1
- package/fesm2015/softheon-armature.js +190 -85
- package/fesm2015/softheon-armature.js.map +1 -1
- package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +2 -0
- package/lib/alert-banner/models/alert-banner-context.d.ts +4 -0
- package/lib/alert-banner/services/alert-banner.service.d.ts +2 -1
- package/lib/core/client-generated/model/themePaletteModel.d.ts +24 -0
- package/lib/core/initializer/initializer.service.d.ts +9 -1
- package/lib/core/models/user-entity-service-config.d.ts +2 -0
- package/lib/core/services/authorization.service.d.ts +11 -1
- package/lib/core/services/custom-auth-config.service.d.ts +6 -0
- package/lib/header/models/header-auth.settings.d.ts +1 -0
- package/lib/theming/services/theme.service.d.ts +5 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/softheon-armature.metadata.json +1 -1
|
@@ -379,4 +379,4 @@ SessionService.ctorParameters = () => [
|
|
|
379
379
|
*/
|
|
380
380
|
export class RedirectSessionConfigs {
|
|
381
381
|
}
|
|
382
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMS9fd29yay85MS9zL2xpYnJhcnkvcHJvamVjdHMvYXJtYXR1cmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvcmUvc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRTVDLG1EQUFtRDtBQUNuRCxNQUFNLG1DQUFtQyxHQUFHLG1CQUFtQixDQUFDO0FBRWhFLDBCQUEwQjtBQUkxQixNQUFNLE9BQU8sY0FBYztJQWlGekI7Ozs7OztPQU1HO0lBQ0gsWUFDK0MsYUFBNEIsRUFDcEMsT0FBWSxFQUNwQixXQUF5QixFQUNyQyxVQUFzQjs7UUFITSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUFLO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQVk7UUF2RnpDLG9EQUFvRDtRQUM1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Q0FBQztZQUNuRSxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3hEO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztTQUM5RTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsS0FBVTtRQUN2QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDOzs7O1lBdmFGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBVlEsYUFBYSx1QkFvR2pCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs0Q0FDakMsUUFBUSxZQUFJLE1BQU0sU0FBQyxNQUFNO1lBM0dyQixZQUFZLHVCQTRHaEIsUUFBUTtZQTlHSixVQUFVOztBQTBibkI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0NBTWxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCwgU2Vzc2lvblB1dFJlcXVlc3RNb2RlbCwgU2Vzc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IFNFU1NJT05fQ09ORklHLCBXSU5ET1cgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSHR0cFZlcmIsIGh0dHBWZXJiIH0gZnJvbSAnLi4vbW9kZWxzL2h0dHAtdmVyYnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3Nlc3Npb24tY29uZmlnJztcclxuaW1wb3J0IHsgVHlwZWRTZXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3R5cGVkLXNlc3Npb24nO1xyXG5pbXBvcnQgeyBuZXdHdWlkIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2d1aWQnO1xyXG5cclxuLyoqIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGNvbXBsZXRlIHNlc3Npb24ga2V5ICovXHJcbmNvbnN0IGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5ID0gJ2RhdGFTdG9yZVJldHJpZXZlJztcclxuXHJcbi8qKiBUaGUgc2Vzc2lvbiBzZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25TZXJ2aWNlPFQgPSBhbnk+IHtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBfc2Vzc2lvbklkOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUcnVlIHdoZW4gdGhlIGRhdGEgc3RvcmUgcmV0cmlldmUgaXMgY29tcGxldGUgKi9cclxuICBwcml2YXRlIGlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogVGhlIGxvY2FsIHN0b3JhZ2Uga2V5ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlS2V5OiBzdHJpbmcgPSAnU29mLUFybS1TZXNzaW9uLUlkJztcclxuXHJcbiAgLyoqIFRlaCBjdXJyZW50IHVwZGF0ZSBkYXRhIHN0b3JlIGNhbGwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRVcGRhdGVEYXRhU3RvcmVDYWxsOiBPYnNlcnZhYmxlPGFueT4gPSBvZih7fSk7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBkYXRhIGJlaGF2aW9yIHN1YmplY3QgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25EYXRhOiBCZWhhdmlvclN1YmplY3Q8VHlwZWRTZXNzaW9uPFQ+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRTZXNzaW9uPFQ+Pih1bmRlZmluZWQpO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBzZXJ2aWNlIGhhcyBmaW5pc2hlZCBpbml0aWFsaXppbmcgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzSW5pdGlhbGl6ZWRCczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBkYXRhIHN0b3JlIGlzIGluaXRpYWxpemVkICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0RhdGFTdG9yZUluaXRCczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGNsaWVudCBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdjbGllbnQnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgc2VydmVyIHNpZGUgc2Vzc2lvbiBtYW5hZ2VtZW50ICovXHJcbiAgcHJpdmF0ZSBnZXQgaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9PT0gJ3NlcnZlcic7XHJcbiAgfVxyXG5cclxuICAvKiogVHJ1ZSBpZiB1c2luZyBicm93c2VyIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIGdldCB1c2VCcm93c2VyTG9jYWxTdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnbG9jYWwnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBzZXNzaW9uIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIGdldCB1c2VCcm93c2VyU2Vzc2lvblN0b3JhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPT09ICdzZXNzaW9uJztcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgd2luZG93ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IFdpbmRvdztcclxuXHJcbiAgLyoqIFRydWUgaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVQcm92aWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gaWQgKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb25JZCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgdGhpcy5pc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50ID8gdGhpcy5pbml0Q2xpZW50U2Vzc2lvbklkKCkgOiB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbklkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uICovXHJcbiAgcHVibGljIHNlc3Npb24kOiBPYnNlcnZhYmxlPFR5cGVkU2Vzc2lvbjxUPj47XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiByZWZyZXNoIG9ic2VydmFibGUgKi9cclxuICBwdWJsaWMgc2Vzc2lvblJlZnJlc2gkOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIC8qKiBJbmRpY2F0ZXMgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHVibGljIGlzSW5pdGlhbGl6ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHB1YmxpYyBpc0RhdGFTdG9yZUluaXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAvKiogZ2V0cyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBnZXQgc2Vzc2lvbigpOiBUeXBlZFNlc3Npb248VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRhdGEudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogc2V0cyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXQgc2Vzc2lvbih2YWx1ZTogVHlwZWRTZXNzaW9uPFQ+KSB7XHJcbiAgICB0aGlzLnNlc3Npb25EYXRhLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aCwgdGhpcy5lbmNvZGUodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gc2Vzc2lvbkNvbmZpZyBUaGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uc1xyXG4gICAqIEBwYXJhbSBfd2luZG93IFRoZSB3aW5kb3cgaW50ZXJmYWNlXHJcbiAgICogQHBhcmFtIGF1dGhTZXJ2aWNlIFRoZSBPQXV0aCBvZGljIDIgc2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBodHRwIGNsaWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChTRVNTSU9OX0NPTkZJRykgcmVhZG9ubHkgc2Vzc2lvbkNvbmZpZzogU2Vzc2lvbkNvbmZpZyxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSByZWFkb25seSBfd2luZG93OiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcclxuICApIHtcclxuICAgIHRoaXMuaXNJbml0aWFsaXplZCQgPSB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5hc09ic2VydmFibGUoKTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVJbml0JCA9IHRoaXMuaXNEYXRhU3RvcmVJbml0QnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZykge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcgPSBuZXcgU2Vzc2lvbkNvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0RhdGFTdG9yZVByb3ZpZGVkID0gISF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZztcclxuICAgIHRoaXMud2luZG93ID0gX3dpbmRvdztcclxuICAgIGlmICghdGhpcy53aW5kb3cpIHtcclxuICAgICAgdGhpcy53aW5kb3cgPSB3aW5kb3c7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhU3RvcmVMb2FkZWRWYWx1ZSA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXkpO1xyXG4gICAgdGhpcy5pc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGUgPSAhIWRhdGFTdG9yZUxvYWRlZFZhbHVlID8gZGF0YVN0b3JlTG9hZGVkVmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIDogZmFsc2U7XHJcbiAgICAvLyBpZiBub3QgdXNpbmcgYSBkYXRhIHN0b3JlLCB1cGRhdGUgdGhlIGluaXRpYWxpemVkIHRvIHRydWUgZm9yIGl0XHJcbiAgICBpZiAoIXRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCkge1xyXG4gICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9ICdzZXNzaW9uJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZXNzaW9uQ29uZmlnPy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID0gJ2NsaWVudCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc1NlcnZlclNlc3Npb25NYW5hZ2VtZW50ICYmICF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlciBzZXJ2ZXIgc2Vzc2lvbiBtYW5hZ2VtZW50IHdpdGggbnVsbCBzZXNzaW9uQ29uZmlnIHBsZWFzZSBwcm92aWRlOiBHbG9iYWxJbmplY3Rpb25Ub2tlbnMuc2Vzc2lvbkNvbmZpZycpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCkge1xyXG4gICAgICB0aGlzLmluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdFNlcnZlclNlc3Npb25NYW5hZ2VtZW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWRpcmVjdHMgdG8gYSB1cmwgd2l0aCBhIHJlZiB0byB0aGUgZXhpc3Rpbmcgc2Vzc2lvblxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHVyaSB0byByZWRpcmVjdCB0b1xyXG4gICAqIEBwYXJhbSBzeW5jU2Vzc2lvbiBTeW5jIHNlc3Npb24uXHJcbiAgICogQHBhcmFtIGNvbmZpZ3MgUmVkaXJlY3QgY29uZmlncy5cclxuICAgKi9cclxuICBwdWJsaWMgcmVkaXJlY3QodXJpOiBzdHJpbmcsIHN5bmNTZXNzaW9uOiBib29sZWFuID0gZmFsc2UsIGNvbmZpZ3M6IFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3MgPSB7fSk6IHZvaWQge1xyXG4gICAgLy8gaWYgdGhlIGhvc3QgbmFtZSBpc24ndCBpbiB0aGUgdXJpLCB3ZSBhcmUgZ29pbmcgdG8gYSBkaWZmZXJlbnQgZG9tYWluLCBzbyB1c2UgdGhlIGdhdGV3YXkgb24gdGhlIG90aGVyIGRvbWFpbidzIHNlcnZlclxyXG4gICAgbGV0IGZvcm1BY3Rpb24gPSBgJHt0aGlzLnNlc3Npb25Db25maWcudHJhbnNmZXJCYXNlUGF0aH0vc3NvZ2F0ZXdheS92Mi9zc28vaW5ib3VuZC10cmFuc2Zlci8ke3RoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRofWA7XHJcbiAgICBpZiAodXJpLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSA9PT0gLTEpIHtcclxuICAgICAgY29uc3QgdXJpUGFydHMgPSB1cmkuc3BsaXQoJy8nKTtcclxuICAgICAgLy8gdGhpcyByZXN1bHRzIGluIFsnaHR0cHM6JywgJycsICdkb21haW4uaG9zdCddLCB1c2UgMCBhbmQgMiB0byBnZXQgdGhlIGJhc2UgdXJsIG9mIHRoZSByZWRpcmVjdCB1cmlcclxuICAgICAgZm9ybUFjdGlvbiA9IGAke3VyaVBhcnRzWzBdfS8vJHt1cmlQYXJ0c1syXX0vc3NvZ2F0ZXdheS92Mi9zc28vaW5ib3VuZC10cmFuc2Zlci8ke3RoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRofWA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgY29uc3QgaW5wdXREZXN0aW5hdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBmb3JtLm1ldGhvZCA9ICdQT1NUJztcclxuICAgIGZvcm0uYWN0aW9uID0gZm9ybUFjdGlvbjtcclxuICAgIGlmIChjb25maWdzLnRhcmdldE5ld1RhYikge1xyXG4gICAgICBmb3JtLnRhcmdldCA9ICdfYmxhbmsnO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0Lm5hbWUgPSAnZGF0YSc7XHJcbiAgICBpbnB1dC52YWx1ZSA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgaW5wdXREZXN0aW5hdGlvbi5uYW1lID0gJ2Rlc3RpbmF0aW9uJztcclxuICAgIGlucHV0RGVzdGluYXRpb24udmFsdWUgPSB1cmk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXREZXN0aW5hdGlvbik7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xyXG4gICAgZm9ybS5zdWJtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHNlc3Npb25cclxuICAgKiBAcGFyYW0gYm9keSBUaGUgc2Vzc2lvbiBwdXQgcmVxdWVzdCBib2R5XHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZVNlc3Npb24oXHJcbiAgICBib2R5OiBUeXBlZFNlc3Npb248VD4sXHJcbiAgICBzZWN1cmFibGVEZWxlZ2F0ZTogQXJyYXk8KGFyZzogYW55KSA9PiBhbnk+IHwgKChhcmc6IGFueSkgPT4gYW55KSxcclxuICAgIHNraXBEYXRhU3RvcmU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHNlc3Npb24gaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIHNraXBwaW5nIHVwZGF0ZSBjYWxsJyk7XHJcblxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFzZWN1cmFibGVEZWxlZ2F0ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gQXJndW1lbnQgaXMgbnVsbCBvciB1bmRlZmluZWQsIGFyZzogc2VjdXJhYmxlRGVsZWdhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpICYmICFBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgQXJyYXkpIGFuZCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlICh0eXBlIG9mIChhcmc6IGFueSkgPT4gYW55KSBib3RoIG11c3QgYmUgYXJyYXkgb3Igbm9uLWFycmF5J1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpICYmIEFycmF5LmlzQXJyYXkoc2VjdXJhYmxlRGVsZWdhdGUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnU2Vzc2lvblNlcnZpY2U6dXBkYXRlU2Vzc2lvbiAtPiBUeXBlIG1pc3MgbWF0Y2gsIGFyZzogYm9keS5TZXNzaW9uRGF0YSAodHlwZSBvZiBhbnkpIGFuZCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlICh0eXBlIG9mIEFycmF5KSAgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vIGNyZWF0ZSByZXNwb25zZSBtb2RlbCBhbmQgdXBkYXRlIG9ic2VydmFibGUgdG8gZW1pdCBuZXcgc2Vzc2lvbiB2YWx1ZVxyXG4gICAgY29uc3QgbW9kZWw6IFNlc3Npb25SZXNwb25zZU1vZGVsID0ge1xyXG4gICAgICBpbml0aWFsaXppbmdPcmlnaW46IGJvZHkuaW5pdGlhbGl6aW5nT3JpZ2luLFxyXG4gICAgICBicmFuZGluZzogYm9keS5icmFuZGluZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGgsXHJcbiAgICAgIHNlc3Npb25JZDogdGhpcy5fc2Vzc2lvbklkLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgc2Vzc2lvbkRhdGE6IGJvZHkuc2Vzc2lvbkRhdGFcclxuICAgIH07XHJcbiAgICB0aGlzLnNlc3Npb24gPSBtb2RlbDtcclxuXHJcbiAgICBjb25zdCBwdXRNb2RlbDogU2Vzc2lvblB1dFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgc2Vzc2lvbkRhdGE6XHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkoYm9keS5zZXNzaW9uRGF0YSlcclxuICAgICAgICAgID8gYm9keS5zZXNzaW9uRGF0YS5tYXAoKGQsIGluZGV4KSA9PiBzZWN1cmFibGVEZWxlZ2F0ZVtpbmRleF0oZCkpIDogKHNlY3VyYWJsZURlbGVnYXRlIGFzICgoYXJnOiBhbnkpID0+IGFueSkpKGJvZHkuc2Vzc2lvbkRhdGEpKSxcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIHRyYWNraW5nOiBib2R5LnRyYWNraW5nLFxyXG4gICAgICBvQXV0aDogYm9keS5vQXV0aFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBpZiBkYXRhIHN0b3JlIGlzIHByb3ZpZGVkIHJ1biB0aGUgZGVsZWdhdGUgdG8gZGV0ZXJtaW5lIHRoZSBib2R5IGFuZCB0aGUgdXJpIHRvIHVzZSBmb3IgdGhlIHVwZGF0ZVxyXG4gICAgaWYgKHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCAmJiAhc2tpcERhdGFTdG9yZSkge1xyXG4gICAgICBjb25zdCB1cGRhdGVUdXBsZSA9XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcudXBkYXRlUmVxdWVzdERlbGVnYXRlKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLmJhc2VVcmksIGJvZHkuc2Vzc2lvbkRhdGEpO1xyXG4gICAgICAvLyBzd2l0Y2ggbWFwIHRvIGNhbmNlbCBleGlzdGluZyBjYWxscyB3aXRoIG5ld2VyIG9uZXMgdG8gYXZvaWQgcmV2ZXJ0aW5nIGRhdGFcclxuICAgICAgaWYgKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnNob3VsZFVwZGF0ZURhdGFTdG9yZURlbGVnYXRlKGJvZHkuc2Vzc2lvbkRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbC5waXBlKHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVZlcmIpIHtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh1cGRhdGVUdXBsZS51cmksIHVwZGF0ZVR1cGxlLmJvZHkpO1xyXG4gICAgICAgICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh1cGRhdGVUdXBsZS51cmksIHVwZGF0ZVR1cGxlLmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbiQ7XHJcbiAgfVxyXG5cclxuICAvKiogUmVtb3ZlcyB0aGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyByZW1vdmVTZXNzaW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFN5bmNzIHRoZSBzZXNzaW9uXHJcbiAgICogUmV0dXJucyB0aGUgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZW4gdGhlIHNlc3Npb24gaGFzIGJlZW4gc3luY2VkXHJcbiAgICovXHJcbiAgcHVibGljIHN5bmNTZXNzaW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCByZW1vdmluZyBpbiB0aGUgbmV4dCB2ZXJzaW9uXHJcbiAgICogUmVmcmVzaGVzIHRoZSBzZXNzaW9uXHJcbiAgICovXHJcbiAgcHVibGljIHJlZnJlc2hTZXNzaW9uKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemUgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgaW5pdFNlcnZlclNlc3Npb25NYW5hZ2VtZW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uJCA9IHRoaXMuc2Vzc2lvbkRhdGEuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3QgZ2V0RnJvbURhdGFTdG9yZSA9ICgpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnIHx8ICF0aGlzLmF1dGhTZXJ2aWNlIHx8IHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBsb2FkIGRhdGEgZnJvbSBkYXRhIHN0b3JlIGFub25cclxuICAgICAgY29uc3QgbG9hZERhdGFTdG9yZSA9ICgpID0+XHJcbiAgICAgICAgdGhpcy5kZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbih0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVZlcmIsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVJlcXVlc3REZWxlZ2F0ZSxcclxuICAgICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLmJhc2VVcmksXHJcbiAgICAgICAgICB1bmRlZmluZWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCQuc3Vic2NyaWJlKGlzSW5pdCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFpc0luaXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uJC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHNlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2Vzc2lvbih0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVJlc3BvbnNlRGVsZWdhdGUocmVzLCBzZXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnJldHJpZXZlU2VjdXJhYmxlRGVsZWdhdGUocmVzKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVJbml0QnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5LCAndHJ1ZScpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XHJcbiAgICAgICAgLy8gSEFDSzogSSBjb3VsZG4ndCBkbyB0aGlzIGJhc2VkIG9uIGFuIGV2ZW50IHNvIEkgaGFkIHRvIGdldCBjcmVhdGl2ZVxyXG4gICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XHJcbiAgICAgICAgICAgIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMjUwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbG9hZERhdGFTdG9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGJvZHk6IFNlc3Npb25Qb3N0UmVxdWVzdE1vZGVsID0ge1xyXG4gICAgICBzZXNzaW9uRGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICBicmFuZGluZzogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGVuY29kZWRTZXNzaW9uID0gdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aCk7XHJcbiAgICB0aGlzLl9zZXNzaW9uSWQgPSBgU2Vzc2lvbi0ke25ld0d1aWQoKX1gO1xyXG4gICAgaWYgKCFlbmNvZGVkU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb24gPSBib2R5O1xyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICBnZXRGcm9tRGF0YVN0b3JlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gdGhpcy5kZWNvZGUoZW5jb2RlZFNlc3Npb24pO1xyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICBnZXRGcm9tRGF0YVN0b3JlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZXMgdGhlIHNlcnZlciBzaWRlIHNlc3Npb24gaWQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uSWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Nlc3Npb24gSW5pdGlhbGl6aW5nLCBzdWJzY3JpYmUgdG8gc2Vzc2lvbiQgdG8gZ2V0IHRoZSBzZXNzaW9uIGluZm8uIFNlc3Npb24gSWQgd2lsbCBiZSBwb3B1bGF0ZWQgdXBvbiBpbml0aWFsaXphdGlvbicpO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIGNsaWVudCBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHNlc0lkID0gdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0U2Vzc2lvblN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICAgIHRoaXMuX3Nlc3Npb25JZCA9IHNlc0lkIHx8IG5ld0d1aWQoKTtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNJbml0aWFsaXplZEJzLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlc3Npb25JZEZyb21TdG9yYWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy51c2VCcm93c2VyTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy51c2VCcm93c2VyU2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHRoZSBjbGllbnQgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0Q2xpZW50U2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gbmV3R3VpZCgpO1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuc2V0U2Vzc2lvblN0b3JhZ2UoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBzZXRTZXNzaW9uU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCB0aGlzLl9zZXNzaW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNldHMgbG9jYWwgc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0TG9jYWxTdG9yYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlS2V5LCB0aGlzLl9zZXNzaW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBodHRwIGNhbGwgdG8gbWFrZSBmb3IgdGhlIGRhdGEgc3RvcmVcclxuICAgKiBAcGFyYW0gdmVyYiBUaGUgdmVyYlxyXG4gICAqIEBwYXJhbSBkZWxlZ2F0ZSBUaGUgZGVsZWdhdGVcclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmlcclxuICAgKi9cclxuICBwcml2YXRlIGRldGVybWluZURhdGFTdG9yZUZ1bmN0aW9uKFxyXG4gICAgdmVyYjogSHR0cFZlcmIsXHJcbiAgICBkZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgYm9keTogVCkgPT4geyB1cmk6IHN0cmluZywgYm9keT86IGFueSB9LFxyXG4gICAgdXJpOiBzdHJpbmcsXHJcbiAgICBib2R5OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdHVwbGUgPSBkZWxlZ2F0ZSh1cmksIGJvZHkpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcclxuICAgIH0pO1xyXG4gICAgc3dpdGNoICh2ZXJiKSB7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUFVUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBPU1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLkdFVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0dXBsZS51cmksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QQVRDSDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBhdGNoKHR1cGxlLnVyaSwgdHVwbGUuYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLkRFTEVURTpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh0dXBsZS51cmksIHsgaGVhZGVycyB9KTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0h0dHAgdmVyYiBtdXN0IGJlIG9uZSBvZjogUEFUQ0gsIFBVVCwgUE9TVCwgREVMRVRFLCBHRVQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuY29kZXMgdGhlIG9iamVjdFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gd2luZG93LmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHZhbHVlKSkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlY29kZXMgdGhlIHN0cmluZ1xyXG4gICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVjb2RlKHN0cjogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUod2luZG93LmF0b2Ioc3RyKSkpKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWRpcmVjdCBTZXNzaW9uIENvbmZpZ3MuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RTZXNzaW9uQ29uZmlncyB7XHJcbiAgLyoqIElmIHNlc3Npb24gc2hvdWxkIGJlIHN5bmNlZC4gKi9cclxuICBzeW5jU2Vzc2lvbj86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJZiBuZXcgdGFiIHNob3VsZCBiZSB0YXJnZXRlZC4gKi9cclxuICB0YXJnZXROZXdUYWI/OiBib29sZWFuO1xyXG59Il19
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU1QyxtREFBbUQ7QUFDbkQsTUFBTSxtQ0FBbUMsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRSwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLGNBQWM7SUFpRnpCOzs7Ozs7T0FNRztJQUNILFlBQytDLGFBQTRCLEVBQ3BDLE9BQVksRUFDcEIsV0FBeUIsRUFDckMsVUFBc0I7O1FBSE0sa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkZ6QyxvREFBb0Q7UUFD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LENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7OztZQXZhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLGFBQWEsdUJBb0dqQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7NENBQ2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTtZQTNHckIsWUFBWSx1QkE0R2hCLFFBQVE7WUE5R0osVUFBVTs7QUEwYm5COztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQU1sQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblBvc3RSZXF1ZXN0TW9kZWwsIFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwsIFNlc3Npb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTRVNTSU9OX0NPTkZJRywgV0lORE9XIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBWZXJiLCBodHRwVmVyYiB9IGZyb20gJy4uL21vZGVscy9odHRwLXZlcmJzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy90eXBlZC1zZXNzaW9uJztcclxuaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ndWlkJztcclxuXHJcbi8qKiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBjb21wbGV0ZSBzZXNzaW9uIGtleSAqL1xyXG5jb25zdCBkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSA9ICdkYXRhU3RvcmVSZXRyaWV2ZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZTxUID0gYW55PiB7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGlzIGNvbXBsZXRlICovXHJcbiAgcHJpdmF0ZSBpc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBsb2NhbCBzdG9yYWdlIGtleSAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nID0gJ1NvZi1Bcm0tU2Vzc2lvbi1JZCc7XHJcblxyXG4gIC8qKiBUZWggY3VycmVudCB1cGRhdGUgZGF0YSBzdG9yZSBjYWxsICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbDogT2JzZXJ2YWJsZTxhbnk+ID0gb2Yoe30pO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gZGF0YSBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uRGF0YTogQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVJbml0QnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnY2xpZW50JztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHNlcnZlciBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdzZXJ2ZXInO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBsb2NhbCBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlckxvY2FsU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ2xvY2FsJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnc2Vzc2lvbic7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGRhdGEgc3RvcmUgaXMgcHJvdmlkZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlUHJvdmlkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCA/IHRoaXMuaW5pdENsaWVudFNlc3Npb25JZCgpIDogdGhpcy5pbml0U2VydmVyU2Vzc2lvbklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uJDogT2JzZXJ2YWJsZTxUeXBlZFNlc3Npb248VD4+O1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gcmVmcmVzaCBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHNlc3Npb25SZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwdWJsaWMgaXNEYXRhU3RvcmVJbml0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIGdldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb24oKTogVHlwZWRTZXNzaW9uPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EYXRhLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIHNldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2V0IHNlc3Npb24odmFsdWU6IFR5cGVkU2Vzc2lvbjxUPikge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgsIHRoaXMuZW5jb2RlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlc3Npb25Db25maWcgVGhlIHNlc3Npb24gY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgd2luZG93IGludGVyZmFjZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggb2RpYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VTU0lPTl9DT05GSUcpIHJlYWRvbmx5IHNlc3Npb25Db25maWc6IFNlc3Npb25Db25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcmVhZG9ubHkgX3dpbmRvdzogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkID0gdGhpcy5pc0luaXRpYWxpemVkQnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdCQgPSB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnID0gbmV3IFNlc3Npb25Db25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCA9ICEhdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWc7XHJcbiAgICB0aGlzLndpbmRvdyA9IF93aW5kb3c7XHJcbiAgICBpZiAoIXRoaXMud2luZG93KSB7XHJcbiAgICAgIHRoaXMud2luZG93ID0gd2luZG93O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YVN0b3JlTG9hZGVkVmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gISFkYXRhU3RvcmVMb2FkZWRWYWx1ZSA/IGRhdGFTdG9yZUxvYWRlZFZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA6IGZhbHNlO1xyXG4gICAgLy8gaWYgbm90IHVzaW5nIGEgZGF0YSBzdG9yZSwgdXBkYXRlIHRoZSBpbml0aWFsaXplZCB0byB0cnVlIGZvciBpdFxyXG4gICAgaWYgKCF0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQpIHtcclxuICAgICAgdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPSAnc2Vzc2lvbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9ICdjbGllbnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCAmJiAhdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZXIgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCB3aXRoIG51bGwgc2Vzc2lvbkNvbmZpZyBwbGVhc2UgcHJvdmlkZTogR2xvYmFsSW5qZWN0aW9uVG9rZW5zLnNlc3Npb25Db25maWcnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbml0Q2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVkaXJlY3RzIHRvIGEgdXJsIHdpdGggYSByZWYgdG8gdGhlIGV4aXN0aW5nIHNlc3Npb25cclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmkgdG8gcmVkaXJlY3QgdG9cclxuICAgKiBAcGFyYW0gc3luY1Nlc3Npb24gU3luYyBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIFJlZGlyZWN0IGNvbmZpZ3MuXHJcbiAgICovXHJcbiAgcHVibGljIHJlZGlyZWN0KHVyaTogc3RyaW5nLCBzeW5jU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLCBjb25maWdzOiBSZWRpcmVjdFNlc3Npb25Db25maWdzID0ge30pOiB2b2lkIHtcclxuICAgIC8vIGlmIHRoZSBob3N0IG5hbWUgaXNuJ3QgaW4gdGhlIHVyaSwgd2UgYXJlIGdvaW5nIHRvIGEgZGlmZmVyZW50IGRvbWFpbiwgc28gdXNlIHRoZSBnYXRld2F5IG9uIHRoZSBvdGhlciBkb21haW4ncyBzZXJ2ZXJcclxuICAgIGxldCBmb3JtQWN0aW9uID0gYCR7dGhpcy5zZXNzaW9uQ29uZmlnLnRyYW5zZmVyQmFzZVBhdGh9L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgaWYgKHVyaS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHVyaVBhcnRzID0gdXJpLnNwbGl0KCcvJyk7XHJcbiAgICAgIC8vIHRoaXMgcmVzdWx0cyBpbiBbJ2h0dHBzOicsICcnLCAnZG9tYWluLmhvc3QnXSwgdXNlIDAgYW5kIDIgdG8gZ2V0IHRoZSBiYXNlIHVybCBvZiB0aGUgcmVkaXJlY3QgdXJpXHJcbiAgICAgIGZvcm1BY3Rpb24gPSBgJHt1cmlQYXJ0c1swXX0vLyR7dXJpUGFydHNbMl19L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGNvbnN0IGlucHV0RGVzdGluYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgZm9ybS50YXJnZXQgPSAnX2JsYW5rJztcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
|
|
@@ -105,7 +105,7 @@ export class UserEntityService {
|
|
|
105
105
|
.replace('/account/login', '')
|
|
106
106
|
.replace('/connect/authorize', '')
|
|
107
107
|
});
|
|
108
|
-
this.userCall = this.httpClient.get(`${this.userEntityServiceConfig.userEntityBaseUrl}${this.getUserPartial}?subIdFromToken=true&createEmpty=true`, { headers })
|
|
108
|
+
this.userCall = this.httpClient.get(`${this.userEntityServiceConfig.userEntityBaseUrl}${this.getUserPartial}?subIdFromToken=true&createEmpty=true&withoutChildLinks=${!this.userEntityServiceConfig.includeLinks}`, { headers })
|
|
109
109
|
.toPromise();
|
|
110
110
|
return this.userCall.then(res => {
|
|
111
111
|
if (!res || res.length === 0) {
|
|
@@ -127,6 +127,7 @@ export class UserEntityService {
|
|
|
127
127
|
config.validate = config.validate || ((user) => true);
|
|
128
128
|
// tslint:disable-next-line: triple-equals
|
|
129
129
|
config.getUserOnInit = config.getUserOnInit == undefined ? true : config.getUserOnInit;
|
|
130
|
+
config.includeLinks = config.includeLinks == undefined ? true : config.includeLinks;
|
|
130
131
|
return config;
|
|
131
132
|
}
|
|
132
133
|
}
|
|
@@ -141,4 +142,4 @@ UserEntityService.ctorParameters = () => [
|
|
|
141
142
|
{ type: HttpClient },
|
|
142
143
|
{ type: UserEntityServiceConfig, decorators: [{ type: Optional }, { type: Inject, args: [USER_ENTITY_SERVICE_CONFIG,] }] }
|
|
143
144
|
];
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDEvX3dvcmsvOTEvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3VzZXItZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQUUvRSw4QkFBOEI7QUFJOUIsTUFBTSxPQUFPLGlCQUFpQjtJQXlCNUI7Ozs7O09BS0c7SUFDSCxZQUNtQixZQUEwQixFQUMxQixVQUFzQixFQUNrQix1QkFBZ0Q7UUFGeEYsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNrQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBMUIzRywrQkFBK0I7UUFDZCxtQkFBYyxHQUFXLDRCQUE0QixDQUFDO1FBYXZFLGdDQUFnQztRQUNmLFdBQU0sR0FBdUMsSUFBSSxlQUFlLENBQW9CLFNBQVMsQ0FBQyxDQUFDO1FBYTlHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFB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LFlBQVksRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUM7cUJBQ0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzNELE1BQU0sQ0FBQyxDQUFDO2dCQUNWLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFBLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtJQUVELDRDQUE0QztJQUNwQyxxQkFBcUI7UUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQzVDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBdUIsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEYsMENBQTBDO1FBQzFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUV2RixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7O1lBcEpGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBWFEsWUFBWTtZQUhaLFVBQVU7WUFTVix1QkFBdUIsdUJBd0MzQixRQUFRLFlBQUksTUFBTSxTQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpcnN0LCBzaGFyZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFzc2VydGVkVXNlck1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy91c2VyLWVudGl0eS1zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG4vKiogVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIHVzZXIgb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxBc3NlcnRlZFVzZXJNb2RlbD47XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBmb3IgdXNlICovXHJcbiAgcHJpdmF0ZSBpc1NlcnZpY2VBdmFpbGFibGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgZ2V0IHVzZXIgcGFydGlhbCB1cmwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGdldFVzZXJQYXJ0aWFsOiBzdHJpbmcgPSAnYXBpL3VzZXJNYW5hZ2VtZW50L3YxL3VzZXInO1xyXG5cclxuICAvKiogVGhlIHVzZXIgY2FsbCAqL1xyXG4gIHByaXZhdGUgdXNlckNhbGw6IFByb21pc2U8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PjtcclxuXHJcbiAgLyoqIFRoZSB1c2VyIG1vZGVsIGFuZCBoYXNoICovXHJcbiAgcHJpdmF0ZSBnZXQgX3VzZXIoKTogQXNzZXJ0ZWRVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckJTLnZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIHNldCBfdXNlcih2YWw6IEFzc2VydGVkVXNlck1vZGVsKSB7XHJcbiAgICB0aGlzLnVzZXJCUy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKiogdGhlIHVzZXIgYmVoYXZpb3Igc3ViamVjdCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckJTOiBCZWhhdmlvclN1YmplY3Q8QXNzZXJ0ZWRVc2VyTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBvYXV0aFNlcnZpY2UgVGhlIG9hdXRoIG9pZGMgMiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIGh0dHAgY2xpZW50XHJcbiAgICogQHBhcmFtIHVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRykgcmVhZG9ubHkgdXNlckVudGl0eVNlcnZpY2VDb25maWc6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnID0gIXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPyBuZXcgVXNlckVudGl0eVNlcnZpY2VDb25maWcoKSA6IHRoaXMuZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXBhcmFtZXRlci1yZWFzc2lnbm1lbnRcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsIHx8ICcvJztcclxuICAgIHRoaXMudXNlciQgPSB0aGlzLnVzZXJCUy5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZShmaWx0ZXIodmFsID0+ICEhdmFsKSk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlck9uSW5pdCkge1xyXG4gICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2VydmljZUF2YWlsYWJsZSA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNTZXJ2aWNlQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0VXNlckZyb21BcGkoKVxyXG4gICAgICAgICAgLnRoZW4oKVxyXG4gICAgICAgICAgLmNhdGNoKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciAqL1xyXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VyKCk6IFByb21pc2U8QXNzZXJ0ZWRVc2VyTW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlciQucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHNoYXJlKCksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgIHJlamVjdChlKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YoZSk7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodXNlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdXNlciBUaGUgbmV3IHVzZXIgbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyPzogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICBpZiAodXNlcikge1xyXG4gICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRVc2VyRnJvbUFwaSgpO1xyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIG1lZXRzIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHByb3ZpZGVkICovXHJcbiAgcHVibGljIHZhbGlkYXRlVXNlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnICYmIHRoaXMuX3VzZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudmFsaWRhdGUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciBmcm9tIHRoZSBhcGkgKi9cclxuICBwcml2YXRlIGFzeW5jIGdldFVzZXJGcm9tQXBpKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gdXNlIHRoZSBsb2NhbCBwYXRoIGlmIHRoZXJlIGlzIG5vdCBiYXNlIHBhdGggcHJvdmlkZWRcclxuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShmaXJzdChlID0+IGUudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnKSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIGlzc3VlciB0byB0aGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0IHNvIHRoZSBhcGkga25vd3Mgd2hhdCB0ZW5hbnQgdG8gdXNlXHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCl9YCxcclxuICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24tVGVuYW50JzogKFxyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuICAgICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlWydjb25maWcnXT8uaXNzdWVyXHJcbiAgICAgICAgICAgICAgfHwgdGhpcy5vYXV0aFNlcnZpY2U/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5pc3N1ZXIgfHwgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9hY2NvdW50L2xvZ2luJywgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9jb25uZWN0L2F1dGhvcml6ZScsICcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51c2VyQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PihcclxuICAgICAgICAgIGAke3RoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmx9JHt0aGlzLmdldFVzZXJQYXJ0aWFsfT9zdWJJZEZyb21Ub2tlbj10cnVlJmNyZWF0ZUVtcHR5PXRydWVgLFxyXG4gICAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgICApXHJcbiAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJDYWxsLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIGlmICghcmVzIHx8IHJlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm8gdXNlciBlbnRpdGllcyBmb3VuZCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fdXNlciA9IHJlc1swXTtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2VyKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChlID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignVXNlckVudGl0eVNlcnZpY2UgZW5jb3VudGVyZWQgYW4gZXJyb3InLCBlKTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgY29uZmlnICovXHJcbiAgcHJpdmF0ZSBnZXRDb25maWdXaXRoRGVmYXVsdHMoKTogVXNlckVudGl0eVNlcnZpY2VDb25maWcge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZztcclxuICAgIGNvbmZpZy52YWxpZGF0ZSA9IGNvbmZpZy52YWxpZGF0ZSB8fCAoKHVzZXI6IEFzc2VydGVkVXNlck1vZGVsKTogYm9vbGVhbiA9PiB0cnVlKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdHJpcGxlLWVxdWFsc1xyXG4gICAgY29uZmlnLmdldFVzZXJPbkluaXQgPSBjb25maWcuZ2V0VXNlck9uSW5pdCA9PSB1bmRlZmluZWQgPyB0cnVlIDogY29uZmlnLmdldFVzZXJPbkluaXQ7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn1cclxuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9zZXJ2aWNlcy91c2VyLWVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFL0UsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCOzs7OztPQUtHO0lBQ0gsWUFDbUIsWUFBMEIsRUFDMUIsVUFBc0IsRUFDa0IsdUJBQWdEO1FBRnhGLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDa0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQTFCM0csK0JBQStCO1FBQ2QsbUJBQWMsR0FBVyw0QkFBNEIsQ0FBQztRQWF2RSxnQ0FBZ0M7UUFDZixXQUFNLEdBQXVDLElBQUksZUFBZSxDQUFvQixTQUFTLENBQUMsQ0FBQztRQWE5RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJB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RyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQztxQkFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0QsTUFBTSxDQUFDLENBQUM7Z0JBQ1YsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztLQUFBO0lBRUQsNENBQTRDO0lBQ3BDLHFCQUFxQjtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDNUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUF1QixFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRiwwQ0FBMEM7UUFDMUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ3ZGLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUVwRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7O1lBckpGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBWFEsWUFBWTtZQUhaLFVBQVU7WUFTVix1QkFBdUIsdUJBd0MzQixRQUFRLFlBQUksTUFBTSxTQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpcnN0LCBzaGFyZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFzc2VydGVkVXNlck1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy91c2VyLWVudGl0eS1zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG4vKiogVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIHVzZXIgb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxBc3NlcnRlZFVzZXJNb2RlbD47XHJcblxyXG4gIC8qKiBUcnVlIGlmIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBmb3IgdXNlICovXHJcbiAgcHJpdmF0ZSBpc1NlcnZpY2VBdmFpbGFibGU6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBUaGUgZ2V0IHVzZXIgcGFydGlhbCB1cmwgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGdldFVzZXJQYXJ0aWFsOiBzdHJpbmcgPSAnYXBpL3VzZXJNYW5hZ2VtZW50L3YxL3VzZXInO1xyXG5cclxuICAvKiogVGhlIHVzZXIgY2FsbCAqL1xyXG4gIHByaXZhdGUgdXNlckNhbGw6IFByb21pc2U8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PjtcclxuXHJcbiAgLyoqIFRoZSB1c2VyIG1vZGVsIGFuZCBoYXNoICovXHJcbiAgcHJpdmF0ZSBnZXQgX3VzZXIoKTogQXNzZXJ0ZWRVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckJTLnZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIHNldCBfdXNlcih2YWw6IEFzc2VydGVkVXNlck1vZGVsKSB7XHJcbiAgICB0aGlzLnVzZXJCUy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKiogdGhlIHVzZXIgYmVoYXZpb3Igc3ViamVjdCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckJTOiBCZWhhdmlvclN1YmplY3Q8QXNzZXJ0ZWRVc2VyTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSBvYXV0aFNlcnZpY2UgVGhlIG9hdXRoIG9pZGMgMiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIGh0dHAgY2xpZW50XHJcbiAgICogQHBhcmFtIHVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRykgcmVhZG9ubHkgdXNlckVudGl0eVNlcnZpY2VDb25maWc6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnXHJcbiAgKSB7XHJcbiAgICB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnID0gIXRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPyBuZXcgVXNlckVudGl0eVNlcnZpY2VDb25maWcoKSA6IHRoaXMuZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXBhcmFtZXRlci1yZWFzc2lnbm1lbnRcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgPSB0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnLnVzZXJFbnRpdHlCYXNlVXJsIHx8ICcvJztcclxuICAgIHRoaXMudXNlciQgPSB0aGlzLnVzZXJCUy5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZShmaWx0ZXIodmFsID0+ICEhdmFsKSk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlck9uSW5pdCkge1xyXG4gICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2VydmljZUF2YWlsYWJsZSA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNTZXJ2aWNlQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0VXNlckZyb21BcGkoKVxyXG4gICAgICAgICAgLnRoZW4oKVxyXG4gICAgICAgICAgLmNhdGNoKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciAqL1xyXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VyKCk6IFByb21pc2U8QXNzZXJ0ZWRVc2VyTW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlciQucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHNoYXJlKCksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgIHJlamVjdChlKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YoZSk7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodXNlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdXNlciBUaGUgbmV3IHVzZXIgbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyPzogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICBpZiAodXNlcikge1xyXG4gICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRVc2VyRnJvbUFwaSgpO1xyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIG1lZXRzIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHByb3ZpZGVkICovXHJcbiAgcHVibGljIHZhbGlkYXRlVXNlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnICYmIHRoaXMuX3VzZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudmFsaWRhdGUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciBmcm9tIHRoZSBhcGkgKi9cclxuICBwcml2YXRlIGFzeW5jIGdldFVzZXJGcm9tQXBpKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gdXNlIHRoZSBsb2NhbCBwYXRoIGlmIHRoZXJlIGlzIG5vdCBiYXNlIHBhdGggcHJvdmlkZWRcclxuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShmaXJzdChlID0+IGUudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnKSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIGlzc3VlciB0byB0aGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0IHNvIHRoZSBhcGkga25vd3Mgd2hhdCB0ZW5hbnQgdG8gdXNlXHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCl9YCxcclxuICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24tVGVuYW50JzogKFxyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuICAgICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlWydjb25maWcnXT8uaXNzdWVyXHJcbiAgICAgICAgICAgICAgfHwgdGhpcy5vYXV0aFNlcnZpY2U/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5pc3N1ZXIgfHwgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9hY2NvdW50L2xvZ2luJywgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9jb25uZWN0L2F1dGhvcml6ZScsICcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51c2VyQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PihcclxuICAgICAgICAgIGAke3RoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmx9JHt0aGlzLmdldFVzZXJQYXJ0aWFsfT9zdWJJZEZyb21Ub2tlbj10cnVlJmNyZWF0ZUVtcHR5PXRydWUmd2l0aG91dENoaWxkTGlua3M9JHshdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZy5pbmNsdWRlTGlua3N9YCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyQ2FsbC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHVzZXIgZW50aXRpZXMgZm91bmQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3VzZXIgPSByZXNbMF07XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRlVXNlcigpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXJFbnRpdHlTZXJ2aWNlIGVuY291bnRlcmVkIGFuIGVycm9yJywgZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlIGNvbmZpZyAqL1xyXG4gIHByaXZhdGUgZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWc7XHJcbiAgICBjb25maWcudmFsaWRhdGUgPSBjb25maWcudmFsaWRhdGUgfHwgKCh1c2VyOiBBc3NlcnRlZFVzZXJNb2RlbCk6IGJvb2xlYW4gPT4gdHJ1ZSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHRyaXBsZS1lcXVhbHNcclxuICAgIGNvbmZpZy5nZXRVc2VyT25Jbml0ID0gY29uZmlnLmdldFVzZXJPbkluaXQgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5nZXRVc2VyT25Jbml0O1xyXG4gICAgY29uZmlnLmluY2x1ZGVMaW5rcyA9IGNvbmZpZy5pbmNsdWRlTGlua3MgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5pbmNsdWRlTGlua3M7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './cache.service';
|
|
2
2
|
import { CacheService } from './cache.service';
|
|
3
3
|
export const APIS = [CacheService];
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL2FwaS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5leHBvcnQgY29uc3QgQVBJUyA9IFtDYWNoZVNlcnZpY2VdO1xyXG4iXX0=
|
|
@@ -203,4 +203,4 @@ CacheService.ctorParameters = () => [
|
|
|
203
203
|
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH,] }] },
|
|
204
204
|
{ type: Configuration, decorators: [{ type: Optional }] }
|
|
205
205
|
];
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDEvX3dvcmsvOTEvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL2FwaS9jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUcsQ0FBQSx1REFBdUQ7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFDRSxNQUFnQyxzQkFBc0IsQ0FBQztBQVN6RixPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUEwQixjQUFjLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUEwQyxrQkFBa0IsQ0FBQztBQUlyRixNQUFNLE9BQU8sWUFBWTtJQU1yQixZQUFzQixVQUFzQixFQUFnQyxRQUFnQixFQUFjLGFBQTRCO1FBQWhILGVBQVUsR0FBVixVQUFVLENBQVk7UUFKbEMsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNsQixtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUM7UUFD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QU8sRUFBRSxPQUFPO1lBQ2hCLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7OztZQWhTSixVQUFVOzs7WUFkRixVQUFVO3lDQXFCZ0MsUUFBUSxZQUFHLE1BQU0sU0FBQyxTQUFTO1lBVnJFLGFBQWEsdUJBVTZFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqLy8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXHJcbiAgICAgICAgIEh0dHBSZXNwb25zZSwgSHR0cEV2ZW50IH0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjIH0gICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9lbmNvZGVyJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENyZWF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbC9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgUmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uL21vZGVsL3JldHJpZXZlQ2FjaGVFbnRyeVJlc3BvbnNlTW9kZWwnO1xyXG5pbXBvcnQgeyBVcGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvdXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCc7XHJcblxyXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENhY2hlU2VydmljZSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGJhc2VQYXRoID0gJy8nO1xyXG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBwdWJsaWMgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICBpZiAoYmFzZVBhdGgpIHtcclxuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29uZmlndXJhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXHJcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb25zdW1lIG9mIGNvbnN1bWVzKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlcyB0aGUgc3BlY2lmaWVkIGtleS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGtleSBUaGUga2V5LlxyXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cclxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIF9kZWxldGUoa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHB1YmxpYyBfZGVsZXRlKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XHJcbiAgICBwdWJsaWMgX2RlbGV0ZShrZXk6IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcclxuICAgIHB1YmxpYyBfZGVsZXRlKGtleTogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAgICAgaWYgKGtleSA9PT0gbnVsbCB8fCBrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBrZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBfZGVsZXRlLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xyXG5cclxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAob2F1dGgyKSByZXF1aXJlZFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0eXBlb2YgdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbigpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbjtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XHJcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdkZWxldGUnLGAke3RoaXMuYmFzZVBhdGh9L3YxL0NhY2hlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKX1gLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIHNwZWNpZmllZCByZXF1ZXN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYm9keSBUaGUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXHJcbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjcmVhdGUoYm9keT86IENyZWF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHB1YmxpYyBjcmVhdGUoYm9keT86IENyZWF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxhbnk+PjtcclxuICAgIHB1YmxpYyBjcmVhdGUoYm9keT86IENyZWF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XHJcbiAgICBwdWJsaWMgY3JlYXRlKGJvZHk/OiBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcclxuXHJcbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKG9hdXRoMikgcmVxdWlyZWRcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbiA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4oKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xyXG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICAndGV4dC9qc29uJyxcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL18qK2pzb24nXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcclxuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PGFueT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L3YxL0NhY2hlYCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVmcmVzaGVzIHRoZSBjYWNoZSBlbnRyeVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ga2V5IFxyXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cclxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZnJlc2goa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHB1YmxpYyByZWZyZXNoKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XHJcbiAgICBwdWJsaWMgcmVmcmVzaChrZXk6IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcclxuICAgIHB1YmxpYyByZWZyZXNoKGtleTogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAgICAgaWYgKGtleSA9PT0gbnVsbCB8fCBrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBrZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyByZWZyZXNoLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xyXG5cclxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAob2F1dGgyKSByZXF1aXJlZFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0eXBlb2YgdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbigpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbjtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XHJcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdnZXQnLGAke3RoaXMuYmFzZVBhdGh9L3YxL0NhY2hlL3JlZnJlc2gvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGtleSkpfWAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoaXMgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBrZXkgXHJcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxyXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmV0cmlldmUoa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8UmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbD47XHJcbiAgICBwdWJsaWMgcmV0cmlldmUoa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxSZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsPj47XHJcbiAgICBwdWJsaWMgcmV0cmlldmUoa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8UmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbD4+O1xyXG4gICAgcHVibGljIHJldHJpZXZlKGtleTogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAgICAgaWYgKGtleSA9PT0gbnVsbCB8fCBrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBrZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyByZXRyaWV2ZS4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcclxuXHJcbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKG9hdXRoMikgcmVxdWlyZWRcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbiA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4oKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICd0ZXh0L3BsYWluJyxcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICAndGV4dC9qc29uJ1xyXG4gICAgICAgIF07XHJcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcclxuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PFJldHJpZXZlQ2FjaGVFbnRyeVJlc3BvbnNlTW9kZWw+KCdnZXQnLGAke3RoaXMuYmFzZVBhdGh9L3YxL0NhY2hlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKX1gLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHNwZWNpZmllZCBrZXkuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleS5cclxuICAgICAqIEBwYXJhbSBib2R5IFRoZSByZXF1ZXN0LlxyXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cclxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZShrZXk6IHN0cmluZywgYm9keT86IFVwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PjtcclxuICAgIHB1YmxpYyB1cGRhdGUoa2V5OiBzdHJpbmcsIGJvZHk/OiBVcGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XHJcbiAgICBwdWJsaWMgdXBkYXRlKGtleTogc3RyaW5nLCBib2R5PzogVXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcclxuICAgIHB1YmxpYyB1cGRhdGUoa2V5OiBzdHJpbmcsIGJvZHk/OiBVcGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAgICAgaWYgKGtleSA9PT0gbnVsbCB8fCBrZXkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBrZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGUuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xyXG5cclxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAob2F1dGgyKSByZXF1aXJlZFxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0eXBlb2YgdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbigpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbjtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XHJcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgICd0ZXh0L2pzb24nLFxyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vXyoranNvbidcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xyXG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8YW55PigncHV0JyxgJHt0aGlzLmJhc2VQYXRofS92MS9DYWNoZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoa2V5KSl9YCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9hcGkvY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHLENBQUEsdURBQXVEO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ0UsTUFBZ0Msc0JBQXNCLENBQUM7QUFTekYsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7QUFJckYsTUFBTSxPQUFPLFlBQVk7SUFNckIsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUd2QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLFFBQWtCO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FB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QUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsY0FBYztTQUNqQyxDQUNKLENBQUM7SUFDTixDQUFDOzs7WUFoU0osVUFBVTs7O1lBZEYsVUFBVTt5Q0FxQmdDLFFBQVEsWUFBRyxNQUFNLFNBQUMsU0FBUztZQVZyRSxhQUFhLHVCQVU2RSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNhbXBsZSBBUElcclxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcclxuICpcclxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDFcclxuICogXHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cclxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi8vKiB0c2xpbnQ6ZGlzYWJsZTpuby11bnVzZWQtdmFyaWFibGUgbWVtYmVyLW9yZGVyaW5nICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLFxyXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYyB9ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCc7XHJcbmltcG9ydCB7IFJldHJpZXZlQ2FjaGVFbnRyeVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsJztcclxuaW1wb3J0IHsgVXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCB9IGZyb20gJy4uL21vZGVsL3VwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwnO1xyXG5cclxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZVNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICcvJztcclxuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcclxuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0gY29uc3VtZXMgc3RyaW5nW10gbWltZS10eXBlc1xyXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjYW5Db25zdW1lRm9ybShjb25zdW1lczogc3RyaW5nW10pOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xyXG4gICAgICAgIGZvciAoY29uc3QgY29uc3VtZSBvZiBjb25zdW1lcykge1xyXG4gICAgICAgICAgICBpZiAoZm9ybSA9PT0gY29uc3VtZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZXMgdGhlIHNwZWNpZmllZCBrZXkuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleS5cclxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXHJcbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZGVsZXRlKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwdWJsaWMgX2RlbGV0ZShrZXk6IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xyXG4gICAgcHVibGljIF9kZWxldGUoa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XHJcbiAgICBwdWJsaWMgX2RlbGV0ZShrZXk6IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwgfHwga2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIga2V5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgX2RlbGV0ZS4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcclxuXHJcbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKG9hdXRoMikgcmVxdWlyZWRcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbiA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4oKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xyXG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8YW55PignZGVsZXRlJyxgJHt0aGlzLmJhc2VQYXRofS92MS9DYWNoZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoa2V5KSl9YCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBzcGVjaWZpZWQgcmVxdWVzdC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgVGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxyXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3JlYXRlKGJvZHk/OiBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwdWJsaWMgY3JlYXRlKGJvZHk/OiBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XHJcbiAgICBwdWJsaWMgY3JlYXRlKGJvZHk/OiBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+O1xyXG4gICAgcHVibGljIGNyZWF0ZShib2R5PzogQ3JlYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XHJcblxyXG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChvYXV0aDIpIHJlcXVpcmVkXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4gPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKClcclxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcclxuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgJ3RleHQvanNvbicsXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9fKitqc29uJ1xyXG4gICAgICAgIF07XHJcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XHJcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS92MS9DYWNoZWAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZnJlc2hlcyB0aGUgY2FjaGUgZW50cnlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGtleSBcclxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXHJcbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwdWJsaWMgcmVmcmVzaChrZXk6IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xyXG4gICAgcHVibGljIHJlZnJlc2goa2V5OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XHJcbiAgICBwdWJsaWMgcmVmcmVzaChrZXk6IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwgfHwga2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIga2V5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgcmVmcmVzaC4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcclxuXHJcbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKG9hdXRoMikgcmVxdWlyZWRcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbiA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4oKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xyXG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8YW55PignZ2V0JyxgJHt0aGlzLmJhc2VQYXRofS92MS9DYWNoZS9yZWZyZXNoLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKX1gLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGlzIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ga2V5IFxyXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cclxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJldHJpZXZlKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFJldHJpZXZlQ2FjaGVFbnRyeVJlc3BvbnNlTW9kZWw+O1xyXG4gICAgcHVibGljIHJldHJpZXZlKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8UmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbD4+O1xyXG4gICAgcHVibGljIHJldHJpZXZlKGtleTogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PFJldHJpZXZlQ2FjaGVFbnRyeVJlc3BvbnNlTW9kZWw+PjtcclxuICAgIHB1YmxpYyByZXRyaWV2ZShrZXk6IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwgfHwga2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIga2V5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgcmV0cmlldmUuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XHJcblxyXG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChvYXV0aDIpIHJlcXVpcmVkXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4gPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKClcclxuICAgICAgICAgICAgICAgIDogdGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAndGV4dC9wbGFpbicsXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgJ3RleHQvanNvbidcclxuICAgICAgICBdO1xyXG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XHJcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxSZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsPignZ2V0JyxgJHt0aGlzLmJhc2VQYXRofS92MS9DYWNoZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoa2V5KSl9YCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkuXHJcbiAgICAgKiBAcGFyYW0gYm9keSBUaGUgcmVxdWVzdC5cclxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXHJcbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cGRhdGUoa2V5OiBzdHJpbmcsIGJvZHk/OiBVcGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwdWJsaWMgdXBkYXRlKGtleTogc3RyaW5nLCBib2R5PzogVXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xyXG4gICAgcHVibGljIHVwZGF0ZShrZXk6IHN0cmluZywgYm9keT86IFVwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XHJcbiAgICBwdWJsaWMgdXBkYXRlKGtleTogc3RyaW5nLCBib2R5PzogVXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbCwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IG51bGwgfHwga2V5ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIga2V5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlLicpO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcclxuXHJcbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKG9hdXRoMikgcmVxdWlyZWRcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5hY2Nlc3NUb2tlbiA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW4oKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uYWNjZXNzVG9rZW47XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xyXG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICAndGV4dC9qc29uJyxcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL18qK2pzb24nXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcclxuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PGFueT4oJ3B1dCcsYCR7dGhpcy5iYXNlUGF0aH0vdjEvQ2FjaGUvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGtleSkpfWAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -56,4 +56,4 @@ export class Configuration {
|
|
|
56
56
|
return mime != null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxhQUFhO0lBUXRCLFlBQVksMEJBQW1ELEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QixDQUFFLFlBQXNCO1FBQ2xELElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNwQixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFpQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDMUIsTUFBTSxRQUFRLEdBQVcsSUFBSSxNQUFNLENBQUMsK0RBQStELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssNkJBQTZCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzIHtcclxuICAgIGFwaUtleXM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmd9O1xyXG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgICBwYXNzd29yZD86IHN0cmluZztcclxuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XHJcbiAgICBiYXNlUGF0aD86IHN0cmluZztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uIHtcclxuICAgIGFwaUtleXM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmd9O1xyXG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgICBwYXNzd29yZD86IHN0cmluZztcclxuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XHJcbiAgICBiYXNlUGF0aD86IHN0cmluZztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvblBhcmFtZXRlcnM6IENvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzID0ge30pIHtcclxuICAgICAgICB0aGlzLmFwaUtleXMgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5hcGlLZXlzO1xyXG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy51c2VybmFtZTtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkID0gY29uZmlndXJhdGlvblBhcmFtZXRlcnMucGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5iYXNlUGF0aDtcclxuICAgICAgICB0aGlzLndpdGhDcmVkZW50aWFscyA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLndpdGhDcmVkZW50aWFscztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbGVjdCB0aGUgY29ycmVjdCBjb250ZW50LXR5cGUgdG8gdXNlIGZvciBhIHJlcXVlc3QuXHJcbiAgICAgKiBVc2VzIHtAbGluayBDb25maWd1cmF0aW9uI2lzSnNvbk1pbWV9IHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBjb250ZW50LXR5cGUuXHJcbiAgICAgKiBJZiBubyBjb250ZW50IHR5cGUgaXMgZm91bmQgcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCB0eXBlIGlmIHRoZSBjb250ZW50VHlwZXMgaXMgbm90IGVtcHR5XHJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVzIC0gdGhlIGFycmF5IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cclxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250ZW50LXR5cGUgb3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpZiBubyBzZWxlY3Rpb24gY291bGQgYmUgbWFkZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdEhlYWRlckNvbnRlbnRUeXBlIChjb250ZW50VHlwZXM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBpZiAoY29udGVudFR5cGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHlwZSA9IGNvbnRlbnRUeXBlcy5maW5kKHggPT4gdGhpcy5pc0pzb25NaW1lKHgpKTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VsZWN0IHRoZSBjb3JyZWN0IGFjY2VwdCBjb250ZW50LXR5cGUgdG8gdXNlIGZvciBhIHJlcXVlc3QuXHJcbiAgICAgKiBVc2VzIHtAbGluayBDb25maWd1cmF0aW9uI2lzSnNvbk1pbWV9IHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBhY2NlcHQgY29udGVudC10eXBlLlxyXG4gICAgICogSWYgbm8gY29udGVudCB0eXBlIGlzIGZvdW5kIHJldHVybiB0aGUgZmlyc3QgZm91bmQgdHlwZSBpZiB0aGUgY29udGVudFR5cGVzIGlzIG5vdCBlbXB0eVxyXG4gICAgICogQHBhcmFtIGFjY2VwdHMgLSB0aGUgYXJyYXkgb2YgY29udGVudCB0eXBlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbi5cclxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250ZW50LXR5cGUgb3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpZiBubyBzZWxlY3Rpb24gY291bGQgYmUgbWFkZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdEhlYWRlckFjY2VwdChhY2NlcHRzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKGFjY2VwdHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0eXBlID0gYWNjZXB0cy5maW5kKHggPT4gdGhpcy5pc0pzb25NaW1lKHgpKTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2NlcHRzWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIGlmIHRoZSBnaXZlbiBNSU1FIGlzIGEgSlNPTiBNSU1FLlxyXG4gICAgICogSlNPTiBNSU1FIGV4YW1wbGVzOlxyXG4gICAgICogICBhcHBsaWNhdGlvbi9qc29uXHJcbiAgICAgKiAgIGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGOFxyXG4gICAgICogICBBUFBMSUNBVElPTi9KU09OXHJcbiAgICAgKiAgIGFwcGxpY2F0aW9uL3ZuZC5jb21wYW55K2pzb25cclxuICAgICAqIEBwYXJhbSBtaW1lIC0gTUlNRSAoTXVsdGlwdXJwb3NlIEludGVybmV0IE1haWwgRXh0ZW5zaW9ucylcclxuICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgZ2l2ZW4gTUlNRSBpcyBKU09OLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0pzb25NaW1lKG1pbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGpzb25NaW1lOiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeKGFwcGxpY2F0aW9uXFwvanNvbnxbXjsvIFxcdF0rXFwvW147LyBcXHRdK1srXWpzb24pWyBcXHRdKig7LiopPyQnLCAnaScpO1xyXG4gICAgICAgIHJldHVybiBtaW1lICE9IG51bGwgJiYgKGpzb25NaW1lLnRlc3QobWltZSkgfHwgbWltZS50b0xvd2VyQ2FzZSgpID09PSAnYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -14,4 +14,4 @@ export class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {
|
|
|
14
14
|
return v.replace(/\+/gi, '%2B');
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhFOzs7O0VBSUU7QUFDRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBQ2hFLFNBQVMsQ0FBQyxDQUFTO1FBQ2YsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQVM7UUFDakIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIgICAgaW1wb3J0IHsgSHR0cFVybEVuY29kaW5nQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG4vKipcclxuKiBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlY1xyXG4qIEZpeCBwbHVzIHNpZ24gKCspIG5vdCBlbmNvZGluZywgc28gc2VudCBhcyBibGFuayBzcGFjZVxyXG4qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTEwNTgjaXNzdWVjb21tZW50LTI0NzM2NzMxOFxyXG4qL1xyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgZXh0ZW5kcyBIdHRwVXJsRW5jb2RpbmdDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoazogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBrID0gc3VwZXIuZW5jb2RlS2V5KGspO1xyXG4gICAgICAgIHJldHVybiBrLnJlcGxhY2UoL1xcKy9naSwgJyUyQicpO1xyXG4gICAgfVxyXG4gICAgZW5jb2RlVmFsdWUodjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB2ID0gc3VwZXIuZW5jb2RlVmFsdWUodik7XHJcbiAgICAgICAgcmV0dXJuIHYucmVwbGFjZSgvXFwrL2dpLCAnJTJCJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export const CacheExpirationType = {
|
|
|
13
13
|
Sliding: 'Sliding',
|
|
14
14
|
Absolute: 'Absolute'
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVFeHBpcmF0aW9uVHlwZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jYWNoZUV4cGlyYXRpb25UeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFPSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixPQUFPLEVBQUUsU0FBZ0M7SUFDekMsUUFBUSxFQUFFLFVBQWlDO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBleHBpcmF0aW9uIHR5cGVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBDYWNoZUV4cGlyYXRpb25UeXBlID0gJ1NsaWRpbmcnIHwgJ0Fic29sdXRlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDYWNoZUV4cGlyYXRpb25UeXBlID0ge1xyXG4gICAgU2xpZGluZzogJ1NsaWRpbmcnIGFzIENhY2hlRXhwaXJhdGlvblR5cGUsXHJcbiAgICBBYnNvbHV0ZTogJ0Fic29sdXRlJyBhcyBDYWNoZUV4cGlyYXRpb25UeXBlXHJcbn07Il19
|
package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBDYWNoZUV4cGlyYXRpb25UeXBlIH0gZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgQ3JlYXRlIGNhY2hlIGVudGVyeSByZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUga2V5LlxyXG4gICAgICovXHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB0eXBlIG9mIHRoZSBleHBpcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBleHBpcmF0aW9uVHlwZT86IENhY2hlRXhwaXJhdGlvblR5cGU7XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgZXhwaXJhdGlvbiB0aW1lIG1pbnV0ZXMuXHJcbiAgICAgKi9cclxuICAgIGV4cGlyYXRpb25UaW1lTWludXRlcz86IG51bWJlcjtcclxufSJdfQ==
|
|
@@ -2,4 +2,4 @@ export * from './cacheExpirationType';
|
|
|
2
2
|
export * from './createCacheEntryRequestModel';
|
|
3
3
|
export * from './retrieveCacheEntryResponseModel';
|
|
4
4
|
export * from './updateCacheEntryRequestModel';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuIl19
|
package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js
CHANGED
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBlbnRyeSByZXRyaWV2ZSByZXNwb25zZSBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHZhbHVlPzogYW55O1xyXG59Il19
|
package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js
CHANGED
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBDYWNoZSBlbnRyeSByZXF1ZXN0IG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwgeyBcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxufSJdfQ==
|
|
@@ -6,4 +6,4 @@ export const COLLECTION_FORMATS = {
|
|
|
6
6
|
'ssv': ' ',
|
|
7
7
|
'pipes': '|'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxVQUFVLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsR0FBRztDQUNmLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBU0VfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdiYXNlUGF0aCcpO1xyXG5leHBvcnQgY29uc3QgQ09MTEVDVElPTl9GT1JNQVRTID0ge1xyXG4gICAgJ2Nzdic6ICcsJyxcclxuICAgICd0c3YnOiAnICAgJyxcclxuICAgICdzc3YnOiAnICcsXHJcbiAgICAncGlwZXMnOiAnfCdcclxufVxyXG4iXX0=
|
|
@@ -5,4 +5,4 @@ export * from './client-generated/configuration';
|
|
|
5
5
|
export * from './client-generated/model/models';
|
|
6
6
|
export * from './services/server-cache.service';
|
|
7
7
|
export * from './models/policy-person';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUtYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBQdWJsaWMgQXBpIHNlcnZpY2UgZm9yIGRpc3RyaWJ1dGVkIGNhY2hlICovXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlJztcclxuXHJcbmV4cG9ydCB7IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSCB9IGZyb20gJy4vbW9kZWxzL2NvbnN0YW50cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvY29uZmlndXJhdGlvbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvbW9kZWxzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcG9saWN5LXBlcnNvbic7XHJcbiJdfQ==
|
|
@@ -23,4 +23,4 @@ DistributedCacheModule.decorators = [
|
|
|
23
23
|
]
|
|
24
24
|
},] }
|
|
25
25
|
];
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsbUNBQW1DO0FBZW5DLE1BQU0sT0FBTyxzQkFBc0I7OztZQWRsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsU0FBUzt3QkFDbEIsV0FBVyxFQUFFLDJCQUEyQjtxQkFDekM7b0JBQ0QsWUFBWTtvQkFDWixrQkFBa0I7aUJBQ25CO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL2FwaS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQkFTRV9QQVRIIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IFNlcnZlckNhY2hlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBESVNUUklCVVRFRF9DQUNIRV9CQVNFX1BBVEggfSBmcm9tICcuL21vZGVscy9jb25zdGFudHMnO1xyXG5cclxuLyoqIFRoZSBkaXN0cmlidXRlZCBjYWNoZSBtb2R1bGUgKi9cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJBU0VfUEFUSCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSFxyXG4gICAgfSxcclxuICAgIENhY2hlU2VydmljZSxcclxuICAgIFNlcnZlckNhY2hlU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERpc3RyaWJ1dGVkQ2FjaGVNb2R1bGUge31cclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const DISTRIBUTED_CACHE_BASE_PATH = new InjectionToken('DistributedCacheBasePath');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay8zMzQvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9tb2RlbHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQTJCLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSDogSW5qZWN0aW9uVG9rZW48c3RyaW5nPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEaXN0cmlidXRlZENhY2hlQmFzZVBhdGgnKTtcclxuIl19
|
|
@@ -6,4 +6,4 @@ export class PolicyPerson {
|
|
|
6
6
|
this.mailingAddress = {};
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LXBlcnNvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvMzM0L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvbW9kZWxzL3BvbGljeS1wZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0Esd0JBQXdCO0FBQ3hCLE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBVUksdUJBQXVCO1FBQ2hCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBQzFCLG1CQUFjLEdBQVksRUFBRSxDQUFDO0lBSXhDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL29hdXRoL21vZGVscy9nZW5lcmF0ZWQvcGVyc29uJztcclxuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4uLy4uL2Zvcm1zL21vZGVscy9hZGRyZXNzJztcclxuXHJcbi8qKiBUaGUgcG9saWN5IHBlcnNvbiAqL1xyXG5leHBvcnQgY2xhc3MgUG9saWN5UGVyc29uIGltcGxlbWVudHMgUGVyc29uIHtcclxuICAgIC8qKiBJbXBsZW1lbnRlZCBwcm9wcyAqL1xyXG4gICAgcHVibGljIGV4Y2hhbmdlSWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBncm91cFBvbGljeU51bWJlcjogc3RyaW5nO1xyXG4gICAgcHVibGljIGRvYjogRGF0ZTtcclxuICAgIHB1YmxpYyBnZW5kZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbGF0aW9uc2hpcDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBBZGRpdGlvbmFsIFByb3BzICovXHJcbiAgICBwdWJsaWMgaG9tZUFkZHJlc3M6IEFkZHJlc3MgPSB7fTtcclxuICAgIHB1YmxpYyBtYWlsaW5nQWRkcmVzczogQWRkcmVzcyA9IHt9O1xyXG4gICAgcHVibGljIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGhvbmU6IHN0cmluZztcclxuICAgIHB1YmxpYyBwaG9uZVR5cGU6IHN0cmluZztcclxufVxyXG4iXX0=
|