@softheon/armature 10.44.2 → 10.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/bundles/softheon-armature.umd.js +104 -2
  2. package/bundles/softheon-armature.umd.js.map +1 -1
  3. package/bundles/softheon-armature.umd.min.js +1 -1
  4. package/bundles/softheon-armature.umd.min.js.map +1 -1
  5. package/esm2015/lib/alert-banner/alert-banner-api.js +1 -1
  6. package/esm2015/lib/alert-banner/alert-banner.module.js +1 -1
  7. package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +1 -1
  8. package/esm2015/lib/alert-banner/models/alert-banner-config.js +1 -1
  9. package/esm2015/lib/alert-banner/models/alert-banner-context.js +1 -1
  10. package/esm2015/lib/alert-banner/models/constants.js +1 -1
  11. package/esm2015/lib/alert-banner/services/alert-banner.service.js +1 -1
  12. package/esm2015/lib/armature.module.js +1 -1
  13. package/esm2015/lib/base-components/base-component-api.js +1 -1
  14. package/esm2015/lib/base-components/base-component.module.js +1 -1
  15. package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +1 -1
  16. package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +1 -1
  17. package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +1 -1
  18. package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +2 -2
  19. package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +1 -1
  20. package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +1 -1
  21. package/esm2015/lib/component-save-print/services/component-save-print.service.js +1 -1
  22. package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +1 -1
  23. package/esm2015/lib/core/client-generated/api/session.service.js +1 -1
  24. package/esm2015/lib/core/client-generated/configuration.js +1 -1
  25. package/esm2015/lib/core/client-generated/encoder.js +1 -1
  26. package/esm2015/lib/core/client-generated/model/applicationUserModel.js +1 -1
  27. package/esm2015/lib/core/client-generated/model/assertedUserModel.js +1 -1
  28. package/esm2015/lib/core/client-generated/model/brandingModel.js +1 -1
  29. package/esm2015/lib/core/client-generated/model/errorModel.js +1 -1
  30. package/esm2015/lib/core/client-generated/model/folderLink.js +1 -1
  31. package/esm2015/lib/core/client-generated/model/identityProfile.js +1 -1
  32. package/esm2015/lib/core/client-generated/model/models.js +1 -1
  33. package/esm2015/lib/core/client-generated/model/oAuthModel.js +1 -1
  34. package/esm2015/lib/core/client-generated/model/preferencesRow.js +1 -1
  35. package/esm2015/lib/core/client-generated/model/rolesRow.js +1 -1
  36. package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +1 -1
  37. package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +1 -1
  38. package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +1 -1
  39. package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +1 -1
  40. package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +1 -1
  41. package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +1 -1
  42. package/esm2015/lib/core/client-generated/model/settingsProfile.js +1 -1
  43. package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +1 -1
  44. package/esm2015/lib/core/client-generated/model/themePaletteModel.js +1 -1
  45. package/esm2015/lib/core/client-generated/model/trackingModel.js +1 -1
  46. package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +1 -1
  47. package/esm2015/lib/core/client-generated/variables.js +1 -1
  48. package/esm2015/lib/core/components/app-template/app-template.component.js +1 -1
  49. package/esm2015/lib/core/functions/guid.js +1 -1
  50. package/esm2015/lib/core/functions/naming-convention.js +1 -1
  51. package/esm2015/lib/core/initializer/abstract-startup-service.js +1 -1
  52. package/esm2015/lib/core/initializer/initializer.service.js +1 -1
  53. package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +1 -1
  54. package/esm2015/lib/core/models/base-config.js +1 -1
  55. package/esm2015/lib/core/models/constants.js +1 -1
  56. package/esm2015/lib/core/models/data-store-config.js +1 -1
  57. package/esm2015/lib/core/models/header-config.js +1 -1
  58. package/esm2015/lib/core/models/http-verbs.js +1 -1
  59. package/esm2015/lib/core/models/navigation-config.js +1 -1
  60. package/esm2015/lib/core/models/oidc-auth-settings.js +1 -1
  61. package/esm2015/lib/core/models/route-path.js +1 -1
  62. package/esm2015/lib/core/models/session-config.js +1 -1
  63. package/esm2015/lib/core/models/styles.js +1 -1
  64. package/esm2015/lib/core/models/typed-session.js +1 -1
  65. package/esm2015/lib/core/models/user-entity-service-config.js +1 -1
  66. package/esm2015/lib/core/services/authorization.service.js +1 -1
  67. package/esm2015/lib/core/services/banner.service.js +1 -1
  68. package/esm2015/lib/core/services/base-config.service.js +1 -1
  69. package/esm2015/lib/core/services/custom-auth-config.service.js +1 -1
  70. package/esm2015/lib/core/services/default-config.service.js +1 -1
  71. package/esm2015/lib/core/services/session.service.js +1 -1
  72. package/esm2015/lib/core/services/user-entity.service.js +1 -1
  73. package/esm2015/lib/distributed-cache/client-generated/api/api.js +1 -1
  74. package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +1 -1
  75. package/esm2015/lib/distributed-cache/client-generated/configuration.js +1 -1
  76. package/esm2015/lib/distributed-cache/client-generated/encoder.js +1 -1
  77. package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +1 -1
  78. package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +1 -1
  79. package/esm2015/lib/distributed-cache/client-generated/model/models.js +1 -1
  80. package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +1 -1
  81. package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +1 -1
  82. package/esm2015/lib/distributed-cache/client-generated/variables.js +1 -1
  83. package/esm2015/lib/distributed-cache/distributed-cache-api.js +1 -1
  84. package/esm2015/lib/distributed-cache/distributed-cache.module.js +1 -1
  85. package/esm2015/lib/distributed-cache/models/constants.js +1 -1
  86. package/esm2015/lib/distributed-cache/models/policy-person.js +1 -1
  87. package/esm2015/lib/distributed-cache/services/server-cache.service.js +1 -1
  88. package/esm2015/lib/error/components/error-common/error-common.component.js +1 -1
  89. package/esm2015/lib/error/error-api.js +1 -1
  90. package/esm2015/lib/error/error.module.js +1 -1
  91. package/esm2015/lib/error/models/error-common-config.js +1 -1
  92. package/esm2015/lib/faq/components/faq/faq.component.js +1 -1
  93. package/esm2015/lib/faq/faq-api.js +1 -1
  94. package/esm2015/lib/faq/faq.module.js +1 -1
  95. package/esm2015/lib/faq/models/faq-config.js +1 -1
  96. package/esm2015/lib/faq/models/faq.js +1 -1
  97. package/esm2015/lib/footer/components/footer/footer.component.js +1 -1
  98. package/esm2015/lib/footer/components/site-map/site-map.component.js +1 -1
  99. package/esm2015/lib/footer/footer-api.js +1 -1
  100. package/esm2015/lib/footer/footer.module.js +1 -1
  101. package/esm2015/lib/footer/models/enum/site-map-direction.js +1 -1
  102. package/esm2015/lib/footer/models/footer-config.js +1 -1
  103. package/esm2015/lib/footer/models/site-map-models.js +1 -1
  104. package/esm2015/lib/forms/components/sof-address/sof-address.component.js +1 -1
  105. package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +1 -1
  106. package/esm2015/lib/forms/directives/input-trim/input-trim.directive.js +97 -0
  107. package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +1 -1
  108. package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +1 -1
  109. package/esm2015/lib/forms/forms-api.js +2 -1
  110. package/esm2015/lib/forms/forms.module.js +4 -2
  111. package/esm2015/lib/forms/models/address.js +1 -1
  112. package/esm2015/lib/forms/models/constants.js +1 -1
  113. package/esm2015/lib/forms/models/county.js +1 -1
  114. package/esm2015/lib/forms/models/enums/states.js +1 -1
  115. package/esm2015/lib/forms/pipes/phone-format.pipe.js +1 -1
  116. package/esm2015/lib/forms/services/alert.service.js +1 -1
  117. package/esm2015/lib/header/components/header/header.component.js +1 -1
  118. package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +1 -1
  119. package/esm2015/lib/header/header-api.js +1 -1
  120. package/esm2015/lib/header/header.module.js +1 -1
  121. package/esm2015/lib/header/models/header-auth.settings.js +1 -1
  122. package/esm2015/lib/header/models/header-language.settings.js +1 -1
  123. package/esm2015/lib/header/models/header-theme.settings.js +1 -1
  124. package/esm2015/lib/header/models/header.settings.js +1 -1
  125. package/esm2015/lib/header/models/mobile-header-nav.settings.js +1 -1
  126. package/esm2015/lib/navigation/components/navigation/navigation.component.js +1 -1
  127. package/esm2015/lib/navigation/models/nav-theme.settings.js +1 -1
  128. package/esm2015/lib/navigation/models/nav.settings.js +1 -1
  129. package/esm2015/lib/navigation/models/navigation.js +1 -1
  130. package/esm2015/lib/navigation/navigation-api.js +1 -1
  131. package/esm2015/lib/navigation/navigation.module.js +1 -1
  132. package/esm2015/lib/oauth/models/constants.js +1 -1
  133. package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +1 -1
  134. package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +1 -1
  135. package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +1 -1
  136. package/esm2015/lib/oauth/models/generated/coverageDetail.js +1 -1
  137. package/esm2015/lib/oauth/models/generated/finance.js +1 -1
  138. package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +1 -1
  139. package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +1 -1
  140. package/esm2015/lib/oauth/models/generated/person.js +1 -1
  141. package/esm2015/lib/oauth/models/generated/policy.js +1 -1
  142. package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +1 -1
  143. package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +1 -1
  144. package/esm2015/lib/oauth/oauth-api.js +1 -1
  145. package/esm2015/lib/oauth/oauth.module.js +1 -1
  146. package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +1 -1
  147. package/esm2015/lib/rbac/directives/rbac-action.directive.js +1 -1
  148. package/esm2015/lib/rbac/models/access-token-claims.js +1 -1
  149. package/esm2015/lib/rbac/models/constants.js +1 -1
  150. package/esm2015/lib/rbac/models/decoded-access-token.js +1 -1
  151. package/esm2015/lib/rbac/models/rbac-config.js +1 -1
  152. package/esm2015/lib/rbac/models/role-access.js +1 -1
  153. package/esm2015/lib/rbac/rbac-api.js +1 -1
  154. package/esm2015/lib/rbac/rbac.module.js +1 -1
  155. package/esm2015/lib/rbac/services/ar-role-nav.service.js +1 -1
  156. package/esm2015/lib/rbac/services/oauth2-role.service.js +1 -1
  157. package/esm2015/lib/rbac/services/role-nav.service.js +1 -1
  158. package/esm2015/lib/resize-panels/components/resize-panels/resize-panels.component.js +1 -1
  159. package/esm2015/lib/resize-panels/models/resize-event.js +1 -1
  160. package/esm2015/lib/resize-panels/resize-panels-api.js +1 -1
  161. package/esm2015/lib/resize-panels/resize-panels.module.js +1 -1
  162. package/esm2015/lib/rum/models/arm-error.js +1 -1
  163. package/esm2015/lib/rum/models/rum-config.js +1 -1
  164. package/esm2015/lib/rum/rum-api.js +1 -1
  165. package/esm2015/lib/rum/rum.module.js +1 -1
  166. package/esm2015/lib/rum/services/rum.service.js +1 -1
  167. package/esm2015/lib/rum/services/shared-error.service.js +1 -1
  168. package/esm2015/lib/rum/services/softheon-error-handler.service.js +1 -1
  169. package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +1 -1
  170. package/esm2015/lib/saml/models/i-saml-request.js +1 -1
  171. package/esm2015/lib/saml/models/i-saml-response.js +1 -1
  172. package/esm2015/lib/saml/models/redirect-saml-request.js +1 -1
  173. package/esm2015/lib/saml/models/sso-gateway-model.js +1 -1
  174. package/esm2015/lib/saml/saml-api.js +1 -1
  175. package/esm2015/lib/saml/saml.module.js +1 -1
  176. package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +1 -1
  177. package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +1 -1
  178. package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +1 -1
  179. package/esm2015/lib/saml/services/send-off/saml.service.js +1 -1
  180. package/esm2015/lib/sof-pipe/constants/constants.js +1 -1
  181. package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +1 -1
  182. package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +1 -1
  183. package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +1 -1
  184. package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +1 -1
  185. package/esm2015/lib/sof-pipe/sof-pipe.api.js +1 -1
  186. package/esm2015/lib/sof-pipe/sof-pipe.module.js +1 -1
  187. package/esm2015/lib/theming/directives/css-override.directive.js +1 -1
  188. package/esm2015/lib/theming/models/css-override.js +1 -1
  189. package/esm2015/lib/theming/services/theme.service.js +1 -1
  190. package/esm2015/lib/theming/theme-api.js +1 -1
  191. package/esm2015/lib/theming/theme.module.js +1 -1
  192. package/esm2015/public-api.js +1 -1
  193. package/esm2015/softheon-armature.js +1 -1
  194. package/fesm2015/softheon-armature.js +100 -4
  195. package/fesm2015/softheon-armature.js.map +1 -1
  196. package/lib/base-components/sof-modal/sof-modal.component.d.ts +2 -0
  197. package/lib/forms/directives/input-trim/input-trim.directive.d.ts +55 -0
  198. package/lib/forms/forms-api.d.ts +1 -0
  199. package/package.json +1 -1
  200. package/softheon-armature.metadata.json +1 -1
@@ -383,4 +383,4 @@ SessionService.ctorParameters = () => [
383
383
  */
384
384
  export class RedirectSessionConfigs {
385
385
  }
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU1QyxtREFBbUQ7QUFDbkQsTUFBTSxtQ0FBbUMsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRSwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLGNBQWM7SUFpRnpCOzs7Ozs7T0FNRztJQUNILFlBQytDLGFBQTRCLEVBQ3BDLE9BQVksRUFDcEIsV0FBeUIsRUFDckMsVUFBc0I7O1FBSE0sa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkZ6QyxvREFBb0Q7UUFD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LElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7OztZQTNhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLGFBQWEsdUJBb0dqQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7NENBQ2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTtZQTNHckIsWUFBWSx1QkE0R2hCLFFBQVE7WUE5R0osVUFBVTs7QUE4Ym5COztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQU1sQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblBvc3RSZXF1ZXN0TW9kZWwsIFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwsIFNlc3Npb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTRVNTSU9OX0NPTkZJRywgV0lORE9XIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBWZXJiLCBodHRwVmVyYiB9IGZyb20gJy4uL21vZGVscy9odHRwLXZlcmJzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy90eXBlZC1zZXNzaW9uJztcclxuaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ndWlkJztcclxuXHJcbi8qKiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBjb21wbGV0ZSBzZXNzaW9uIGtleSAqL1xyXG5jb25zdCBkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSA9ICdkYXRhU3RvcmVSZXRyaWV2ZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZTxUID0gYW55PiB7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGlzIGNvbXBsZXRlICovXHJcbiAgcHJpdmF0ZSBpc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBsb2NhbCBzdG9yYWdlIGtleSAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nID0gJ1NvZi1Bcm0tU2Vzc2lvbi1JZCc7XHJcblxyXG4gIC8qKiBUZWggY3VycmVudCB1cGRhdGUgZGF0YSBzdG9yZSBjYWxsICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbDogT2JzZXJ2YWJsZTxhbnk+ID0gb2Yoe30pO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gZGF0YSBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uRGF0YTogQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVJbml0QnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnY2xpZW50JztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHNlcnZlciBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdzZXJ2ZXInO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBsb2NhbCBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlckxvY2FsU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ2xvY2FsJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnc2Vzc2lvbic7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGRhdGEgc3RvcmUgaXMgcHJvdmlkZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlUHJvdmlkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCA/IHRoaXMuaW5pdENsaWVudFNlc3Npb25JZCgpIDogdGhpcy5pbml0U2VydmVyU2Vzc2lvbklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uJDogT2JzZXJ2YWJsZTxUeXBlZFNlc3Npb248VD4+O1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gcmVmcmVzaCBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHNlc3Npb25SZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwdWJsaWMgaXNEYXRhU3RvcmVJbml0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIGdldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb24oKTogVHlwZWRTZXNzaW9uPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EYXRhLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIHNldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2V0IHNlc3Npb24odmFsdWU6IFR5cGVkU2Vzc2lvbjxUPikge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgsIHRoaXMuZW5jb2RlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlc3Npb25Db25maWcgVGhlIHNlc3Npb24gY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgd2luZG93IGludGVyZmFjZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggb2RpYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VTU0lPTl9DT05GSUcpIHJlYWRvbmx5IHNlc3Npb25Db25maWc6IFNlc3Npb25Db25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcmVhZG9ubHkgX3dpbmRvdzogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkID0gdGhpcy5pc0luaXRpYWxpemVkQnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdCQgPSB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnID0gbmV3IFNlc3Npb25Db25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCA9ICEhdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWc7XHJcbiAgICB0aGlzLndpbmRvdyA9IF93aW5kb3c7XHJcbiAgICBpZiAoIXRoaXMud2luZG93KSB7XHJcbiAgICAgIHRoaXMud2luZG93ID0gd2luZG93O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YVN0b3JlTG9hZGVkVmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gISFkYXRhU3RvcmVMb2FkZWRWYWx1ZSA/IGRhdGFTdG9yZUxvYWRlZFZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA6IGZhbHNlO1xyXG4gICAgLy8gaWYgbm90IHVzaW5nIGEgZGF0YSBzdG9yZSwgdXBkYXRlIHRoZSBpbml0aWFsaXplZCB0byB0cnVlIGZvciBpdFxyXG4gICAgaWYgKCF0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQpIHtcclxuICAgICAgdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPSAnc2Vzc2lvbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9ICdjbGllbnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCAmJiAhdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZXIgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCB3aXRoIG51bGwgc2Vzc2lvbkNvbmZpZyBwbGVhc2UgcHJvdmlkZTogR2xvYmFsSW5qZWN0aW9uVG9rZW5zLnNlc3Npb25Db25maWcnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbml0Q2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVkaXJlY3RzIHRvIGEgdXJsIHdpdGggYSByZWYgdG8gdGhlIGV4aXN0aW5nIHNlc3Npb25cclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmkgdG8gcmVkaXJlY3QgdG9cclxuICAgKiBAcGFyYW0gc3luY1Nlc3Npb24gU3luYyBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIFJlZGlyZWN0IGNvbmZpZ3MuXHJcbiAgICovXHJcbiAgcHVibGljIHJlZGlyZWN0KHVyaTogc3RyaW5nLCBzeW5jU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLCBjb25maWdzOiBSZWRpcmVjdFNlc3Npb25Db25maWdzID0ge30pOiB2b2lkIHtcclxuICAgIC8vIGlmIHRoZSBob3N0IG5hbWUgaXNuJ3QgaW4gdGhlIHVyaSwgd2UgYXJlIGdvaW5nIHRvIGEgZGlmZmVyZW50IGRvbWFpbiwgc28gdXNlIHRoZSBnYXRld2F5IG9uIHRoZSBvdGhlciBkb21haW4ncyBzZXJ2ZXJcclxuICAgIGxldCBmb3JtQWN0aW9uID0gYCR7dGhpcy5zZXNzaW9uQ29uZmlnLnRyYW5zZmVyQmFzZVBhdGh9L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgaWYgKHVyaS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHVyaVBhcnRzID0gdXJpLnNwbGl0KCcvJyk7XHJcbiAgICAgIC8vIHRoaXMgcmVzdWx0cyBpbiBbJ2h0dHBzOicsICcnLCAnZG9tYWluLmhvc3QnXSwgdXNlIDAgYW5kIDIgdG8gZ2V0IHRoZSBiYXNlIHVybCBvZiB0aGUgcmVkaXJlY3QgdXJpXHJcbiAgICAgIGZvcm1BY3Rpb24gPSBgJHt1cmlQYXJ0c1swXX0vLyR7dXJpUGFydHNbMl19L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGNvbnN0IGlucHV0RGVzdGluYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgLy8gVGhlIHBhcmVudCBzZXNzaW9uIHNob3VsZCBhbHJlYWR5IGJlIHByZXNlbnQgaW4gY2hpbGQgd2luZG93IGFzIHBlciBicm93c2luZyBjb250ZXh0IHJ1bGVzLCBidXQgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtLnRhcmdldCA9ICdfYmxhbmsnIGRvZXMgbm90IGRvIHRoYXQuXHJcbiAgICAgIC8vIE5lZWQgdG8gdXNlIHdpbmRvdy5vcGVuIGhlcmUgc28gdGhlIHBhcmVudCB3aW5kb3cncyBzZXNzaW9uIGFsc28gZ2V0cyBjYXJyaWVkIG92ZXIgdG8gdGhlIG5ldyB0YWIuXHJcbiAgICAgIC8vIEZvciByZWZlcmVuY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3Mjk3Mjg3L3Nlc3Npb25zdG9yYWdlLW9uLW5ldy13aW5kb3ctaXNudC1lbXB0eS13aGVuLWZvbGxvd2luZy1hLWxpbmstd2l0aC10YXJnZXQtYmxcclxuICAgICAgZm9ybS50YXJnZXQgPSAnY3VzdG9tV2luZG93JztcclxuICAgICAgd2luZG93Lm9wZW4oJycsICdjdXN0b21XaW5kb3cnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU1QyxtREFBbUQ7QUFDbkQsTUFBTSxtQ0FBbUMsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRSwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLGNBQWM7SUFpRnpCOzs7Ozs7T0FNRztJQUNILFlBQytDLGFBQTRCLEVBQ3BDLE9BQVksRUFDcEIsV0FBeUIsRUFDckMsVUFBc0I7O1FBSE0sa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkZ6QyxvREFBb0Q7UUFD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LElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7OztZQTNhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLGFBQWEsdUJBb0dqQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7NENBQ2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTtZQTNHckIsWUFBWSx1QkE0R2hCLFFBQVE7WUE5R0osVUFBVTs7QUE4Ym5COztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQU1sQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblBvc3RSZXF1ZXN0TW9kZWwsIFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwsIFNlc3Npb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTRVNTSU9OX0NPTkZJRywgV0lORE9XIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBWZXJiLCBodHRwVmVyYiB9IGZyb20gJy4uL21vZGVscy9odHRwLXZlcmJzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy90eXBlZC1zZXNzaW9uJztcclxuaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ndWlkJztcclxuXHJcbi8qKiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBjb21wbGV0ZSBzZXNzaW9uIGtleSAqL1xyXG5jb25zdCBkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSA9ICdkYXRhU3RvcmVSZXRyaWV2ZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZTxUID0gYW55PiB7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGlzIGNvbXBsZXRlICovXHJcbiAgcHJpdmF0ZSBpc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBsb2NhbCBzdG9yYWdlIGtleSAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nID0gJ1NvZi1Bcm0tU2Vzc2lvbi1JZCc7XHJcblxyXG4gIC8qKiBUZWggY3VycmVudCB1cGRhdGUgZGF0YSBzdG9yZSBjYWxsICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbDogT2JzZXJ2YWJsZTxhbnk+ID0gb2Yoe30pO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gZGF0YSBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uRGF0YTogQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVJbml0QnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnY2xpZW50JztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHNlcnZlciBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdzZXJ2ZXInO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBsb2NhbCBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlckxvY2FsU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ2xvY2FsJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnc2Vzc2lvbic7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGRhdGEgc3RvcmUgaXMgcHJvdmlkZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlUHJvdmlkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCA/IHRoaXMuaW5pdENsaWVudFNlc3Npb25JZCgpIDogdGhpcy5pbml0U2VydmVyU2Vzc2lvbklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uJDogT2JzZXJ2YWJsZTxUeXBlZFNlc3Npb248VD4+O1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gcmVmcmVzaCBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHNlc3Npb25SZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwdWJsaWMgaXNEYXRhU3RvcmVJbml0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIGdldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb24oKTogVHlwZWRTZXNzaW9uPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EYXRhLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIHNldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2V0IHNlc3Npb24odmFsdWU6IFR5cGVkU2Vzc2lvbjxUPikge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgsIHRoaXMuZW5jb2RlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlc3Npb25Db25maWcgVGhlIHNlc3Npb24gY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgd2luZG93IGludGVyZmFjZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggb2RpYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VTU0lPTl9DT05GSUcpIHJlYWRvbmx5IHNlc3Npb25Db25maWc6IFNlc3Npb25Db25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcmVhZG9ubHkgX3dpbmRvdzogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkID0gdGhpcy5pc0luaXRpYWxpemVkQnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdCQgPSB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnID0gbmV3IFNlc3Npb25Db25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCA9ICEhdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWc7XHJcbiAgICB0aGlzLndpbmRvdyA9IF93aW5kb3c7XHJcbiAgICBpZiAoIXRoaXMud2luZG93KSB7XHJcbiAgICAgIHRoaXMud2luZG93ID0gd2luZG93O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YVN0b3JlTG9hZGVkVmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gISFkYXRhU3RvcmVMb2FkZWRWYWx1ZSA/IGRhdGFTdG9yZUxvYWRlZFZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA6IGZhbHNlO1xyXG4gICAgLy8gaWYgbm90IHVzaW5nIGEgZGF0YSBzdG9yZSwgdXBkYXRlIHRoZSBpbml0aWFsaXplZCB0byB0cnVlIGZvciBpdFxyXG4gICAgaWYgKCF0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQpIHtcclxuICAgICAgdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPSAnc2Vzc2lvbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9ICdjbGllbnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCAmJiAhdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZXIgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCB3aXRoIG51bGwgc2Vzc2lvbkNvbmZpZyBwbGVhc2UgcHJvdmlkZTogR2xvYmFsSW5qZWN0aW9uVG9rZW5zLnNlc3Npb25Db25maWcnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbml0Q2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVkaXJlY3RzIHRvIGEgdXJsIHdpdGggYSByZWYgdG8gdGhlIGV4aXN0aW5nIHNlc3Npb25cclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmkgdG8gcmVkaXJlY3QgdG9cclxuICAgKiBAcGFyYW0gc3luY1Nlc3Npb24gU3luYyBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIFJlZGlyZWN0IGNvbmZpZ3MuXHJcbiAgICovXHJcbiAgcHVibGljIHJlZGlyZWN0KHVyaTogc3RyaW5nLCBzeW5jU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLCBjb25maWdzOiBSZWRpcmVjdFNlc3Npb25Db25maWdzID0ge30pOiB2b2lkIHtcclxuICAgIC8vIGlmIHRoZSBob3N0IG5hbWUgaXNuJ3QgaW4gdGhlIHVyaSwgd2UgYXJlIGdvaW5nIHRvIGEgZGlmZmVyZW50IGRvbWFpbiwgc28gdXNlIHRoZSBnYXRld2F5IG9uIHRoZSBvdGhlciBkb21haW4ncyBzZXJ2ZXJcclxuICAgIGxldCBmb3JtQWN0aW9uID0gYCR7dGhpcy5zZXNzaW9uQ29uZmlnLnRyYW5zZmVyQmFzZVBhdGh9L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgaWYgKHVyaS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHVyaVBhcnRzID0gdXJpLnNwbGl0KCcvJyk7XHJcbiAgICAgIC8vIHRoaXMgcmVzdWx0cyBpbiBbJ2h0dHBzOicsICcnLCAnZG9tYWluLmhvc3QnXSwgdXNlIDAgYW5kIDIgdG8gZ2V0IHRoZSBiYXNlIHVybCBvZiB0aGUgcmVkaXJlY3QgdXJpXHJcbiAgICAgIGZvcm1BY3Rpb24gPSBgJHt1cmlQYXJ0c1swXX0vLyR7dXJpUGFydHNbMl19L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGNvbnN0IGlucHV0RGVzdGluYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgLy8gVGhlIHBhcmVudCBzZXNzaW9uIHNob3VsZCBhbHJlYWR5IGJlIHByZXNlbnQgaW4gY2hpbGQgd2luZG93IGFzIHBlciBicm93c2luZyBjb250ZXh0IHJ1bGVzLCBidXQgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtLnRhcmdldCA9ICdfYmxhbmsnIGRvZXMgbm90IGRvIHRoYXQuXHJcbiAgICAgIC8vIE5lZWQgdG8gdXNlIHdpbmRvdy5vcGVuIGhlcmUgc28gdGhlIHBhcmVudCB3aW5kb3cncyBzZXNzaW9uIGFsc28gZ2V0cyBjYXJyaWVkIG92ZXIgdG8gdGhlIG5ldyB0YWIuXHJcbiAgICAgIC8vIEZvciByZWZlcmVuY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3Mjk3Mjg3L3Nlc3Npb25zdG9yYWdlLW9uLW5ldy13aW5kb3ctaXNudC1lbXB0eS13aGVuLWZvbGxvd2luZy1hLWxpbmstd2l0aC10YXJnZXQtYmxcclxuICAgICAgZm9ybS50YXJnZXQgPSAnY3VzdG9tV2luZG93JztcclxuICAgICAgd2luZG93Lm9wZW4oJycsICdjdXN0b21XaW5kb3cnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
@@ -144,4 +144,4 @@ UserEntityService.ctorParameters = () => [
144
144
  { type: HttpClient },
145
145
  { type: UserEntityServiceConfig, decorators: [{ type: Optional }, { type: Inject, args: [USER_ENTITY_SERVICE_CONFIG,] }] }
146
146
  ];
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9zZXJ2aWNlcy91c2VyLWVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFL0UsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCOzs7OztPQUtHO0lBQ0gsWUFDbUIsWUFBMEIsRUFDMUIsVUFBc0IsRUFDa0IsdUJBQWdEO1FBRnhGLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDa0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQTFCM0csK0JBQStCO1FBQ2QsbUJBQWMsR0FBVyw0QkFBNEIsQ0FBQztRQWF2RSxnQ0FBZ0M7UUFDZixXQUFNLEdBQXVDLElBQUksZUFBZSxDQUFvQixTQUFTLENBQUMsQ0FBQztRQWE5RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJB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USxZQUFZO1lBSFosVUFBVTtZQVNWLHVCQUF1Qix1QkF3QzNCLFFBQVEsWUFBSSxNQUFNLFNBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmlyc3QsIHNoYXJlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXJ0ZWRVc2VyTW9kZWwgfSBmcm9tICcuLi9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IFVTRVJfRU5USVRZX1NFUlZJQ0VfQ09ORklHIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXItZW50aXR5LXNlcnZpY2UtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgdXNlciBlbnRpdHkgc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyRW50aXR5U2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgdXNlciBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPEFzc2VydGVkVXNlck1vZGVsPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIHNlcnZpY2UgaXMgYXZhaWxhYmxlIGZvciB1c2UgKi9cclxuICBwcml2YXRlIGlzU2VydmljZUF2YWlsYWJsZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFRoZSBnZXQgdXNlciBwYXJ0aWFsIHVybCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZ2V0VXNlclBhcnRpYWw6IHN0cmluZyA9ICdhcGkvdXNlck1hbmFnZW1lbnQvdjEvdXNlcic7XHJcblxyXG4gIC8qKiBUaGUgdXNlciBjYWxsICovXHJcbiAgcHJpdmF0ZSB1c2VyQ2FsbDogUHJvbWlzZTxBcnJheTxBc3NlcnRlZFVzZXJNb2RlbD4+O1xyXG5cclxuICAvKiogVGhlIHVzZXIgbW9kZWwgYW5kIGhhc2ggKi9cclxuICBwcml2YXRlIGdldCBfdXNlcigpOiBBc3NlcnRlZFVzZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyQlMudmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0IF91c2VyKHZhbDogQXNzZXJ0ZWRVc2VyTW9kZWwpIHtcclxuICAgIHRoaXMudXNlckJTLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIC8qKiB0aGUgdXNlciBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyQlM6IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFzc2VydGVkVXNlck1vZGVsPih1bmRlZmluZWQpO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIG9hdXRoU2VydmljZSBUaGUgb2F1dGggb2lkYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKiBAcGFyYW0gdXNlckVudGl0eVNlcnZpY2VDb25maWcgVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgY29uZmlndXJhdGlvbnNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVTRVJfRU5USVRZX1NFUlZJQ0VfQ09ORklHKSByZWFkb25seSB1c2VyRW50aXR5U2VydmljZUNvbmZpZzogVXNlckVudGl0eVNlcnZpY2VDb25maWdcclxuICApIHtcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPSAhdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZyA/IG5ldyBVc2VyRW50aXR5U2VydmljZUNvbmZpZygpIDogdGhpcy5nZXRDb25maWdXaXRoRGVmYXVsdHMoKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tcGFyYW1ldGVyLXJlYXNzaWdubWVudFxyXG4gICAgdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZy51c2VyRW50aXR5QmFzZVVybCA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgfHwgJy8nO1xyXG4gICAgdGhpcy5nZXRVc2VyUGFydGlhbCA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlclBhcnRpYWwgfHwgdGhpcy5nZXRVc2VyUGFydGlhbDtcclxuICAgIHRoaXMudXNlciQgPSB0aGlzLnVzZXJCUy5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZShmaWx0ZXIodmFsID0+ICEhdmFsKSk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlck9uSW5pdCkge1xyXG4gICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2VydmljZUF2YWlsYWJsZSA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNTZXJ2aWNlQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0VXNlckZyb21BcGkoKVxyXG4gICAgICAgICAgLnRoZW4oKVxyXG4gICAgICAgICAgLmNhdGNoKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciAqL1xyXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VyKCk6IFByb21pc2U8QXNzZXJ0ZWRVc2VyTW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlciQucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHNoYXJlKCksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgIHJlamVjdChlKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YoZSk7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodXNlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdXNlciBUaGUgbmV3IHVzZXIgbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyPzogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICBpZiAodXNlcikge1xyXG4gICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRVc2VyRnJvbUFwaSgpO1xyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIG1lZXRzIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHByb3ZpZGVkICovXHJcbiAgcHVibGljIHZhbGlkYXRlVXNlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnICYmIHRoaXMuX3VzZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudmFsaWRhdGUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciBmcm9tIHRoZSBhcGkgKi9cclxuICBwcml2YXRlIGFzeW5jIGdldFVzZXJGcm9tQXBpKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gdXNlIHRoZSBsb2NhbCBwYXRoIGlmIHRoZXJlIGlzIG5vdCBiYXNlIHBhdGggcHJvdmlkZWRcclxuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShmaXJzdChlID0+IGUudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnKSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIGlzc3VlciB0byB0aGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0IHNvIHRoZSBhcGkga25vd3Mgd2hhdCB0ZW5hbnQgdG8gdXNlXHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCl9YCxcclxuICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24tVGVuYW50JzogKFxyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuICAgICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlWydjb25maWcnXT8uaXNzdWVyXHJcbiAgICAgICAgICAgICAgfHwgdGhpcy5vYXV0aFNlcnZpY2U/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5pc3N1ZXIgfHwgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9hY2NvdW50L2xvZ2luJywgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9jb25uZWN0L2F1dGhvcml6ZScsICcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51c2VyQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PihcclxuICAgICAgICAgIGAke3RoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmx9JHt0aGlzLmdldFVzZXJQYXJ0aWFsfT9zdWJJZEZyb21Ub2tlbj10cnVlJmNyZWF0ZUVtcHR5PXRydWUmd2l0aG91dENoaWxkTGlua3M9JHshdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZy5pbmNsdWRlTGlua3N9YCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyQ2FsbC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHVzZXIgZW50aXRpZXMgZm91bmQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3VzZXIgPSByZXNbMF07XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRlVXNlcigpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXJFbnRpdHlTZXJ2aWNlIGVuY291bnRlcmVkIGFuIGVycm9yJywgZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlIGNvbmZpZyAqL1xyXG4gIHByaXZhdGUgZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWc7XHJcbiAgICBjb25maWcudmFsaWRhdGUgPSBjb25maWcudmFsaWRhdGUgfHwgKCh1c2VyOiBBc3NlcnRlZFVzZXJNb2RlbCk6IGJvb2xlYW4gPT4gdHJ1ZSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHRyaXBsZS1lcXVhbHNcclxuICAgIGNvbmZpZy5nZXRVc2VyT25Jbml0ID0gY29uZmlnLmdldFVzZXJPbkluaXQgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5nZXRVc2VyT25Jbml0O1xyXG4gICAgY29uZmlnLmluY2x1ZGVMaW5rcyA9IGNvbmZpZy5pbmNsdWRlTGlua3MgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5pbmNsdWRlTGlua3M7XHJcbiAgICBjb25maWcuZ2V0VXNlclBhcnRpYWwgPSBjb25maWcuZ2V0VXNlclBhcnRpYWwgPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRVc2VyUGFydGlhbCA6IGNvbmZpZy5nZXRVc2VyUGFydGlhbDtcclxuXHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH1cclxufVxyXG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9zZXJ2aWNlcy91c2VyLWVudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFFL0UsOEJBQThCO0FBSTlCLE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCOzs7OztPQUtHO0lBQ0gsWUFDbUIsWUFBMEIsRUFDMUIsVUFBc0IsRUFDa0IsdUJBQWdEO1FBRnhGLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDa0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQTFCM0csK0JBQStCO1FBQ2QsbUJBQWMsR0FBVyw0QkFBNEIsQ0FBQztRQWF2RSxnQ0FBZ0M7UUFDZixXQUFNLEdBQXVDLElBQUksZUFBZSxDQUFvQixTQUFTLENBQUMsQ0FBQztRQWE5RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJB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USxZQUFZO1lBSFosVUFBVTtZQVNWLHVCQUF1Qix1QkF3QzNCLFFBQVEsWUFBSSxNQUFNLFNBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmlyc3QsIHNoYXJlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXJ0ZWRVc2VyTW9kZWwgfSBmcm9tICcuLi9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IFVTRVJfRU5USVRZX1NFUlZJQ0VfQ09ORklHIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXItZW50aXR5LXNlcnZpY2UtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgdXNlciBlbnRpdHkgc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyRW50aXR5U2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgdXNlciBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHVzZXIkOiBPYnNlcnZhYmxlPEFzc2VydGVkVXNlck1vZGVsPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIHNlcnZpY2UgaXMgYXZhaWxhYmxlIGZvciB1c2UgKi9cclxuICBwcml2YXRlIGlzU2VydmljZUF2YWlsYWJsZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqIFRoZSBnZXQgdXNlciBwYXJ0aWFsIHVybCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZ2V0VXNlclBhcnRpYWw6IHN0cmluZyA9ICdhcGkvdXNlck1hbmFnZW1lbnQvdjEvdXNlcic7XHJcblxyXG4gIC8qKiBUaGUgdXNlciBjYWxsICovXHJcbiAgcHJpdmF0ZSB1c2VyQ2FsbDogUHJvbWlzZTxBcnJheTxBc3NlcnRlZFVzZXJNb2RlbD4+O1xyXG5cclxuICAvKiogVGhlIHVzZXIgbW9kZWwgYW5kIGhhc2ggKi9cclxuICBwcml2YXRlIGdldCBfdXNlcigpOiBBc3NlcnRlZFVzZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyQlMudmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0IF91c2VyKHZhbDogQXNzZXJ0ZWRVc2VyTW9kZWwpIHtcclxuICAgIHRoaXMudXNlckJTLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIC8qKiB0aGUgdXNlciBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyQlM6IEJlaGF2aW9yU3ViamVjdDxBc3NlcnRlZFVzZXJNb2RlbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFzc2VydGVkVXNlck1vZGVsPih1bmRlZmluZWQpO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIG9hdXRoU2VydmljZSBUaGUgb2F1dGggb2lkYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKiBAcGFyYW0gdXNlckVudGl0eVNlcnZpY2VDb25maWcgVGhlIHVzZXIgZW50aXR5IHNlcnZpY2UgY29uZmlndXJhdGlvbnNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVTRVJfRU5USVRZX1NFUlZJQ0VfQ09ORklHKSByZWFkb25seSB1c2VyRW50aXR5U2VydmljZUNvbmZpZzogVXNlckVudGl0eVNlcnZpY2VDb25maWdcclxuICApIHtcclxuICAgIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcgPSAhdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZyA/IG5ldyBVc2VyRW50aXR5U2VydmljZUNvbmZpZygpIDogdGhpcy5nZXRDb25maWdXaXRoRGVmYXVsdHMoKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tcGFyYW1ldGVyLXJlYXNzaWdubWVudFxyXG4gICAgdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZy51c2VyRW50aXR5QmFzZVVybCA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmwgfHwgJy8nO1xyXG4gICAgdGhpcy5nZXRVc2VyUGFydGlhbCA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlclBhcnRpYWwgfHwgdGhpcy5nZXRVc2VyUGFydGlhbDtcclxuICAgIHRoaXMudXNlciQgPSB0aGlzLnVzZXJCUy5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZShmaWx0ZXIodmFsID0+ICEhdmFsKSk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcuZ2V0VXNlck9uSW5pdCkge1xyXG4gICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2VydmljZUF2YWlsYWJsZSA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNTZXJ2aWNlQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0VXNlckZyb21BcGkoKVxyXG4gICAgICAgICAgLnRoZW4oKVxyXG4gICAgICAgICAgLmNhdGNoKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciAqL1xyXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VyKCk6IFByb21pc2U8QXNzZXJ0ZWRVc2VyTW9kZWw+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlciQucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIHNoYXJlKCksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgIHJlamVjdChlKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YoZSk7XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodXNlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdXNlciBUaGUgbmV3IHVzZXIgbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyPzogQXNzZXJ0ZWRVc2VyTW9kZWwpOiBQcm9taXNlPEFzc2VydGVkVXNlck1vZGVsPiB7XHJcbiAgICBpZiAodXNlcikge1xyXG4gICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRVc2VyRnJvbUFwaSgpO1xyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fdXNlcik7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIG1lZXRzIHRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHByb3ZpZGVkICovXHJcbiAgcHVibGljIHZhbGlkYXRlVXNlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnICYmIHRoaXMuX3VzZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudmFsaWRhdGUodGhpcy5fdXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0cyB0aGUgdXNlciBmcm9tIHRoZSBhcGkgKi9cclxuICBwcml2YXRlIGFzeW5jIGdldFVzZXJGcm9tQXBpKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gdXNlIHRoZSBsb2NhbCBwYXRoIGlmIHRoZXJlIGlzIG5vdCBiYXNlIHBhdGggcHJvdmlkZWRcclxuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShmaXJzdChlID0+IGUudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnKSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIGlzc3VlciB0byB0aGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0IHNvIHRoZSBhcGkga25vd3Mgd2hhdCB0ZW5hbnQgdG8gdXNlXHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCl9YCxcclxuICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24tVGVuYW50JzogKFxyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuICAgICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZVsnY29uZmlnJ10/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlWydjb25maWcnXT8uaXNzdWVyXHJcbiAgICAgICAgICAgICAgfHwgdGhpcy5vYXV0aFNlcnZpY2U/LmxvZ2luVXJsIHx8IHRoaXMub2F1dGhTZXJ2aWNlPy5pc3N1ZXIgfHwgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9hY2NvdW50L2xvZ2luJywgJycpXHJcbiAgICAgICAgICAgICAgLnJlcGxhY2UoJy9jb25uZWN0L2F1dGhvcml6ZScsICcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51c2VyQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8QXNzZXJ0ZWRVc2VyTW9kZWw+PihcclxuICAgICAgICAgIGAke3RoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWcudXNlckVudGl0eUJhc2VVcmx9JHt0aGlzLmdldFVzZXJQYXJ0aWFsfT9zdWJJZEZyb21Ub2tlbj10cnVlJmNyZWF0ZUVtcHR5PXRydWUmd2l0aG91dENoaWxkTGlua3M9JHshdGhpcy51c2VyRW50aXR5U2VydmljZUNvbmZpZy5pbmNsdWRlTGlua3N9YCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyQ2FsbC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHVzZXIgZW50aXRpZXMgZm91bmQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3VzZXIgPSByZXNbMF07XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRlVXNlcigpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXJFbnRpdHlTZXJ2aWNlIGVuY291bnRlcmVkIGFuIGVycm9yJywgZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlIGNvbmZpZyAqL1xyXG4gIHByaXZhdGUgZ2V0Q29uZmlnV2l0aERlZmF1bHRzKCk6IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMudXNlckVudGl0eVNlcnZpY2VDb25maWc7XHJcbiAgICBjb25maWcudmFsaWRhdGUgPSBjb25maWcudmFsaWRhdGUgfHwgKCh1c2VyOiBBc3NlcnRlZFVzZXJNb2RlbCk6IGJvb2xlYW4gPT4gdHJ1ZSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHRyaXBsZS1lcXVhbHNcclxuICAgIGNvbmZpZy5nZXRVc2VyT25Jbml0ID0gY29uZmlnLmdldFVzZXJPbkluaXQgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5nZXRVc2VyT25Jbml0O1xyXG4gICAgY29uZmlnLmluY2x1ZGVMaW5rcyA9IGNvbmZpZy5pbmNsdWRlTGlua3MgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbmZpZy5pbmNsdWRlTGlua3M7XHJcbiAgICBjb25maWcuZ2V0VXNlclBhcnRpYWwgPSBjb25maWcuZ2V0VXNlclBhcnRpYWwgPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRVc2VyUGFydGlhbCA6IGNvbmZpZy5nZXRVc2VyUGFydGlhbDtcclxuXHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL2FwaS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5leHBvcnQgY29uc3QgQVBJUyA9IFtDYWNoZVNlcnZpY2VdO1xyXG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL2FwaS9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5leHBvcnQgY29uc3QgQVBJUyA9IFtDYWNoZVNlcnZpY2VdO1xyXG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9hcGkvY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHLENBQUEsdURBQXVEO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ0UsTUFBZ0Msc0JBQXNCLENBQUM7QUFTekYsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7QUFJckYsTUFBTSxPQUFPLFlBQVk7SUFNckIsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUd2QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLFFBQWtCO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FB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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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9hcGkvY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHLENBQUEsdURBQXVEO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ0UsTUFBZ0Msc0JBQXNCLENBQUM7QUFTekYsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7QUFJckYsTUFBTSxPQUFPLFlBQVk7SUFNckIsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUd2QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLFFBQWtCO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FB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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxhQUFhO0lBUXRCLFlBQVksMEJBQW1ELEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QixDQUFFLFlBQXNCO1FBQ2xELElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNwQixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFpQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDMUIsTUFBTSxRQUFRLEdBQVcsSUFBSSxNQUFNLENBQUMsK0RBQStELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssNkJBQTZCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzIHtcclxuICAgIGFwaUtleXM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmd9O1xyXG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgICBwYXNzd29yZD86IHN0cmluZztcclxuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XHJcbiAgICBiYXNlUGF0aD86IHN0cmluZztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uIHtcclxuICAgIGFwaUtleXM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmd9O1xyXG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgICBwYXNzd29yZD86IHN0cmluZztcclxuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyk7XHJcbiAgICBiYXNlUGF0aD86IHN0cmluZztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvblBhcmFtZXRlcnM6IENvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzID0ge30pIHtcclxuICAgICAgICB0aGlzLmFwaUtleXMgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5hcGlLZXlzO1xyXG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy51c2VybmFtZTtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkID0gY29uZmlndXJhdGlvblBhcmFtZXRlcnMucGFzc3dvcmQ7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5iYXNlUGF0aDtcclxuICAgICAgICB0aGlzLndpdGhDcmVkZW50aWFscyA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLndpdGhDcmVkZW50aWFscztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbGVjdCB0aGUgY29ycmVjdCBjb250ZW50LXR5cGUgdG8gdXNlIGZvciBhIHJlcXVlc3QuXHJcbiAgICAgKiBVc2VzIHtAbGluayBDb25maWd1cmF0aW9uI2lzSnNvbk1pbWV9IHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBjb250ZW50LXR5cGUuXHJcbiAgICAgKiBJZiBubyBjb250ZW50IHR5cGUgaXMgZm91bmQgcmV0dXJuIHRoZSBmaXJzdCBmb3VuZCB0eXBlIGlmIHRoZSBjb250ZW50VHlwZXMgaXMgbm90IGVtcHR5XHJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVzIC0gdGhlIGFycmF5IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cclxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250ZW50LXR5cGUgb3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpZiBubyBzZWxlY3Rpb24gY291bGQgYmUgbWFkZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdEhlYWRlckNvbnRlbnRUeXBlIChjb250ZW50VHlwZXM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBpZiAoY29udGVudFR5cGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHlwZSA9IGNvbnRlbnRUeXBlcy5maW5kKHggPT4gdGhpcy5pc0pzb25NaW1lKHgpKTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VsZWN0IHRoZSBjb3JyZWN0IGFjY2VwdCBjb250ZW50LXR5cGUgdG8gdXNlIGZvciBhIHJlcXVlc3QuXHJcbiAgICAgKiBVc2VzIHtAbGluayBDb25maWd1cmF0aW9uI2lzSnNvbk1pbWV9IHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBhY2NlcHQgY29udGVudC10eXBlLlxyXG4gICAgICogSWYgbm8gY29udGVudCB0eXBlIGlzIGZvdW5kIHJldHVybiB0aGUgZmlyc3QgZm91bmQgdHlwZSBpZiB0aGUgY29udGVudFR5cGVzIGlzIG5vdCBlbXB0eVxyXG4gICAgICogQHBhcmFtIGFjY2VwdHMgLSB0aGUgYXJyYXkgb2YgY29udGVudCB0eXBlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbi5cclxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250ZW50LXR5cGUgb3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpZiBubyBzZWxlY3Rpb24gY291bGQgYmUgbWFkZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdEhlYWRlckFjY2VwdChhY2NlcHRzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKGFjY2VwdHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB0eXBlID0gYWNjZXB0cy5maW5kKHggPT4gdGhpcy5pc0pzb25NaW1lKHgpKTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2NlcHRzWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIGlmIHRoZSBnaXZlbiBNSU1FIGlzIGEgSlNPTiBNSU1FLlxyXG4gICAgICogSlNPTiBNSU1FIGV4YW1wbGVzOlxyXG4gICAgICogICBhcHBsaWNhdGlvbi9qc29uXHJcbiAgICAgKiAgIGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGOFxyXG4gICAgICogICBBUFBMSUNBVElPTi9KU09OXHJcbiAgICAgKiAgIGFwcGxpY2F0aW9uL3ZuZC5jb21wYW55K2pzb25cclxuICAgICAqIEBwYXJhbSBtaW1lIC0gTUlNRSAoTXVsdGlwdXJwb3NlIEludGVybmV0IE1haWwgRXh0ZW5zaW9ucylcclxuICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgZ2l2ZW4gTUlNRSBpcyBKU09OLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0pzb25NaW1lKG1pbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGpzb25NaW1lOiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeKGFwcGxpY2F0aW9uXFwvanNvbnxbXjsvIFxcdF0rXFwvW147LyBcXHRdK1srXWpzb24pWyBcXHRdKig7LiopPyQnLCAnaScpO1xyXG4gICAgICAgIHJldHVybiBtaW1lICE9IG51bGwgJiYgKGpzb25NaW1lLnRlc3QobWltZSkgfHwgbWltZS50b0xvd2VyQ2FzZSgpID09PSAnYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxhQUFhO0lBUXRCLFlBQVksMEJBQW1ELEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QixDQUFFLFlBQXNCO1FBQ2xELElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNwQixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFpQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDMUIsTUFBTSxRQUFRLEdBQVcsSUFBSSxNQUFNLENBQUMsK0RBQStELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssNkJBQTZCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzIHtcclxuICAgIGFwaUtleXM/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhFOzs7O0VBSUU7QUFDRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBQ2hFLFNBQVMsQ0FBQyxDQUFTO1FBQ2YsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQVM7UUFDakIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIgICAgaW1wb3J0IHsgSHR0cFVybEVuY29kaW5nQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG4vKipcclxuKiBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlY1xyXG4qIEZpeCBwbHVzIHNpZ24gKCspIG5vdCBlbmNvZGluZywgc28gc2VudCBhcyBibGFuayBzcGFjZVxyXG4qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTEwNTgjaXNzdWVjb21tZW50LTI0NzM2NzMxOFxyXG4qL1xyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgZXh0ZW5kcyBIdHRwVXJsRW5jb2RpbmdDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoazogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBrID0gc3VwZXIuZW5jb2RlS2V5KGspO1xyXG4gICAgICAgIHJldHVybiBrLnJlcGxhY2UoL1xcKy9naSwgJyUyQicpO1xyXG4gICAgfVxyXG4gICAgZW5jb2RlVmFsdWUodjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB2ID0gc3VwZXIuZW5jb2RlVmFsdWUodik7XHJcbiAgICAgICAgcmV0dXJuIHYucmVwbGFjZSgvXFwrL2dpLCAnJTJCJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhFOzs7O0VBSUU7QUFDRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBQ2hFLFNBQVMsQ0FBQyxDQUFTO1FBQ2YsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQVM7UUFDakIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIgICAgaW1wb3J0IHsgSHR0cFVybEVuY29kaW5nQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG4vKipcclxuKiBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlY1xyXG4qIEZpeCBwbHVzIHNpZ24gKCspIG5vdCBlbmNvZGluZywgc28gc2VudCBhcyBibGFuayBzcGFjZVxyXG4qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTEwNTgjaXNzdWVjb21tZW50LTI0NzM2NzMxOFxyXG4qL1xyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgZXh0ZW5kcyBIdHRwVXJsRW5jb2RpbmdDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoazogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBrID0gc3VwZXIuZW5jb2RlS2V5KGspO1xyXG4gICAgICAgIHJldHVybiBrLnJlcGxhY2UoL1xcKy9naSwgJyUyQicpO1xyXG4gICAgfVxyXG4gICAgZW5jb2RlVmFsdWUodjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB2ID0gc3VwZXIuZW5jb2RlVmFsdWUodik7XHJcbiAgICAgICAgcmV0dXJuIHYucmVwbGFjZSgvXFwrL2dpLCAnJTJCJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -13,4 +13,4 @@ export const CacheExpirationType = {
13
13
  Sliding: 'Sliding',
14
14
  Absolute: 'Absolute'
15
15
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVFeHBpcmF0aW9uVHlwZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jYWNoZUV4cGlyYXRpb25UeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFPSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixPQUFPLEVBQUUsU0FBZ0M7SUFDekMsUUFBUSxFQUFFLFVBQWlDO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBleHBpcmF0aW9uIHR5cGVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBDYWNoZUV4cGlyYXRpb25UeXBlID0gJ1NsaWRpbmcnIHwgJ0Fic29sdXRlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDYWNoZUV4cGlyYXRpb25UeXBlID0ge1xyXG4gICAgU2xpZGluZzogJ1NsaWRpbmcnIGFzIENhY2hlRXhwaXJhdGlvblR5cGUsXHJcbiAgICBBYnNvbHV0ZTogJ0Fic29sdXRlJyBhcyBDYWNoZUV4cGlyYXRpb25UeXBlXHJcbn07Il19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVFeHBpcmF0aW9uVHlwZS5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jYWNoZUV4cGlyYXRpb25UeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFPSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixPQUFPLEVBQUUsU0FBZ0M7SUFDekMsUUFBUSxFQUFFLFVBQWlDO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBleHBpcmF0aW9uIHR5cGVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBDYWNoZUV4cGlyYXRpb25UeXBlID0gJ1NsaWRpbmcnIHwgJ0Fic29sdXRlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDYWNoZUV4cGlyYXRpb25UeXBlID0ge1xyXG4gICAgU2xpZGluZzogJ1NsaWRpbmcnIGFzIENhY2hlRXhwaXJhdGlvblR5cGUsXHJcbiAgICBBYnNvbHV0ZTogJ0Fic29sdXRlJyBhcyBDYWNoZUV4cGlyYXRpb25UeXBlXHJcbn07Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBDYWNoZUV4cGlyYXRpb25UeXBlIH0gZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgQ3JlYXRlIGNhY2hlIGVudGVyeSByZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUga2V5LlxyXG4gICAgICovXHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB0eXBlIG9mIHRoZSBleHBpcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBleHBpcmF0aW9uVHlwZT86IENhY2hlRXhwaXJhdGlvblR5cGU7XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgZXhwaXJhdGlvbiB0aW1lIG1pbnV0ZXMuXHJcbiAgICAgKi9cclxuICAgIGV4cGlyYXRpb25UaW1lTWludXRlcz86IG51bWJlcjtcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBDYWNoZUV4cGlyYXRpb25UeXBlIH0gZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgQ3JlYXRlIGNhY2hlIGVudGVyeSByZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUga2V5LlxyXG4gICAgICovXHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB0eXBlIG9mIHRoZSBleHBpcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBleHBpcmF0aW9uVHlwZT86IENhY2hlRXhwaXJhdGlvblR5cGU7XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgZXhwaXJhdGlvbiB0aW1lIG1pbnV0ZXMuXHJcbiAgICAgKi9cclxuICAgIGV4cGlyYXRpb25UaW1lTWludXRlcz86IG51bWJlcjtcclxufSJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWNoZUV4cGlyYXRpb25UeXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsJztcclxuIl19
@@ -10,4 +10,4 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  export {};
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBlbnRyeSByZXRyaWV2ZSByZXNwb25zZSBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHZhbHVlPzogYW55O1xyXG59Il19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmVDYWNoZUVudHJ5UmVzcG9uc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9yZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBjYWNoZSBlbnRyeSByZXRyaWV2ZSByZXNwb25zZSBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZUNhY2hlRW50cnlSZXNwb25zZU1vZGVsIHsgXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHZhbHVlPzogYW55O1xyXG59Il19
@@ -10,4 +10,4 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  export {};
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBDYWNoZSBlbnRyeSByZXF1ZXN0IG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwgeyBcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxufSJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ2FjaGVFbnRyeVJlcXVlc3RNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvY2xpZW50LWdlbmVyYXRlZC9tb2RlbC91cGRhdGVDYWNoZUVudHJ5UmVxdWVzdE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2FtcGxlIEFQSVxyXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMVxyXG4gKiBcclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBDYWNoZSBlbnRyeSByZXF1ZXN0IG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNhY2hlRW50cnlSZXF1ZXN0TW9kZWwgeyBcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgdmFsdWU6IGFueTtcclxufSJdfQ==
@@ -6,4 +6,4 @@ export const COLLECTION_FORMATS = {
6
6
  'ssv': ' ',
7
7
  'pipes': '|'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxVQUFVLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsR0FBRztDQUNmLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBU0VfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdiYXNlUGF0aCcpO1xyXG5leHBvcnQgY29uc3QgQ09MTEVDVElPTl9GT1JNQVRTID0ge1xyXG4gICAgJ2Nzdic6ICcsJyxcclxuICAgICd0c3YnOiAnICAgJyxcclxuICAgICdzc3YnOiAnICcsXHJcbiAgICAncGlwZXMnOiAnfCdcclxufVxyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxVQUFVLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsR0FBRztDQUNmLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBU0VfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUtYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBQdWJsaWMgQXBpIHNlcnZpY2UgZm9yIGRpc3RyaWJ1dGVkIGNhY2hlICovXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlJztcclxuXHJcbmV4cG9ydCB7IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSCB9IGZyb20gJy4vbW9kZWxzL2NvbnN0YW50cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvY29uZmlndXJhdGlvbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvbW9kZWxzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcG9saWN5LXBlcnNvbic7XHJcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUtYXBpLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBQdWJsaWMgQXBpIHNlcnZpY2UgZm9yIGRpc3RyaWJ1dGVkIGNhY2hlICovXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlJztcclxuXHJcbmV4cG9ydCB7IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSCB9IGZyb20gJy4vbW9kZWxzL2NvbnN0YW50cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvY29uZmlndXJhdGlvbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvbW9kZWxzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcG9saWN5LXBlcnNvbic7XHJcbiJdfQ==
@@ -23,4 +23,4 @@ DistributedCacheModule.decorators = [
23
23
  ]
24
24
  },] }
25
25
  ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsbUNBQW1DO0FBZW5DLE1BQU0sT0FBTyxzQkFBc0I7OztZQWRsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsU0FBUzt3QkFDbEIsV0FBVyxFQUFFLDJCQUEyQjtxQkFDekM7b0JBQ0QsWUFBWTtvQkFDWixrQkFBa0I7aUJBQ25CO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL2FwaS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQkFTRV9QQVRIIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IFNlcnZlckNhY2hlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBESVNUUklCVVRFRF9DQUNIRV9CQVNFX1BBVEggfSBmcm9tICcuL21vZGVscy9jb25zdGFudHMnO1xyXG5cclxuLyoqIFRoZSBkaXN0cmlidXRlZCBjYWNoZSBtb2R1bGUgKi9cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJBU0VfUEFUSCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSFxyXG4gICAgfSxcclxuICAgIENhY2hlU2VydmljZSxcclxuICAgIFNlcnZlckNhY2hlU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERpc3RyaWJ1dGVkQ2FjaGVNb2R1bGUge31cclxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsbUNBQW1DO0FBZW5DLE1BQU0sT0FBTyxzQkFBc0I7OztZQWRsQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsU0FBUzt3QkFDbEIsV0FBVyxFQUFFLDJCQUEyQjtxQkFDekM7b0JBQ0QsWUFBWTtvQkFDWixrQkFBa0I7aUJBQ25CO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL2FwaS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQkFTRV9QQVRIIH0gZnJvbSAnLi9jbGllbnQtZ2VuZXJhdGVkL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IFNlcnZlckNhY2hlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VydmVyLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBESVNUUklCVVRFRF9DQUNIRV9CQVNFX1BBVEggfSBmcm9tICcuL21vZGVscy9jb25zdGFudHMnO1xyXG5cclxuLyoqIFRoZSBkaXN0cmlidXRlZCBjYWNoZSBtb2R1bGUgKi9cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJBU0VfUEFUSCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSFxyXG4gICAgfSxcclxuICAgIENhY2hlU2VydmljZSxcclxuICAgIFNlcnZlckNhY2hlU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERpc3RyaWJ1dGVkQ2FjaGVNb2R1bGUge31cclxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay81NDYvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9tb2RlbHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQTJCLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSDogSW5qZWN0aW9uVG9rZW48c3RyaW5nPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEaXN0cmlidXRlZENhY2hlQmFzZVBhdGgnKTtcclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IlM6L0IwMi9fd29yay82Mzgvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kaXN0cmlidXRlZC1jYWNoZS9tb2RlbHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQTJCLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1RSSUJVVEVEX0NBQ0hFX0JBU0VfUEFUSDogSW5qZWN0aW9uVG9rZW48c3RyaW5nPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEaXN0cmlidXRlZENhY2hlQmFzZVBhdGgnKTtcclxuIl19
@@ -6,4 +6,4 @@ export class PolicyPerson {
6
6
  this.mailingAddress = {};
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LXBlcnNvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNTQ2L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvbW9kZWxzL3BvbGljeS1wZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0Esd0JBQXdCO0FBQ3hCLE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBVUksdUJBQXVCO1FBQ2hCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBQzFCLG1CQUFjLEdBQVksRUFBRSxDQUFDO0lBSXhDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL29hdXRoL21vZGVscy9nZW5lcmF0ZWQvcGVyc29uJztcclxuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4uLy4uL2Zvcm1zL21vZGVscy9hZGRyZXNzJztcclxuXHJcbi8qKiBUaGUgcG9saWN5IHBlcnNvbiAqL1xyXG5leHBvcnQgY2xhc3MgUG9saWN5UGVyc29uIGltcGxlbWVudHMgUGVyc29uIHtcclxuICAgIC8qKiBJbXBsZW1lbnRlZCBwcm9wcyAqL1xyXG4gICAgcHVibGljIGV4Y2hhbmdlSWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBncm91cFBvbGljeU51bWJlcjogc3RyaW5nO1xyXG4gICAgcHVibGljIGRvYjogRGF0ZTtcclxuICAgIHB1YmxpYyBnZW5kZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbGF0aW9uc2hpcDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBBZGRpdGlvbmFsIFByb3BzICovXHJcbiAgICBwdWJsaWMgaG9tZUFkZHJlc3M6IEFkZHJlc3MgPSB7fTtcclxuICAgIHB1YmxpYyBtYWlsaW5nQWRkcmVzczogQWRkcmVzcyA9IHt9O1xyXG4gICAgcHVibGljIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGhvbmU6IHN0cmluZztcclxuICAgIHB1YmxpYyBwaG9uZVR5cGU6IHN0cmluZztcclxufVxyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LXBlcnNvbi5qcyIsInNvdXJjZVJvb3QiOiJTOi9CMDIvX3dvcmsvNjM4L3MvbGlicmFyeS9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlzdHJpYnV0ZWQtY2FjaGUvbW9kZWxzL3BvbGljeS1wZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0Esd0JBQXdCO0FBQ3hCLE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBVUksdUJBQXVCO1FBQ2hCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBQzFCLG1CQUFjLEdBQVksRUFBRSxDQUFDO0lBSXhDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL29hdXRoL21vZGVscy9nZW5lcmF0ZWQvcGVyc29uJztcclxuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4uLy4uL2Zvcm1zL21vZGVscy9hZGRyZXNzJztcclxuXHJcbi8qKiBUaGUgcG9saWN5IHBlcnNvbiAqL1xyXG5leHBvcnQgY2xhc3MgUG9saWN5UGVyc29uIGltcGxlbWVudHMgUGVyc29uIHtcclxuICAgIC8qKiBJbXBsZW1lbnRlZCBwcm9wcyAqL1xyXG4gICAgcHVibGljIGV4Y2hhbmdlSWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBncm91cFBvbGljeU51bWJlcjogc3RyaW5nO1xyXG4gICAgcHVibGljIGRvYjogRGF0ZTtcclxuICAgIHB1YmxpYyBnZW5kZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlbGF0aW9uc2hpcDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBBZGRpdGlvbmFsIFByb3BzICovXHJcbiAgICBwdWJsaWMgaG9tZUFkZHJlc3M6IEFkZHJlc3MgPSB7fTtcclxuICAgIHB1YmxpYyBtYWlsaW5nQWRkcmVzczogQWRkcmVzcyA9IHt9O1xyXG4gICAgcHVibGljIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGhvbmU6IHN0cmluZztcclxuICAgIHB1YmxpYyBwaG9uZVR5cGU6IHN0cmluZztcclxufVxyXG4iXX0=