@energycap/energycapid-sdk-angular 1.2112.50-develop-20220103-1011 → 1.2112.51-develop-20220103-1710
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/api.d.ts +3 -1
- package/api/me.service.d.ts +25 -0
- package/api/notification.service.d.ts +134 -0
- package/bundles/energycap-energycapid-sdk-angular.umd.js +557 -29
- package/bundles/energycap-energycapid-sdk-angular.umd.js.map +1 -1
- package/bundles/energycap-energycapid-sdk-angular.umd.min.js +2 -2
- package/bundles/energycap-energycapid-sdk-angular.umd.min.js.map +1 -1
- package/energycap-energycapid-sdk-angular.metadata.json +1 -1
- package/esm2015/api/api.js +4 -2
- package/esm2015/api/me.service.js +65 -1
- package/esm2015/api/notification.service.js +332 -0
- package/esm2015/api.module.js +3 -2
- package/esm2015/model/models.js +8 -1
- package/esm2015/model/notificationBadgeResponse.js +14 -0
- package/esm2015/model/notificationCategory.js +14 -0
- package/esm2015/model/notificationResponse.js +14 -0
- package/esm2015/model/notificationSettingRequest.js +14 -0
- package/esm2015/model/notificationType.js +14 -0
- package/esm2015/model/notificationUpdateRequest.js +14 -0
- package/esm2015/model/updateResult.js +14 -0
- package/esm2015/model/userResponse.js +1 -1
- package/fesm2015/energycap-energycapid-sdk-angular.js +518 -30
- package/fesm2015/energycap-energycapid-sdk-angular.js.map +1 -1
- package/model/models.d.ts +7 -0
- package/model/notificationBadgeResponse.d.ts +25 -0
- package/model/notificationCategory.d.ts +25 -0
- package/model/notificationResponse.d.ts +35 -0
- package/model/notificationSettingRequest.d.ts +17 -0
- package/model/notificationType.d.ts +27 -0
- package/model/notificationUpdateRequest.d.ts +21 -0
- package/model/updateResult.d.ts +15 -0
- package/model/userResponse.d.ts +4 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"APIS":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"DomainJoinTypeService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}],"ApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMyApplications":[{"__symbolic":"method"}],"getMyApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"ApplicationInstanceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":49,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getApplicationInstanceDetails":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfo":[{"__symbolic":"method"}],"getApplicationInstanceUsers":[{"__symbolic":"method"}],"getApplicationInstances":[{"__symbolic":"method"}],"getApplicationInstanceDetailsWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfoWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstanceUsersWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}]}},"AuthService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}],"getLoginSource":[{"__symbolic":"method"}],"loginWithFederationProvider":[{"__symbolic":"method"}],"loginWithUsernameAndPassword":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}],"sendPasswordRecoveryEmail":[{"__symbolic":"method"}],"validatePassword":[{"__symbolic":"method"}],"changePasswordWithHttpInfo":[{"__symbolic":"method"}],"getLoginSourceWithHttpInfo":[{"__symbolic":"method"}],"loginWithFederationProviderWithHttpInfo":[{"__symbolic":"method"}],"loginWithUsernameAndPasswordWithHttpInfo":[{"__symbolic":"method"}],"resetPasswordWithHttpInfo":[{"__symbolic":"method"}],"sendPasswordRecoveryEmailWithHttpInfo":[{"__symbolic":"method"}],"validatePasswordWithHttpInfo":[{"__symbolic":"method"}]}},"DataSourceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDataSourceById":[{"__symbolic":"method"}],"getDataSources":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getDataSourceByIdWithHttpInfo":[{"__symbolic":"method"}],"getDataSourcesWithHttpInfo":[{"__symbolic":"method"}],"updateDataSourceWithHttpInfo":[{"__symbolic":"method"}]}},"DomainJoinTypeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDomainJoinTypes":[{"__symbolic":"method"}],"getDomainJoinTypesWithHttpInfo":[{"__symbolic":"method"}]}},"EnvironmentService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getEnvironments":[{"__symbolic":"method"}],"getEnvironmentsWithHttpInfo":[{"__symbolic":"method"}]}},"MeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":41,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":48,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMe":[{"__symbolic":"method"}],"linkMyUserToDataSource":[{"__symbolic":"method"}],"updateMyInformation":[{"__symbolic":"method"}],"getMeWithHttpInfo":[{"__symbolic":"method"}],"linkMyUserToDataSourceWithHttpInfo":[{"__symbolic":"method"}],"updateMyInformationWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":46,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":53,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createOrganization":[{"__symbolic":"method"}],"getOrganizationAccessControl":[{"__symbolic":"method"}],"getOrganizationById":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getOrganizationHierarchy":[{"__symbolic":"method"}],"getOrganizationUsers":[{"__symbolic":"method"}],"getOrganizations":[{"__symbolic":"method"}],"searchOrganizations":[{"__symbolic":"method"}],"updateOrganizationAccessControl":[{"__symbolic":"method"}],"updateOrganizationDetails":[{"__symbolic":"method"}],"createOrganizationWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationAccessControlWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationByIdWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationDetailsWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationHierarchyWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationUsersWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"searchOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"updateOrganizationAccessControlWithHttpInfo":[{"__symbolic":"method"}],"updateOrganizationDetailsWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationApplications":[{"__symbolic":"method"}],"getOrganizationApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"UserService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":47,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":54,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"deleteUserPermission":[{"__symbolic":"method"}],"getUserApplicationInstances":[{"__symbolic":"method"}],"getUserByEmail":[{"__symbolic":"method"}],"getUserOrganizations":[{"__symbolic":"method"}],"getUserPermissionForEntity":[{"__symbolic":"method"}],"getUserPermissions":[{"__symbolic":"method"}],"getUsersWithPermissionToEntity":[{"__symbolic":"method"}],"inviteUser":[{"__symbolic":"method"}],"resendInvite":[{"__symbolic":"method"}],"setUserPermission":[{"__symbolic":"method"}],"createUserWithHttpInfo":[{"__symbolic":"method"}],"deleteUserPermissionWithHttpInfo":[{"__symbolic":"method"}],"getUserApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}],"getUserByEmailWithHttpInfo":[{"__symbolic":"method"}],"getUserOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionForEntityWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionsWithHttpInfo":[{"__symbolic":"method"}],"getUsersWithPermissionToEntityWithHttpInfo":[{"__symbolic":"method"}],"inviteUserWithHttpInfo":[{"__symbolic":"method"}],"resendInviteWithHttpInfo":[{"__symbolic":"method"}],"setUserPermissionWithHttpInfo":[{"__symbolic":"method"}]}},"APIFilter":{"__symbolic":"class","members":{}},"APIOrderBy":{"__symbolic":"class","members":{}},"AllUserPermissionsResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceDetailResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceRedirectResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceUserResponse":{"__symbolic":"class","members":{}},"ApplicationResponse":{"__symbolic":"class","members":{}},"ChangePasswordRequest":{"__symbolic":"class","members":{}},"CreateOrganizationRequest":{"__symbolic":"class","members":{}},"DataSourceResponse":{"__symbolic":"class","members":{}},"DataSourceUpdateRequest":{"__symbolic":"class","members":{}},"DomainAccessControlResponse":{"__symbolic":"class","members":{}},"DomainJoinTypeResponse":{"__symbolic":"class","members":{}},"EntityPermission":{"__symbolic":"class","members":{}},"EnvironmentResponse":{"__symbolic":"class","members":{}},"HierarchicalOrganizations":{"__symbolic":"class","members":{}},"HierarchicalOrganizations2":{"__symbolic":"class","members":{}},"InviteUserRequest":{"__symbolic":"class","members":{}},"LinkDataSourceRequest":{"__symbolic":"class","members":{}},"LoginResponse":{"__symbolic":"class","members":{}},"LoginSourceResponse":{"__symbolic":"class","members":{}},"OrganizationAccessControlResponse":{"__symbolic":"class","members":{}},"OrganizationApplicationResponse":{"__symbolic":"class","members":{}},"OrganizationDetailResponse":{"__symbolic":"class","members":{}},"OrganizationResponse":{"__symbolic":"class","members":{}},"OrganizationUserResponse":{"__symbolic":"class","members":{}},"ResetPasswordRequest":{"__symbolic":"class","members":{}},"RoleEnum":{"NoAccess":"NoAccess","ReadOnly":"ReadOnly","Admin":"Admin"},"SelfCreateUserRequest":{"__symbolic":"class","members":{}},"UpdateMeRequest":{"__symbolic":"class","members":{}},"UpdateOrganizationAccessControlRequest":{"__symbolic":"class","members":{}},"UpdateOrganizationDetailsRequest":{"__symbolic":"class","members":{}},"UserApplicationInstanceResponse":{"__symbolic":"class","members":{}},"UserAuthResultEnum":{"PasswordChangeRequired":"PasswordChangeRequired","PasswordResetRequired":"PasswordResetRequired","Success":"Success","EmailNotVerified":"EmailNotVerified","LockedOut":"LockedOut","PasswordIsInvalid":"PasswordIsInvalid","NoPasswordChangeForFederatedDomain":"NoPasswordChangeForFederatedDomain","FailedOther":"FailedOther"},"UserChild":{"__symbolic":"class","members":{}},"UserLoginRequest":{"__symbolic":"class","members":{}},"UserOrganizationResponse":{"__symbolic":"class","members":{}},"UserPermissionRequest":{"__symbolic":"class","members":{}},"UserPermissionResponse":{"__symbolic":"class","members":{}},"UserResponse":{"__symbolic":"class","members":{}},"UserStatusEnum":{"Unknown":"Unknown","Confirmed":"Confirmed","ForcePasswordReset":"ForcePasswordReset","ForcePasswordChange":"ForcePasswordChange","RequireEmailVerification":"RequireEmailVerification","LockedOut":"LockedOut"},"ValidatePasswordRequest":{"__symbolic":"class","members":{}},"ValidatePasswordResponse":{"__symbolic":"class","members":{}},"BASE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["basePath"]},"COLLECTION_FORMATS":{"csv":",","tsv":" ","ssv":" ","pipes":"|","$quoted$":["csv","tsv","ssv","pipes"]},"ConfigurationParameters":{"__symbolic":"interface"},"Configuration":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"EnergyCapSdkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":18},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":17,"character":32}],"declarations":[],"exports":[],"providers":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"DomainJoinTypeService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}]}]}],"members":{},"statics":{"forConfig":{"__symbolic":"function","parameters":["configurationFactory"],"value":{"ngModule":{"__symbolic":"reference","name":"EnergyCapSdkModule"},"providers":[{"provide":{"__symbolic":"reference","name":"Configuration"},"useFactory":{"__symbolic":"reference","name":"configurationFactory"}}]}}}}},"origins":{"APIS":"./api/api","ApplicationService":"./api/application.service","ApplicationInstanceService":"./api/applicationInstance.service","AuthService":"./api/auth.service","DataSourceService":"./api/dataSource.service","DomainJoinTypeService":"./api/domainJoinType.service","EnvironmentService":"./api/environment.service","MeService":"./api/me.service","OrganizationService":"./api/organization.service","OrganizationApplicationService":"./api/organizationApplication.service","UserService":"./api/user.service","APIFilter":"./model/aPIFilter","APIOrderBy":"./model/aPIOrderBy","AllUserPermissionsResponse":"./model/allUserPermissionsResponse","ApplicationInstanceDetailResponse":"./model/applicationInstanceDetailResponse","ApplicationInstanceRedirectResponse":"./model/applicationInstanceRedirectResponse","ApplicationInstanceResponse":"./model/applicationInstanceResponse","ApplicationInstanceUserResponse":"./model/applicationInstanceUserResponse","ApplicationResponse":"./model/applicationResponse","ChangePasswordRequest":"./model/changePasswordRequest","CreateOrganizationRequest":"./model/createOrganizationRequest","DataSourceResponse":"./model/dataSourceResponse","DataSourceUpdateRequest":"./model/dataSourceUpdateRequest","DomainAccessControlResponse":"./model/domainAccessControlResponse","DomainJoinTypeResponse":"./model/domainJoinTypeResponse","EntityPermission":"./model/entityPermission","EnvironmentResponse":"./model/environmentResponse","HierarchicalOrganizations":"./model/hierarchicalOrganizations","HierarchicalOrganizations2":"./model/hierarchicalOrganizations2","InviteUserRequest":"./model/inviteUserRequest","LinkDataSourceRequest":"./model/linkDataSourceRequest","LoginResponse":"./model/loginResponse","LoginSourceResponse":"./model/loginSourceResponse","OrganizationAccessControlResponse":"./model/organizationAccessControlResponse","OrganizationApplicationResponse":"./model/organizationApplicationResponse","OrganizationDetailResponse":"./model/organizationDetailResponse","OrganizationResponse":"./model/organizationResponse","OrganizationUserResponse":"./model/organizationUserResponse","ResetPasswordRequest":"./model/resetPasswordRequest","RoleEnum":"./model/roleEnum","SelfCreateUserRequest":"./model/selfCreateUserRequest","UpdateMeRequest":"./model/updateMeRequest","UpdateOrganizationAccessControlRequest":"./model/updateOrganizationAccessControlRequest","UpdateOrganizationDetailsRequest":"./model/updateOrganizationDetailsRequest","UserApplicationInstanceResponse":"./model/userApplicationInstanceResponse","UserAuthResultEnum":"./model/userAuthResultEnum","UserChild":"./model/userChild","UserLoginRequest":"./model/userLoginRequest","UserOrganizationResponse":"./model/userOrganizationResponse","UserPermissionRequest":"./model/userPermissionRequest","UserPermissionResponse":"./model/userPermissionResponse","UserResponse":"./model/userResponse","UserStatusEnum":"./model/userStatusEnum","ValidatePasswordRequest":"./model/validatePasswordRequest","ValidatePasswordResponse":"./model/validatePasswordResponse","BASE_PATH":"./variables","COLLECTION_FORMATS":"./variables","ConfigurationParameters":"./configuration","Configuration":"./configuration","EnergyCapSdkModule":"./api.module"},"importAs":"@energycap/energycapid-sdk-angular"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"APIS":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"DomainJoinTypeService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"NotificationService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}],"ApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMyApplications":[{"__symbolic":"method"}],"getMyApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"ApplicationInstanceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":49,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getApplicationInstanceDetails":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfo":[{"__symbolic":"method"}],"getApplicationInstanceUsers":[{"__symbolic":"method"}],"getApplicationInstances":[{"__symbolic":"method"}],"getApplicationInstanceDetailsWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfoWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstanceUsersWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}]}},"AuthService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}],"getLoginSource":[{"__symbolic":"method"}],"loginWithFederationProvider":[{"__symbolic":"method"}],"loginWithUsernameAndPassword":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}],"sendPasswordRecoveryEmail":[{"__symbolic":"method"}],"validatePassword":[{"__symbolic":"method"}],"changePasswordWithHttpInfo":[{"__symbolic":"method"}],"getLoginSourceWithHttpInfo":[{"__symbolic":"method"}],"loginWithFederationProviderWithHttpInfo":[{"__symbolic":"method"}],"loginWithUsernameAndPasswordWithHttpInfo":[{"__symbolic":"method"}],"resetPasswordWithHttpInfo":[{"__symbolic":"method"}],"sendPasswordRecoveryEmailWithHttpInfo":[{"__symbolic":"method"}],"validatePasswordWithHttpInfo":[{"__symbolic":"method"}]}},"DataSourceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDataSourceById":[{"__symbolic":"method"}],"getDataSources":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getDataSourceByIdWithHttpInfo":[{"__symbolic":"method"}],"getDataSourcesWithHttpInfo":[{"__symbolic":"method"}],"updateDataSourceWithHttpInfo":[{"__symbolic":"method"}]}},"DomainJoinTypeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDomainJoinTypes":[{"__symbolic":"method"}],"getDomainJoinTypesWithHttpInfo":[{"__symbolic":"method"}]}},"EnvironmentService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getEnvironments":[{"__symbolic":"method"}],"getEnvironmentsWithHttpInfo":[{"__symbolic":"method"}]}},"MeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":49,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMe":[{"__symbolic":"method"}],"linkMyUserToDataSource":[{"__symbolic":"method"}],"updateMyInformation":[{"__symbolic":"method"}],"updateMyNotificationSetting":[{"__symbolic":"method"}],"getMeWithHttpInfo":[{"__symbolic":"method"}],"linkMyUserToDataSourceWithHttpInfo":[{"__symbolic":"method"}],"updateMyInformationWithHttpInfo":[{"__symbolic":"method"}],"updateMyNotificationSettingWithHttpInfo":[{"__symbolic":"method"}]}},"NotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":42,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":49,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMyNotifications":[{"__symbolic":"method"}],"getNotification":[{"__symbolic":"method"}],"getNotificationBadgeTotals":[{"__symbolic":"method"}],"updateListOfNotifications":[{"__symbolic":"method"}],"getMyNotificationsWithHttpInfo":[{"__symbolic":"method"}],"getNotificationWithHttpInfo":[{"__symbolic":"method"}],"getNotificationBadgeTotalsWithHttpInfo":[{"__symbolic":"method"}],"updateListOfNotificationsWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":46,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":53,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":53,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createOrganization":[{"__symbolic":"method"}],"getOrganizationAccessControl":[{"__symbolic":"method"}],"getOrganizationById":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getOrganizationHierarchy":[{"__symbolic":"method"}],"getOrganizationUsers":[{"__symbolic":"method"}],"getOrganizations":[{"__symbolic":"method"}],"searchOrganizations":[{"__symbolic":"method"}],"updateOrganizationAccessControl":[{"__symbolic":"method"}],"updateOrganizationDetails":[{"__symbolic":"method"}],"createOrganizationWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationAccessControlWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationByIdWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationDetailsWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationHierarchyWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationUsersWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"searchOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"updateOrganizationAccessControlWithHttpInfo":[{"__symbolic":"method"}],"updateOrganizationDetailsWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationApplications":[{"__symbolic":"method"}],"getOrganizationApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"UserService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":47,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":54,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"deleteUserPermission":[{"__symbolic":"method"}],"getUserApplicationInstances":[{"__symbolic":"method"}],"getUserByEmail":[{"__symbolic":"method"}],"getUserOrganizations":[{"__symbolic":"method"}],"getUserPermissionForEntity":[{"__symbolic":"method"}],"getUserPermissions":[{"__symbolic":"method"}],"getUsersWithPermissionToEntity":[{"__symbolic":"method"}],"inviteUser":[{"__symbolic":"method"}],"resendInvite":[{"__symbolic":"method"}],"setUserPermission":[{"__symbolic":"method"}],"createUserWithHttpInfo":[{"__symbolic":"method"}],"deleteUserPermissionWithHttpInfo":[{"__symbolic":"method"}],"getUserApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}],"getUserByEmailWithHttpInfo":[{"__symbolic":"method"}],"getUserOrganizationsWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionForEntityWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionsWithHttpInfo":[{"__symbolic":"method"}],"getUsersWithPermissionToEntityWithHttpInfo":[{"__symbolic":"method"}],"inviteUserWithHttpInfo":[{"__symbolic":"method"}],"resendInviteWithHttpInfo":[{"__symbolic":"method"}],"setUserPermissionWithHttpInfo":[{"__symbolic":"method"}]}},"APIFilter":{"__symbolic":"class","members":{}},"APIOrderBy":{"__symbolic":"class","members":{}},"AllUserPermissionsResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceDetailResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceRedirectResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceUserResponse":{"__symbolic":"class","members":{}},"ApplicationResponse":{"__symbolic":"class","members":{}},"ChangePasswordRequest":{"__symbolic":"class","members":{}},"CreateOrganizationRequest":{"__symbolic":"class","members":{}},"DataSourceResponse":{"__symbolic":"class","members":{}},"DataSourceUpdateRequest":{"__symbolic":"class","members":{}},"DomainAccessControlResponse":{"__symbolic":"class","members":{}},"DomainJoinTypeResponse":{"__symbolic":"class","members":{}},"EntityPermission":{"__symbolic":"class","members":{}},"EnvironmentResponse":{"__symbolic":"class","members":{}},"HierarchicalOrganizations":{"__symbolic":"class","members":{}},"HierarchicalOrganizations2":{"__symbolic":"class","members":{}},"InviteUserRequest":{"__symbolic":"class","members":{}},"LinkDataSourceRequest":{"__symbolic":"class","members":{}},"LoginResponse":{"__symbolic":"class","members":{}},"LoginSourceResponse":{"__symbolic":"class","members":{}},"NotificationBadgeResponse":{"__symbolic":"class","members":{}},"NotificationCategory":{"__symbolic":"class","members":{}},"NotificationResponse":{"__symbolic":"class","members":{}},"NotificationSettingRequest":{"__symbolic":"class","members":{}},"NotificationType":{"__symbolic":"class","members":{}},"NotificationUpdateRequest":{"__symbolic":"class","members":{}},"OrganizationAccessControlResponse":{"__symbolic":"class","members":{}},"OrganizationApplicationResponse":{"__symbolic":"class","members":{}},"OrganizationDetailResponse":{"__symbolic":"class","members":{}},"OrganizationResponse":{"__symbolic":"class","members":{}},"OrganizationUserResponse":{"__symbolic":"class","members":{}},"ResetPasswordRequest":{"__symbolic":"class","members":{}},"RoleEnum":{"NoAccess":"NoAccess","ReadOnly":"ReadOnly","Admin":"Admin"},"SelfCreateUserRequest":{"__symbolic":"class","members":{}},"UpdateMeRequest":{"__symbolic":"class","members":{}},"UpdateOrganizationAccessControlRequest":{"__symbolic":"class","members":{}},"UpdateOrganizationDetailsRequest":{"__symbolic":"class","members":{}},"UpdateResult":{"__symbolic":"class","members":{}},"UserApplicationInstanceResponse":{"__symbolic":"class","members":{}},"UserAuthResultEnum":{"PasswordChangeRequired":"PasswordChangeRequired","PasswordResetRequired":"PasswordResetRequired","Success":"Success","EmailNotVerified":"EmailNotVerified","LockedOut":"LockedOut","PasswordIsInvalid":"PasswordIsInvalid","NoPasswordChangeForFederatedDomain":"NoPasswordChangeForFederatedDomain","FailedOther":"FailedOther"},"UserChild":{"__symbolic":"class","members":{}},"UserLoginRequest":{"__symbolic":"class","members":{}},"UserOrganizationResponse":{"__symbolic":"class","members":{}},"UserPermissionRequest":{"__symbolic":"class","members":{}},"UserPermissionResponse":{"__symbolic":"class","members":{}},"UserResponse":{"__symbolic":"class","members":{}},"UserStatusEnum":{"Unknown":"Unknown","Confirmed":"Confirmed","ForcePasswordReset":"ForcePasswordReset","ForcePasswordChange":"ForcePasswordChange","RequireEmailVerification":"RequireEmailVerification","LockedOut":"LockedOut"},"ValidatePasswordRequest":{"__symbolic":"class","members":{}},"ValidatePasswordResponse":{"__symbolic":"class","members":{}},"BASE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["basePath"]},"COLLECTION_FORMATS":{"csv":",","tsv":" ","ssv":" ","pipes":"|","$quoted$":["csv","tsv","ssv","pipes"]},"ConfigurationParameters":{"__symbolic":"interface"},"Configuration":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"EnergyCapSdkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":18},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":18,"character":32}],"declarations":[],"exports":[],"providers":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"DomainJoinTypeService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"NotificationService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}]}]}],"members":{},"statics":{"forConfig":{"__symbolic":"function","parameters":["configurationFactory"],"value":{"ngModule":{"__symbolic":"reference","name":"EnergyCapSdkModule"},"providers":[{"provide":{"__symbolic":"reference","name":"Configuration"},"useFactory":{"__symbolic":"reference","name":"configurationFactory"}}]}}}}},"origins":{"APIS":"./api/api","ApplicationService":"./api/application.service","ApplicationInstanceService":"./api/applicationInstance.service","AuthService":"./api/auth.service","DataSourceService":"./api/dataSource.service","DomainJoinTypeService":"./api/domainJoinType.service","EnvironmentService":"./api/environment.service","MeService":"./api/me.service","NotificationService":"./api/notification.service","OrganizationService":"./api/organization.service","OrganizationApplicationService":"./api/organizationApplication.service","UserService":"./api/user.service","APIFilter":"./model/aPIFilter","APIOrderBy":"./model/aPIOrderBy","AllUserPermissionsResponse":"./model/allUserPermissionsResponse","ApplicationInstanceDetailResponse":"./model/applicationInstanceDetailResponse","ApplicationInstanceRedirectResponse":"./model/applicationInstanceRedirectResponse","ApplicationInstanceResponse":"./model/applicationInstanceResponse","ApplicationInstanceUserResponse":"./model/applicationInstanceUserResponse","ApplicationResponse":"./model/applicationResponse","ChangePasswordRequest":"./model/changePasswordRequest","CreateOrganizationRequest":"./model/createOrganizationRequest","DataSourceResponse":"./model/dataSourceResponse","DataSourceUpdateRequest":"./model/dataSourceUpdateRequest","DomainAccessControlResponse":"./model/domainAccessControlResponse","DomainJoinTypeResponse":"./model/domainJoinTypeResponse","EntityPermission":"./model/entityPermission","EnvironmentResponse":"./model/environmentResponse","HierarchicalOrganizations":"./model/hierarchicalOrganizations","HierarchicalOrganizations2":"./model/hierarchicalOrganizations2","InviteUserRequest":"./model/inviteUserRequest","LinkDataSourceRequest":"./model/linkDataSourceRequest","LoginResponse":"./model/loginResponse","LoginSourceResponse":"./model/loginSourceResponse","NotificationBadgeResponse":"./model/notificationBadgeResponse","NotificationCategory":"./model/notificationCategory","NotificationResponse":"./model/notificationResponse","NotificationSettingRequest":"./model/notificationSettingRequest","NotificationType":"./model/notificationType","NotificationUpdateRequest":"./model/notificationUpdateRequest","OrganizationAccessControlResponse":"./model/organizationAccessControlResponse","OrganizationApplicationResponse":"./model/organizationApplicationResponse","OrganizationDetailResponse":"./model/organizationDetailResponse","OrganizationResponse":"./model/organizationResponse","OrganizationUserResponse":"./model/organizationUserResponse","ResetPasswordRequest":"./model/resetPasswordRequest","RoleEnum":"./model/roleEnum","SelfCreateUserRequest":"./model/selfCreateUserRequest","UpdateMeRequest":"./model/updateMeRequest","UpdateOrganizationAccessControlRequest":"./model/updateOrganizationAccessControlRequest","UpdateOrganizationDetailsRequest":"./model/updateOrganizationDetailsRequest","UpdateResult":"./model/updateResult","UserApplicationInstanceResponse":"./model/userApplicationInstanceResponse","UserAuthResultEnum":"./model/userAuthResultEnum","UserChild":"./model/userChild","UserLoginRequest":"./model/userLoginRequest","UserOrganizationResponse":"./model/userOrganizationResponse","UserPermissionRequest":"./model/userPermissionRequest","UserPermissionResponse":"./model/userPermissionResponse","UserResponse":"./model/userResponse","UserStatusEnum":"./model/userStatusEnum","ValidatePasswordRequest":"./model/validatePasswordRequest","ValidatePasswordResponse":"./model/validatePasswordResponse","BASE_PATH":"./variables","COLLECTION_FORMATS":"./variables","ConfigurationParameters":"./configuration","Configuration":"./configuration","EnergyCapSdkModule":"./api.module"},"importAs":"@energycap/energycapid-sdk-angular"}
|
package/esm2015/api/api.js
CHANGED
|
@@ -12,11 +12,13 @@ export * from './environment.service';
|
|
|
12
12
|
import { EnvironmentService } from './environment.service';
|
|
13
13
|
export * from './me.service';
|
|
14
14
|
import { MeService } from './me.service';
|
|
15
|
+
export * from './notification.service';
|
|
16
|
+
import { NotificationService } from './notification.service';
|
|
15
17
|
export * from './organization.service';
|
|
16
18
|
import { OrganizationService } from './organization.service';
|
|
17
19
|
export * from './organizationApplication.service';
|
|
18
20
|
import { OrganizationApplicationService } from './organizationApplication.service';
|
|
19
21
|
export * from './user.service';
|
|
20
22
|
import { UserService } from './user.service';
|
|
21
|
-
export const APIS = [ApplicationService, ApplicationInstanceService, AuthService, DataSourceService, DomainJoinTypeService, EnvironmentService, MeService, OrganizationService, OrganizationApplicationService, UserService];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
export const APIS = [ApplicationService, ApplicationInstanceService, AuthService, DataSourceService, DomainJoinTypeService, EnvironmentService, MeService, NotificationService, OrganizationService, OrganizationApplicationService, UserService];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsY0FBYyxjQUFjLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbkluc3RhbmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluc3RhbmNlU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25JbnN0YW5jZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRhU291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4vZGF0YVNvdXJjZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kb21haW5Kb2luVHlwZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tYWluSm9pblR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9kb21haW5Kb2luVHlwZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVTZXJ2aWNlIH0gZnJvbSAnLi9tZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNlcnZpY2UgfSBmcm9tICcuL29yZ2FuaXphdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vcmdhbml6YXRpb25BcHBsaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uQXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb25BcHBsaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcclxuZXhwb3J0IGNvbnN0IEFQSVMgPSBbQXBwbGljYXRpb25TZXJ2aWNlLCBBcHBsaWNhdGlvbkluc3RhbmNlU2VydmljZSwgQXV0aFNlcnZpY2UsIERhdGFTb3VyY2VTZXJ2aWNlLCBEb21haW5Kb2luVHlwZVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSwgTWVTZXJ2aWNlLCBOb3RpZmljYXRpb25TZXJ2aWNlLCBPcmdhbml6YXRpb25TZXJ2aWNlLCBPcmdhbml6YXRpb25BcHBsaWNhdGlvblNlcnZpY2UsIFVzZXJTZXJ2aWNlXTtcclxuIl19
|
|
@@ -112,6 +112,22 @@ export class MeService {
|
|
|
112
112
|
}
|
|
113
113
|
}));
|
|
114
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Use this method to update the currently authenticated user's notification settings
|
|
117
|
+
*
|
|
118
|
+
* @param body The user notification settings to update
|
|
119
|
+
*/
|
|
120
|
+
updateMyNotificationSetting(body, extraHttpRequestParams, extraHttpRequestHeaders) {
|
|
121
|
+
return this.updateMyNotificationSettingWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders)
|
|
122
|
+
.pipe(map((response) => {
|
|
123
|
+
if (response.status === 204) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return response.body;
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
115
131
|
/**
|
|
116
132
|
* Use this method to get information about the currently authenticated user
|
|
117
133
|
*
|
|
@@ -249,6 +265,54 @@ export class MeService {
|
|
|
249
265
|
};
|
|
250
266
|
return this.http.request(RequestMethod.Put, path, requestOptions);
|
|
251
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Use this method to update the currently authenticated user's notification settings
|
|
270
|
+
*
|
|
271
|
+
* @param body The user notification settings to update
|
|
272
|
+
*/
|
|
273
|
+
updateMyNotificationSettingWithHttpInfo(body, extraHttpRequestParams, extraHttpRequestHeaders) {
|
|
274
|
+
const path = this.basePath + '/api/v202108/Me/notificationsetting';
|
|
275
|
+
let queryParameters;
|
|
276
|
+
if (extraHttpRequestParams) {
|
|
277
|
+
if (typeof extraHttpRequestParams.search === 'string') {
|
|
278
|
+
queryParameters = new HttpParams({ fromString: extraHttpRequestParams.search });
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
queryParameters = new HttpParams({ fromObject: extraHttpRequestParams.search });
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
queryParameters = new HttpParams();
|
|
286
|
+
}
|
|
287
|
+
let headers = new HttpHeaders();
|
|
288
|
+
this.defaultHeaders.keys().forEach(key => {
|
|
289
|
+
headers = headers.set(key, this.defaultHeaders.getAll(key));
|
|
290
|
+
});
|
|
291
|
+
if (extraHttpRequestHeaders) {
|
|
292
|
+
Object.entries(extraHttpRequestHeaders).forEach(([key, value]) => {
|
|
293
|
+
headers = headers.set(key, value);
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
// to determine the Accept header
|
|
297
|
+
let produces = [
|
|
298
|
+
'application/json'
|
|
299
|
+
];
|
|
300
|
+
if (this.configuration.apiKeys["Authorization"]) {
|
|
301
|
+
headers = headers.set('Authorization', this.configuration.apiKeys["Authorization"]);
|
|
302
|
+
}
|
|
303
|
+
const consumes = [
|
|
304
|
+
'application/json'
|
|
305
|
+
];
|
|
306
|
+
headers = headers.set('Content-Type', consumes[0]);
|
|
307
|
+
let requestOptions = {
|
|
308
|
+
headers: headers,
|
|
309
|
+
body: body == null ? '' : (consumes[0] == 'application/json' ? JSON.stringify(body) : body),
|
|
310
|
+
params: queryParameters,
|
|
311
|
+
withCredentials: this.configuration.withCredentials,
|
|
312
|
+
observe: 'response'
|
|
313
|
+
};
|
|
314
|
+
return this.http.request(RequestMethod.Put, path, requestOptions);
|
|
315
|
+
}
|
|
252
316
|
}
|
|
253
317
|
MeService.decorators = [
|
|
254
318
|
{ type: Injectable }
|
|
@@ -258,4 +322,4 @@ MeService.ctorParameters = () => [
|
|
|
258
322
|
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH,] }] },
|
|
259
323
|
{ type: Configuration, decorators: [{ type: Optional }] }
|
|
260
324
|
];
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9tZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBb0Isc0JBQXNCLENBQUM7QUFJekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFvRCxnQkFBZ0IsQ0FBQztBQU1uRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQThDLGNBQWMsQ0FBQztBQUdqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDO0FBRXJGLE1BQU0sYUFBYSxHQUFHO0lBQ2xCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUlGLE1BQU0sT0FBTyxTQUFTO0lBTWxCLFlBQXNCLElBQWdCLEVBQWdDLFFBQWdCLEVBQWMsYUFBNEI7UUFBMUcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUo1QixhQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsbUJBQWMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3RELElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUM5RDtJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFNBQVMsQ0FBUSxJQUFRLEVBQUUsSUFBUTtRQUN2QyxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBQztZQUNoQixJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUM7Z0JBQ3ZCLElBQVksQ0FBQyxHQUFHLENBQUMsR0FBSSxJQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0M7U0FDSjtRQUNELE9BQWMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUM7UUFDbkMsS0FBSyxJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDMUIsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLHNCQUFrRixFQUFFLHVCQUErRDtRQUM1SixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzthQUN6RSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBb0MsRUFBRSxFQUFFO1lBQ3pDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3pCLE9BQU8sU0FBUyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDVCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLElBQTRCLEVBQUUsc0JBQWtGLEVBQUUsdUJBQStEO1FBQzNNLE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzthQUNoRyxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBMkIsRUFBRSxFQUFFO1lBQ2hDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3pCLE9BQU8sU0FBUyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDVCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLElBQXNCLEVBQUUsc0JBQWtGLEVBQUUsdUJBQStEO1FBQ2xNLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQzthQUM3RixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBb0MsRUFBRSxFQUFFO1lBQ3pDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3pCLE9BQU8sU0FBUyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDVCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksaUJBQWlCLENBQUMsc0JBQWtGLEVBQUUsdUJBQStEO1FBQ3hLLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUM7UUFFL0MsSUFBSSxlQUEyQixDQUFDO1FBRWhDLElBQUksc0JBQXNCLEVBQUU7WUFDeEIsSUFBSSxPQUFPLHNCQUFzQixDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ25ELGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO2lCQUFNO2dCQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO1NBQ0o7YUFBTTtZQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQXVCLEVBQUU7WUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBR0QsaUNBQWlDO1FBQ2pDLElBQUksUUFBUSxHQUFhO1lBQ3JCLGtCQUFrQjtTQUNyQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM3QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUN2RjtRQUdELE1BQU0sUUFBUSxHQUFhLEVBQzFCLENBQUM7UUFFRixJQUFJLGNBQWMsR0FBRztZQUNqQixPQUFPLEVBQUUsT0FBTztZQUNoQixNQUFNLEVBQUUsZUFBZTtZQUN2QixlQUFlLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ2xELE9BQU8sRUFBRSxVQUF3QjtTQUNwQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBZSxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtDQUFrQyxDQUFDLElBQTRCLEVBQUUsc0JBQWtGLEVBQUUsdUJBQStEO1FBQ3ZOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsaUNBQWlDLENBQUM7UUFFL0QsSUFBSSxlQUEyQixDQUFDO1FBRWhDLElBQUksc0JBQXNCLEVBQUU7WUFDeEIsSUFBSSxPQUFPLHNCQUFzQixDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ25ELGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO2lCQUFNO2dCQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO1NBQ0o7YUFBTTtZQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQXVCLEVBQUU7WUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBR0QsaUNBQWlDO1FBQ2pDLElBQUksUUFBUSxHQUFhLEVBQ3hCLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzdDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO1FBR0QsTUFBTSxRQUFRLEdBQWE7WUFDdkIsa0JBQWtCO1NBQ3JCLENBQUM7UUFDRixPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsSUFBSSxjQUFjLEdBQUc7WUFDakIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMzRixNQUFNLEVBQUUsZUFBZTtZQUN2QixlQUFlLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ2xELE9BQU8sRUFBRSxVQUF3QjtTQUNwQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBTSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLCtCQUErQixDQUFDLElBQXNCLEVBQUUsc0JBQWtGLEVBQUUsdUJBQStEO1FBQzlNLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUM7UUFFL0MsSUFBSSxlQUEyQixDQUFDO1FBRWhDLElBQUksc0JBQXNCLEVBQUU7WUFDeEIsSUFBSSxPQUFPLHNCQUFzQixDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ25ELGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO2lCQUFNO2dCQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQ2pGO1NBQ0o7YUFBTTtZQUNILGVBQWUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQXVCLEVBQUU7WUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBR0QsaUNBQWlDO1FBQ2pDLElBQUksUUFBUSxHQUFhO1lBQ3JCLGtCQUFrQjtTQUNyQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM3QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUN2RjtRQUdELE1BQU0sUUFBUSxHQUFhO1lBQ3ZCLGtCQUFrQjtTQUNyQixDQUFDO1FBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5ELElBQUksY0FBYyxHQUFHO1lBQ2pCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0YsTUFBTSxFQUFFLGVBQWU7WUFDdkIsZUFBZSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNsRCxPQUFPLEVBQUUsVUFBd0I7U0FDcEMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQWUsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDcEYsQ0FBQzs7O1lBeFFKLFVBQVU7OztZQTFCRixVQUFVO3lDQWlDMEIsUUFBUSxZQUFHLE1BQU0sU0FBQyxTQUFTO1lBcEIvRCxhQUFhLHVCQW9CdUUsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBFbmVyZ3lDQVAgSUQgU0RLXHJcbiAqIERvY3VtZW50IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIEVuZXJneUNBUCBJRCBTREtcclxuICpcclxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMjExMlxyXG4gKiBDb250YWN0OiBzdXBwb3J0QGVuZXJneWNhcC5jb21cclxuICpcclxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuLyogdHNsaW50OmRpc2FibGU6bm8tdW51c2VkLXZhcmlhYmxlIG1lbWJlci1vcmRlcmluZyAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9ICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTGlua0RhdGFTb3VyY2VSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvbGlua0RhdGFTb3VyY2VSZXF1ZXN0JztcclxuaW1wb3J0IHsgVXBkYXRlTWVSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvdXBkYXRlTWVSZXF1ZXN0JztcclxuaW1wb3J0IHsgVXNlclJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvdXNlclJlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEJBU0VfUEFUSCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xyXG5pbXBvcnQgeyBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFJlcXVlc3RNZXRob2QgPSB7XHJcbiAgICBHZXQ6ICdnZXQnLFxyXG4gICAgUG9zdDogJ3Bvc3QnLFxyXG4gICAgUHV0OiAncHV0JyxcclxuICAgIERlbGV0ZTogJ2RlbGV0ZScsXHJcbiAgICBPcHRpb25zOiAnb3B0aW9ucycsXHJcbiAgICBIZWFkOiAnaGVhZCcsXHJcbiAgICBQYXRjaDogJ3BhdGNoJ1xyXG59O1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1lU2VydmljZSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGJhc2VQYXRoID0gJ2h0dHBzOi8vbG9jYWxob3N0JztcclxuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVyczogSHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCwgQE9wdGlvbmFsKClASW5qZWN0KEJBU0VfUEFUSCkgYmFzZVBhdGg6IHN0cmluZywgQE9wdGlvbmFsKCkgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbikge1xyXG4gICAgICAgIGlmIChiYXNlUGF0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XHJcblx0XHRcdHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aCB8fCBjb25maWd1cmF0aW9uLmJhc2VQYXRoIHx8IHRoaXMuYmFzZVBhdGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogXHJcbiAgICAgKiBFeHRlbmRzIG9iamVjdCBieSBjb3Bpbmcgbm9uLWV4aXN0aW5nIHByb3BlcnRpZXMuXHJcbiAgICAgKiBAcGFyYW0gb2JqQSBvYmplY3QgdG8gYmUgZXh0ZW5kZWRcclxuICAgICAqIEBwYXJhbSBvYmpCIHNvdXJjZSBvYmplY3RcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBleHRlbmRPYmo8VDEsVDI+KG9iakE6IFQxLCBvYmpCOiBUMikge1xyXG4gICAgICAgIGZvcihsZXQga2V5IGluIG9iakIpe1xyXG4gICAgICAgICAgICBpZihvYmpCLmhhc093blByb3BlcnR5KGtleSkpe1xyXG4gICAgICAgICAgICAgICAgKG9iakEgYXMgYW55KVtrZXldID0gKG9iakIgYXMgYW55KVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiA8VDEmVDI+b2JqQTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXHJcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XHJcbiAgICAgICAgZm9yIChsZXQgY29uc3VtZSBvZiBjb25zdW1lcykge1xyXG4gICAgICAgICAgICBpZiAoZm9ybSA9PT0gY29uc3VtZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlIHRoaXMgbWV0aG9kIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlclxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNZShleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPFVzZXJSZXNwb25zZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lV2l0aEh0dHBJbmZvKGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxVc2VyUmVzcG9uc2U+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2lsbCBhbGxvdyBhIHVzZXIgdG8gbGluayB0byBhIGRhdGEgc291cmNlIHRoYXQgdGhleSBkb24mIzM5O3QgaGF2ZSBhY2Nlc3MgdG8gYmFzZWQgdXBvbiB0aGVpciBsb2dpbiBuYW1lXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5IEluZm9ybWF0aW9uIG5lZWRlZCB0byBjb25uZWN0IHRvIHRoZSBkYXRhIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGlua015VXNlclRvRGF0YVNvdXJjZShib2R5PzogTGlua0RhdGFTb3VyY2VSZXF1ZXN0LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtNeVVzZXJUb0RhdGFTb3VyY2VXaXRoSHR0cEluZm8oYm9keSwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYm9keTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gdXBkYXRlIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyJiMzOTtzIGluZm9ybWF0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5IFRoZSB1c2VyIGluZm9ybWF0aW9uIHRvIHVwZGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlTXlJbmZvcm1hdGlvbihib2R5PzogVXBkYXRlTWVSZXF1ZXN0LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPFVzZXJSZXNwb25zZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU15SW5mb3JtYXRpb25XaXRoSHR0cEluZm8oYm9keSwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPFVzZXJSZXNwb25zZT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYm9keTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlIHRoaXMgbWV0aG9kIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlclxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNZVdpdGhIdHRwSW5mbyhleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxVc2VyUmVzcG9uc2U+PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuYmFzZVBhdGggKyAnL2FwaS92MjAyMTA4L01lJztcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgcHJvZHVjZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcclxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOnRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScgYXMgJ3Jlc3BvbnNlJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0PFVzZXJSZXNwb25zZT4oUmVxdWVzdE1ldGhvZC5HZXQsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdpbGwgYWxsb3cgYSB1c2VyIHRvIGxpbmsgdG8gYSBkYXRhIHNvdXJjZSB0aGF0IHRoZXkgZG9uJiMzOTt0IGhhdmUgYWNjZXNzIHRvIGJhc2VkIHVwb24gdGhlaXIgbG9naW4gbmFtZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYm9keSBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gY29ubmVjdCB0byB0aGUgZGF0YSBzb3VyY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxpbmtNeVVzZXJUb0RhdGFTb3VyY2VXaXRoSHR0cEluZm8oYm9keT86IExpbmtEYXRhU291cmNlUmVxdWVzdCwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IHtzZWFyY2g6IHN0cmluZyB8IHtbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gfSwgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnM/OiB7W2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW119KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj4ge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmJhc2VQYXRoICsgJy9hcGkvdjIwMjEwOC9NZS9kYXRhU291cmNlL2xpbmsnO1xyXG5cclxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzOiBIdHRwUGFyYW1zO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2ggPT09ICdzdHJpbmcnKSB7IFxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21TdHJpbmc6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZnJvbU9iamVjdDogZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2h9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdGhpcy5kZWZhdWx0SGVhZGVycy5nZXRBbGwoa2V5KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykge1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBwcm9kdWNlczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcclxuICAgICAgICBdO1xyXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgY29uc3VtZXNbMF0pO1xyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgICAgIGJvZHk6IGJvZHkgPT0gbnVsbCA/ICcnIDogKGNvbnN1bWVzWzBdID09ICdhcHBsaWNhdGlvbi9qc29uJyA/IEpTT04uc3RyaW5naWZ5KGJvZHkpIDogYm9keSksIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEwNjEyXHJcbiAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxyXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6dGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyBhcyAncmVzcG9uc2UnXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3Q8YW55PihSZXF1ZXN0TWV0aG9kLlBvc3QsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSB0aGlzIG1ldGhvZCB0byB1cGRhdGUgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXImIzM5O3MgaW5mb3JtYXRpb25cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgVGhlIHVzZXIgaW5mb3JtYXRpb24gdG8gdXBkYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cGRhdGVNeUluZm9ybWF0aW9uV2l0aEh0dHBJbmZvKGJvZHk/OiBVcGRhdGVNZVJlcXVlc3QsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPFVzZXJSZXNwb25zZT4+IHtcclxuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5iYXNlUGF0aCArICcvYXBpL3YyMDIxMDgvTWUnO1xyXG5cclxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzOiBIdHRwUGFyYW1zO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2ggPT09ICdzdHJpbmcnKSB7IFxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21TdHJpbmc6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZnJvbU9iamVjdDogZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2h9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdGhpcy5kZWZhdWx0SGVhZGVycy5nZXRBbGwoa2V5KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykge1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBwcm9kdWNlczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGNvbnN1bWVzWzBdKTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBib2R5OiBib2R5ID09IG51bGwgPyAnJyA6IChjb25zdW1lc1swXSA9PSAnYXBwbGljYXRpb24vanNvbicgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IGJvZHkpLCAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMDYxMlxyXG4gICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcclxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOnRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScgYXMgJ3Jlc3BvbnNlJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0PFVzZXJSZXNwb25zZT4oUmVxdWVzdE1ldGhvZC5QdXQsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9tZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBb0Isc0JBQXNCLENBQUM7QUFJekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFvRCxnQkFBZ0IsQ0FBQztBQU9uRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQThDLGNBQWMsQ0FBQztBQUdqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDO0FBRXJGLE1BQU0sYUFBYSxHQUFHO0lBQ2xCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUlGLE1BQU0sT0FBTyxTQUFTO0lBTWxCLFlBQXNCLElBQWdCLEVBQWdDLFFBQWdCLEVBQWMsYUFBNEI7UUFBMUcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUo1QixhQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsbUJBQWMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3RELElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FB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QWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDN0MsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDdkY7UUFHRCxNQUFNLFFBQVEsR0FBYTtZQUN2QixrQkFBa0I7U0FDckIsQ0FBQztRQUNGLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuRCxJQUFJLGNBQWMsR0FBRztZQUNqQixPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNGLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLGVBQWUsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7WUFDbEQsT0FBTyxFQUFFLFVBQXdCO1NBQ3BDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFlLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OztZQW5WSixVQUFVOzs7WUEzQkYsVUFBVTt5Q0FrQzBCLFFBQVEsWUFBRyxNQUFNLFNBQUMsU0FBUztZQXBCL0QsYUFBYSx1QkFvQnVFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRW5lcmd5Q0FQIElEIFNES1xyXG4gKiBEb2N1bWVudCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBFbmVyZ3lDQVAgSUQgU0RLXHJcbiAqXHJcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjIxMTJcclxuICogQ29udGFjdDogc3VwcG9ydEBlbmVyZ3ljYXAuY29tXHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cclxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IExpbmtEYXRhU291cmNlUmVxdWVzdCB9IGZyb20gJy4uL21vZGVsL2xpbmtEYXRhU291cmNlUmVxdWVzdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNldHRpbmdSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvbm90aWZpY2F0aW9uU2V0dGluZ1JlcXVlc3QnO1xyXG5pbXBvcnQgeyBVcGRhdGVNZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC91cGRhdGVNZVJlcXVlc3QnO1xyXG5pbXBvcnQgeyBVc2VyUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC91c2VyUmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgQkFTRV9QQVRIIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuY29uc3QgUmVxdWVzdE1ldGhvZCA9IHtcclxuICAgIEdldDogJ2dldCcsXHJcbiAgICBQb3N0OiAncG9zdCcsXHJcbiAgICBQdXQ6ICdwdXQnLFxyXG4gICAgRGVsZXRlOiAnZGVsZXRlJyxcclxuICAgIE9wdGlvbnM6ICdvcHRpb25zJyxcclxuICAgIEhlYWQ6ICdoZWFkJyxcclxuICAgIFBhdGNoOiAncGF0Y2gnXHJcbn07XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTWVTZXJ2aWNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cHM6Ly9sb2NhbGhvc3QnO1xyXG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcclxuXHRcdFx0dGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBcclxuICAgICAqIEV4dGVuZHMgb2JqZWN0IGJ5IGNvcGluZyBub24tZXhpc3RpbmcgcHJvcGVydGllcy5cclxuICAgICAqIEBwYXJhbSBvYmpBIG9iamVjdCB0byBiZSBleHRlbmRlZFxyXG4gICAgICogQHBhcmFtIG9iakIgc291cmNlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV4dGVuZE9iajxUMSxUMj4ob2JqQTogVDEsIG9iakI6IFQyKSB7XHJcbiAgICAgICAgZm9yKGxldCBrZXkgaW4gb2JqQil7XHJcbiAgICAgICAgICAgIGlmKG9iakIuaGFzT3duUHJvcGVydHkoa2V5KSl7XHJcbiAgICAgICAgICAgICAgICAob2JqQSBhcyBhbnkpW2tleV0gPSAob2JqQiBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDxUMSZUMj5vYmpBO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcclxuICAgICAqIEByZXR1cm4gdHJ1ZTogY29uc3VtZXMgY29udGFpbnMgJ211bHRpcGFydC9mb3JtLWRhdGEnLCBmYWxzZTogb3RoZXJ3aXNlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJztcclxuICAgICAgICBmb3IgKGxldCBjb25zdW1lIG9mIGNvbnN1bWVzKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyXHJcbiAgICAgKiBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1lKGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8VXNlclJlc3BvbnNlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVXaXRoSHR0cEluZm8oZXh0cmFIdHRwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPFVzZXJSZXNwb25zZT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYm9keTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaWxsIGFsbG93IGEgdXNlciB0byBsaW5rIHRvIGEgZGF0YSBzb3VyY2UgdGhhdCB0aGV5IGRvbiYjMzk7dCBoYXZlIGFjY2VzcyB0byBiYXNlZCB1cG9uIHRoZWlyIGxvZ2luIG5hbWVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgSW5mb3JtYXRpb24gbmVlZGVkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGEgc291cmNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsaW5rTXlVc2VyVG9EYXRhU291cmNlKGJvZHk/OiBMaW5rRGF0YVNvdXJjZVJlcXVlc3QsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlua015VXNlclRvRGF0YVNvdXJjZVdpdGhIdHRwSW5mbyhib2R5LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSB0aGlzIG1ldGhvZCB0byB1cGRhdGUgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXImIzM5O3MgaW5mb3JtYXRpb25cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgVGhlIHVzZXIgaW5mb3JtYXRpb24gdG8gdXBkYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cGRhdGVNeUluZm9ybWF0aW9uKGJvZHk/OiBVcGRhdGVNZVJlcXVlc3QsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8VXNlclJlc3BvbnNlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTXlJbmZvcm1hdGlvbldpdGhIdHRwSW5mbyhib2R5LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8VXNlclJlc3BvbnNlPikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSB0aGlzIG1ldGhvZCB0byB1cGRhdGUgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXImIzM5O3Mgbm90aWZpY2F0aW9uIHNldHRpbmdzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5IFRoZSB1c2VyIG5vdGlmaWNhdGlvbiBzZXR0aW5ncyB0byB1cGRhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZU15Tm90aWZpY2F0aW9uU2V0dGluZyhib2R5PzogTm90aWZpY2F0aW9uU2V0dGluZ1JlcXVlc3QsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8VXNlclJlc3BvbnNlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTXlOb3RpZmljYXRpb25TZXR0aW5nV2l0aEh0dHBJbmZvKGJvZHksIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxVc2VyUmVzcG9uc2U+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSB0aGlzIG1ldGhvZCB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXJcclxuICAgICAqIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVXaXRoSHR0cEluZm8oZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IHtzZWFyY2g6IHN0cmluZyB8IHtbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gfSwgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnM/OiB7W2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW119KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8VXNlclJlc3BvbnNlPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmJhc2VQYXRoICsgJy9hcGkvdjIwMjEwOC9NZSc7XHJcblxyXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnM6IEh0dHBQYXJhbXM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaCA9PT0gJ3N0cmluZycpIHsgXHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZnJvbVN0cmluZzogZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2h9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tT2JqZWN0OiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0SGVhZGVycy5rZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB0aGlzLmRlZmF1bHRIZWFkZXJzLmdldEFsbChrZXkpKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IHByb2R1Y2VzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXHJcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczp0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnIGFzICdyZXNwb25zZSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxVc2VyUmVzcG9uc2U+KFJlcXVlc3RNZXRob2QuR2V0LCBwYXRoLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaWxsIGFsbG93IGEgdXNlciB0byBsaW5rIHRvIGEgZGF0YSBzb3VyY2UgdGhhdCB0aGV5IGRvbiYjMzk7dCBoYXZlIGFjY2VzcyB0byBiYXNlZCB1cG9uIHRoZWlyIGxvZ2luIG5hbWVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgSW5mb3JtYXRpb24gbmVlZGVkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGEgc291cmNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsaW5rTXlVc2VyVG9EYXRhU291cmNlV2l0aEh0dHBJbmZvKGJvZHk/OiBMaW5rRGF0YVNvdXJjZVJlcXVlc3QsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+IHtcclxuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5iYXNlUGF0aCArICcvYXBpL3YyMDIxMDgvTWUvZGF0YVNvdXJjZS9saW5rJztcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgcHJvZHVjZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGNvbnN1bWVzWzBdKTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBib2R5OiBib2R5ID09IG51bGwgPyAnJyA6IChjb25zdW1lc1swXSA9PSAnYXBwbGljYXRpb24vanNvbicgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IGJvZHkpLCAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMDYxMlxyXG4gICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcclxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOnRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScgYXMgJ3Jlc3BvbnNlJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0PGFueT4oUmVxdWVzdE1ldGhvZC5Qb3N0LCBwYXRoLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gdXBkYXRlIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyJiMzOTtzIGluZm9ybWF0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5IFRoZSB1c2VyIGluZm9ybWF0aW9uIHRvIHVwZGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlTXlJbmZvcm1hdGlvbldpdGhIdHRwSW5mbyhib2R5PzogVXBkYXRlTWVSZXF1ZXN0LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxVc2VyUmVzcG9uc2U+PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuYmFzZVBhdGggKyAnL2FwaS92MjAyMTA4L01lJztcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgcHJvZHVjZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIF07XHJcbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBjb25zdW1lc1swXSk7XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgYm9keTogYm9keSA9PSBudWxsID8gJycgOiAoY29uc3VtZXNbMF0gPT0gJ2FwcGxpY2F0aW9uL2pzb24nID8gSlNPTi5zdHJpbmdpZnkoYm9keSkgOiBib2R5KSwgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTA2MTJcclxuICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXHJcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczp0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnIGFzICdyZXNwb25zZSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxVc2VyUmVzcG9uc2U+KFJlcXVlc3RNZXRob2QuUHV0LCBwYXRoLCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gdXBkYXRlIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyJiMzOTtzIG5vdGlmaWNhdGlvbiBzZXR0aW5nc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYm9keSBUaGUgdXNlciBub3RpZmljYXRpb24gc2V0dGluZ3MgdG8gdXBkYXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cGRhdGVNeU5vdGlmaWNhdGlvblNldHRpbmdXaXRoSHR0cEluZm8oYm9keT86IE5vdGlmaWNhdGlvblNldHRpbmdSZXF1ZXN0LCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxVc2VyUmVzcG9uc2U+PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuYmFzZVBhdGggKyAnL2FwaS92MjAyMTA4L01lL25vdGlmaWNhdGlvbnNldHRpbmcnO1xyXG5cclxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzOiBIdHRwUGFyYW1zO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2ggPT09ICdzdHJpbmcnKSB7IFxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21TdHJpbmc6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZnJvbU9iamVjdDogZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2h9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdGhpcy5kZWZhdWx0SGVhZGVycy5nZXRBbGwoa2V5KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykge1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBwcm9kdWNlczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGNvbnN1bWVzWzBdKTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBib2R5OiBib2R5ID09IG51bGwgPyAnJyA6IChjb25zdW1lc1swXSA9PSAnYXBwbGljYXRpb24vanNvbicgPyBKU09OLnN0cmluZ2lmeShib2R5KSA6IGJvZHkpLCAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMDYxMlxyXG4gICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcclxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOnRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScgYXMgJ3Jlc3BvbnNlJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0PFVzZXJSZXNwb25zZT4oUmVxdWVzdE1ldGhvZC5QdXQsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|