@esolve/ng-esolve-connect 0.10.4 → 0.10.5

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.
@@ -1,6 +1,5 @@
1
- import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
2
- import { isPlatformBrowser } from '@angular/common';
3
- import { HttpParams, HttpHeaders } from '@angular/common/http';
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { HttpParams, HttpHeaders, } from '@angular/common/http';
4
3
  import { throwError } from 'rxjs';
5
4
  import { tap, catchError, map } from 'rxjs/operators';
6
5
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
@@ -8,11 +7,10 @@ import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/common/http";
9
8
  import * as i2 from "../session/esolve-session.service";
10
9
  import * as i3 from "../shared/error-handler/esolve-error-handler.service";
11
- import * as i4 from "ngx-cookie-service";
10
+ import * as i4 from "../shared/cookie/esolve-cookie.service";
12
11
  export class EsolveAuthService {
13
- constructor(config, platformId, http, session, errorHandler, cookieService) {
12
+ constructor(config, http, session, errorHandler, cookieService) {
14
13
  this.config = config;
15
- this.platformId = platformId;
16
14
  this.http = http;
17
15
  this.session = session;
18
16
  this.errorHandler = errorHandler;
@@ -30,28 +28,28 @@ export class EsolveAuthService {
30
28
  params = params.set('password', password);
31
29
  }
32
30
  params = params.set('ws_id', this.config.wsid);
33
- return this.http.get(`${this.config.api_url}/service/get-access-token.php`, {
31
+ return this.http
32
+ .get(`${this.config.api_url}/service/get-access-token.php`, {
34
33
  params,
35
34
  headers: new HttpHeaders({
36
- 'Accept-Language': '*'
37
- })
38
- }).pipe(tap(responseData => {
35
+ 'Accept-Language': '*',
36
+ }),
37
+ })
38
+ .pipe(tap((responseData) => {
39
39
  if ((responseData.type === 'error') ||
40
40
  (responseData.type === 'exception')) {
41
41
  throw responseData;
42
42
  }
43
- }), catchError(this.handleError), tap(responseData => {
43
+ }), catchError(this.handleError), tap((responseData) => {
44
44
  this.handleAuthentication(responseData);
45
45
  }));
46
46
  }
47
47
  autoLogin() {
48
- if (isPlatformBrowser(this.platformId)) {
49
- this.session.restore(this.handleExpiration(), () => {
50
- this.getAccessToken('', '', true).toPromise().then(_ => { }, error => {
51
- console.log(error);
52
- });
48
+ this.session.restore(this.handleExpiration(), () => {
49
+ this.getAccessToken('', '', true).toPromise().then(() => { }, (error) => {
50
+ console.error(error);
53
51
  });
54
- }
52
+ });
55
53
  }
56
54
  login(email, password) {
57
55
  const body = {
@@ -60,7 +58,8 @@ export class EsolveAuthService {
60
58
  password
61
59
  }
62
60
  };
63
- return this.http.post(`${this.config.api_url}/service/set-login.php`, body, {
61
+ return this.http
62
+ .post(`${this.config.api_url}/service/set-login.php`, body, {
64
63
  headers: {
65
64
  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
66
65
  },
@@ -69,7 +68,8 @@ export class EsolveAuthService {
69
68
  },
70
69
  responseType: 'json',
71
70
  observe: 'body'
72
- }).pipe(map(response => {
71
+ })
72
+ .pipe(map((response) => {
73
73
  if ((response.responses === undefined) ||
74
74
  (response.responses.length <= 0)) {
75
75
  throw response;
@@ -80,7 +80,8 @@ export class EsolveAuthService {
80
80
  throw login_response;
81
81
  }
82
82
  for (const response_log of login_response.log) {
83
- if ((response_log.type === 'success') && (response_log.message_code === 'login_success')) {
83
+ if ((response_log.type === 'success') &&
84
+ (response_log.message_code === 'login_success')) {
84
85
  this.session.handleUpdateSession(login_response.esolve_id);
85
86
  return login_response.esolve_id;
86
87
  }
@@ -104,12 +105,14 @@ export class EsolveAuthService {
104
105
  ws_id: this.config.wsid
105
106
  }
106
107
  });
107
- return this.http.get(`${this.config.api_url}/service/get-access-token.php`, {
108
+ return this.http
109
+ .get(`${this.config.api_url}/service/get-access-token.php`, {
108
110
  params,
109
111
  headers: new HttpHeaders({
110
112
  'Accept-Language': '*'
111
- })
112
- }).pipe(map(responseData => {
113
+ }),
114
+ })
115
+ .pipe(map(responseData => {
113
116
  if ((responseData.type === 'error') ||
114
117
  (responseData.type === 'exception') ||
115
118
  (!responseData.additional_data.key_okay)) {
@@ -117,7 +120,8 @@ export class EsolveAuthService {
117
120
  }
118
121
  responseData.additional_data.key = token;
119
122
  return responseData;
120
- })).toPromise();
123
+ }))
124
+ .toPromise();
121
125
  }
122
126
  // Handlers
123
127
  handleExpiration() {
@@ -130,14 +134,15 @@ export class EsolveAuthService {
130
134
  };
131
135
  }
132
136
  handleAuthentication(responseData) {
133
- if (responseData.additional_data.key) {
134
- this.session.handleSession(responseData.additional_data.user_id, responseData.additional_data.key, +responseData.additional_data.expiry_time, +responseData.additional_data.expires, this.handleExpiration());
137
+ if (!responseData.additional_data.key) {
138
+ return;
135
139
  }
140
+ this.session.handleSession(responseData.additional_data.user_id, responseData.additional_data.key, +responseData.additional_data.expiry_time, +responseData.additional_data.expires, this.handleExpiration());
136
141
  }
137
142
  handleError(errorRes) {
138
143
  const error = {
139
144
  message: 'An unknown error occurred',
140
- data: {}
145
+ data: {},
141
146
  };
142
147
  if ((!errorRes.type) ||
143
148
  (!errorRes.service_type) ||
@@ -153,18 +158,15 @@ export class EsolveAuthService {
153
158
  return throwError(error);
154
159
  }
155
160
  }
156
- EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: PLATFORM_ID }, { token: i1.HttpClient }, { token: i2.EsolveSessionService }, { token: i3.EsolveErrorHandlerService }, { token: i4.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
161
+ EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveSessionService }, { token: i3.EsolveErrorHandlerService }, { token: i4.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
157
162
  EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });
158
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveAuthService, decorators: [{
159
164
  type: Injectable,
160
165
  args: [{
161
- providedIn: 'root'
166
+ providedIn: 'root',
162
167
  }]
163
168
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
164
169
  type: Inject,
165
170
  args: [ESOLVE_CONNECT_CONFIG]
166
- }] }, { type: Object, decorators: [{
167
- type: Inject,
168
- args: [PLATFORM_ID]
169
- }] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.CookieService }]; } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYXV0aC9lc29sdmUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRUgsVUFBVSxFQUVWLFdBQVcsRUFDZCxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdEQsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFzQnRGLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDMkMsTUFBMkIsRUFDckMsVUFBa0IsRUFDdkMsSUFBZ0IsRUFDaEIsT0FBNkIsRUFDN0IsWUFBdUMsRUFDdkMsYUFBNEI7UUFMRyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ3BDLENBQUM7SUFFRSxjQUFjLENBQ2pCLEtBQWEsRUFDYixRQUFnQixFQUNoQixZQUFxQixLQUFLO1FBRTFCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxTQUFTLEVBQUU7WUFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdB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bnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgICBIdHRwQ2xpZW50LFxyXG4gICAgSHR0cFBhcmFtcyxcclxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgSHR0cEhlYWRlcnNcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbic7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU2V0UmVzcG9uc2UsIEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9lcnJvci1oYW5kbGVyL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIEVzb2x2ZUF1dGhSZXNwb25zZURhdGEge1xyXG4gICAgc2VydmljZV90eXBlOiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBhZGRpdGlvbmFsX2RhdGE6IHtcclxuICAgICAgICBleHBpcmVzOiBudW1iZXIsXHJcbiAgICAgICAgZXhwaXJ5X3RpbWU6IG51bWJlcixcclxuICAgICAgICB1c2VyX2lkOiBudW1iZXIsXHJcbiAgICAgICAga2V5Pzogc3RyaW5nLFxyXG4gICAgICAgIGtleV9va2F5PzogYm9vbGVhbixcclxuICAgIH07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQXV0aFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHNlc3Npb246IEVzb2x2ZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QWNjZXNzVG9rZW4oXHJcbiAgICAgICAgZW1haWw6IHN0cmluZyxcclxuICAgICAgICBwYXNzd29yZDogc3RyaW5nLFxyXG4gICAgICAgIGFub255bW91czogYm9vbGVhbiA9IGZhbHNlXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUF1dGhSZXNwb25zZURhdGE+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKGFub255bW91cykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhbm9ueW1vdXMnLCB0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlbWFpbCAhPT0gJycpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZW1haWwnLCBlbWFpbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFzc3dvcmQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Bhc3N3b3JkJywgcGFzc3dvcmQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnd3NfaWQnLCB0aGlzLmNvbmZpZy53c2lkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2UvZ2V0LWFjY2Vzcy10b2tlbi5waHBgLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnKidcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcChyZXNwb25zZURhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2Vycm9yJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnR5cGUgPT09ICdleGNlcHRpb24nKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VEYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSxcclxuICAgICAgICAgICAgdGFwKHJlc3BvbnNlRGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlRGF0YSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXV0b0xvZ2luKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5yZXN0b3JlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBpcmF0aW9uKCksXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBY2Nlc3NUb2tlbignJywgJycsIHRydWUpLnRvUHJvbWlzZSgpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgbG9naW46IHtcclxuICAgICAgICAgICAgICAgIGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQb3N0UmVzcG9uc2VJdGVtPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2Uvc2V0LWxvZ2luLnBocGAsXHJcbiAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICB3c19pZDogdGhpcy5jb25maWcud3NpZFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZXNwb25zZXMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dpbl9yZXNwb25zZSA9IHJlc3BvbnNlLnJlc3BvbnNlc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKGxvZ2luX3Jlc3BvbnNlLnN0YXR1cy5zdGF0ZSAhPT0gJ3N1Y2Nlc3MnKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIChsb2dpbl9yZXNwb25zZS5zdGF0dXMuc3RhdGUgIT09ICd3YXJuaW5nJylcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGxvZ2luX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VfbG9nIG9mIGxvZ2luX3Jlc3BvbnNlLmxvZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgocmVzcG9uc2VfbG9nLnR5cGUgPT09ICdzdWNjZXNzJykgJiYgKHJlc3BvbnNlX2xvZy5tZXNzYWdlX2NvZGUgPT09ICdsb2dpbl9zdWNjZXNzJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmRsZVVwZGF0ZVNlc3Npb24obG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbG9naW5fcmVzcG9uc2U7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtbG9naW4nLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9nb3V0KCk6IFByb21pc2U8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhclRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSgnX3dzX2lkJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKTogUHJvbWlzZTxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPiB7XHJcbiAgICAgICAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb24/LmtleSA/PyAnJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLFxyXG4gICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtYWNjZXNzLXRva2VuLnBocGAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlRGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXJyb3InKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKCFyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleV9va2F5KVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VEYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEua2V5ID0gdG9rZW47XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZXJzXHJcbiAgICBwcml2YXRlIGhhbmRsZUV4cGlyYXRpb24oKTogKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB2b2lkIHtcclxuICAgICAgICByZXR1cm4gKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tBY2Nlc3NUb2tlbihzZXNzaW9uKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBdXRoZW50aWNhdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlRGF0YTogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbihcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEudXNlcl9pZCxcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEua2V5LFxyXG4gICAgICAgICAgICAgICAgK3Jlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEuZXhwaXJ5X3RpbWUsXHJcbiAgICAgICAgICAgICAgICArcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5leHBpcmVzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBpcmF0aW9uKClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvclJlczogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnLFxyXG4gICAgICAgICAgICBkYXRhOiB7fVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKCFlcnJvclJlcy50eXBlKSB8fFxyXG4gICAgICAgICAgICAoIWVycm9yUmVzLnNlcnZpY2VfdHlwZSkgfHxcclxuICAgICAgICAgICAgKCFlcnJvclJlcy5tZXNzYWdlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3JSZXMubWVzc2FnZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvclJlcy5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yUmVzLmFkZGl0aW9uYWxfZGF0YSkge1xyXG4gICAgICAgICAgICBlcnJvci5kYXRhID0gZXJyb3JSZXMuYWRkaXRpb25hbF9kYXRhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
171
+ }] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.EsolveCookieService }]; } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYXV0aC9lc29sdmUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFSCxVQUFVLEVBRVYsV0FBVyxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQXVCdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixPQUE2QixFQUM3QixZQUF1QyxFQUN2QyxhQUFrQztRQUpILFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUMxQyxDQUFDO0lBRUUsY0FBYyxDQUNqQixLQUFhLEVBQ2IsUUFBZ0IsRUFDaEIsWUFBcUIsS0FBSztRQUUxQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksU0FBUyxFQUFFO1lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUM3QztRQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sK0JBQStCLEVBQ3JEO1lBQ0ksTUFBTTtZQUNOLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsaUJBQWlCLEVBQUUsR0FBRzthQUN6QixDQUFDO1NBQ0wsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNqQixJQUNJLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7Z0JBQy9CLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsRUFDckM7Z0JBQ0UsTUFBTSxZQUFZLENBQUM7YUFDdEI7UUFDTCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUM1QixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUN2QixHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUM5QyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ1QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDTixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUN4QyxNQUFNLElBQUksR0FBRztZQUNULEtBQUssRUFBRTtnQkFDSCxLQUFLO2dCQUNMLFFBQVE7YUFDWDtTQUNKLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUNELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHdCQUF3QixFQUM5QyxJQUFJLEVBQ0o7WUFDSSxPQUFPLEVBQUU7Z0JBQ0wsY0FBYyxFQUFFLGtEQUFrRDthQUNyRTtZQUNELE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2FBQzFCO1lBQ0QsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLE1BQU07U0FDbEIsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztnQkFDbEMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDbEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdDLElBQ0ksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7Z0JBQzNDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQzdDO2dCQUNFLE1BQU0sY0FBYyxDQUFDO2FBQ3hCO1lBRUQsS0FBSyxNQUFNLFlBQVksSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUMzQyxJQUNJLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7b0JBQ2pDLENBQUMsWUFBWSxDQUFDLFlBQVksS0FBSyxlQUFlLENBQUMsRUFDakQ7b0JBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsU0FBbUIsQ0FBQyxDQUFDO29CQUVyRSxPQUFPLGNBQWMsQ0FBQyxTQUFtQixDQUFDO2lCQUM3QzthQUNKO1lBRUQsTUFBTSxjQUFjLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsUUFBaUMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBdUI7UUFDNUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUVqRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMxQixVQUFVLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTthQUMxQjtTQUNKLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sK0JBQStCLEVBQ3JEO1lBQ0ksTUFBTTtZQUNOLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDckIsaUJBQWlCLEVBQUUsR0FBRzthQUN6QixDQUFDO1NBQ0wsQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDZixJQUNJLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7Z0JBQy9CLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUMxQztnQkFDRSxNQUFNLFlBQVksQ0FBQzthQUN0QjtZQUVELFlBQVksQ0FBQyxlQUFlLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUV6QyxPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ0gsZ0JBQWdCO1FBQ3BCLE9BQU8sQ0FBQyxPQUF1QixFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0IsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxFQUNELEdBQUcsRUFBRTtnQkFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsQ0FBQyxDQUNKLENBQUM7UUFDTixDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQUMsWUFBb0M7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25DLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUN0QixZQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFDcEMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ2hDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQ3pDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFnQztRQUNoRCxNQUFNLEtBQUssR0FBRztZQUNWLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRUYsSUFDSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUNyQjtZQUNFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7U0FDcEM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUU7WUFDMUIsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7OEdBcE9RLGlCQUFpQixrQkFFZCxxQkFBcUI7a0hBRnhCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEh0dHBDbGllbnQsXHJcbiAgICBIdHRwUGFyYW1zLFxyXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXHJcbiAgICBIdHRwSGVhZGVycyxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbiB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24nO1xyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNldFJlc3BvbnNlLCBFc29sdmVQb3N0UmVzcG9uc2VJdGVtIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3ItaGFuZGxlci9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ29va2llU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb29raWUvZXNvbHZlLWNvb2tpZS5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBFc29sdmVBdXRoUmVzcG9uc2VEYXRhIHtcclxuICAgIHNlcnZpY2VfdHlwZTogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgYWRkaXRpb25hbF9kYXRhOiB7XHJcbiAgICAgICAgZXhwaXJlczogbnVtYmVyLFxyXG4gICAgICAgIGV4cGlyeV90aW1lOiBudW1iZXIsXHJcbiAgICAgICAgdXNlcl9pZDogbnVtYmVyLFxyXG4gICAgICAgIGtleT86IHN0cmluZyxcclxuICAgICAgICBrZXlfb2theT86IGJvb2xlYW4sXHJcbiAgICB9O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBdXRoU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbjogRXNvbHZlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBFc29sdmVDb29raWVTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBY2Nlc3NUb2tlbihcclxuICAgICAgICBlbWFpbDogc3RyaW5nLFxyXG4gICAgICAgIHBhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICAgICAgYW5vbnltb3VzOiBib29sZWFuID0gZmFsc2VcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAoYW5vbnltb3VzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Fub255bW91cycsIHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVtYWlsICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdlbWFpbCcsIGVtYWlsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChwYXNzd29yZCAhPT0gJycpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFzc3dvcmQnLCBwYXNzd29yZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL2dldC1hY2Nlc3MtdG9rZW4ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJyxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgocmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnR5cGUgPT09ICdlcnJvcicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0aGVudGljYXRpb24ocmVzcG9uc2VEYXRhKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGF1dG9Mb2dpbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlc3Npb24ucmVzdG9yZShcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBpcmF0aW9uKCksXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWNjZXNzVG9rZW4oJycsICcnLCB0cnVlKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHsgfSxcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGxvZ2luKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIGxvZ2luOiB7XHJcbiAgICAgICAgICAgICAgICBlbWFpbCxcclxuICAgICAgICAgICAgICAgIHBhc3N3b3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2Uvc2V0LWxvZ2luLnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5J1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVzcG9uc2VzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2luX3Jlc3BvbnNlID0gcmVzcG9uc2UucmVzcG9uc2VzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2dpbl9yZXNwb25zZS5zdGF0dXMuc3RhdGUgIT09ICdzdWNjZXNzJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2luX3Jlc3BvbnNlLnN0YXR1cy5zdGF0ZSAhPT0gJ3dhcm5pbmcnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBsb2dpbl9yZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVzcG9uc2VfbG9nIG9mIGxvZ2luX3Jlc3BvbnNlLmxvZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VfbG9nLnR5cGUgPT09ICdzdWNjZXNzJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZV9sb2cubWVzc2FnZV9jb2RlID09PSAnbG9naW5fc3VjY2VzcycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmRsZVVwZGF0ZVNlc3Npb24obG9naW5fcmVzcG9uc2UuZXNvbHZlX2lkIGFzIG51bWJlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvZ2luX3Jlc3BvbnNlLmVzb2x2ZV9pZCBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGxvZ2luX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LWxvZ2luJywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9nb3V0KCk6IFByb21pc2U8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4ge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhclRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZSgnX3dzX2lkJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKTogUHJvbWlzZTxFc29sdmVBdXRoUmVzcG9uc2VEYXRhPiB7XHJcbiAgICAgICAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb24/LmtleSA/PyAnJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBrZXk6IHRva2VuLFxyXG4gICAgICAgICAgICAgICAgd3NfaWQ6IHRoaXMuY29uZmlnLndzaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlQXV0aFJlc3BvbnNlRGF0YT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL2dldC1hY2Nlc3MtdG9rZW4ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICcqJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlRGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnR5cGUgPT09ICdlcnJvcicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICghcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5rZXlfb2theSlcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2VEYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5rZXkgPSB0b2tlbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZXJzXHJcbiAgICBwcml2YXRlIGhhbmRsZUV4cGlyYXRpb24oKTogKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB2b2lkIHtcclxuICAgICAgICByZXR1cm4gKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tBY2Nlc3NUb2tlbihzZXNzaW9uKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBdXRoZW50aWNhdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3BvbnNlRGF0YTogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5rZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmRsZVNlc3Npb24oXHJcbiAgICAgICAgICAgIHJlc3BvbnNlRGF0YS5hZGRpdGlvbmFsX2RhdGEudXNlcl9pZCxcclxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5rZXksXHJcbiAgICAgICAgICAgICtyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmV4cGlyeV90aW1lLFxyXG4gICAgICAgICAgICArcmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YS5leHBpcmVzLFxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUV4cGlyYXRpb24oKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvclJlczogRXNvbHZlQXV0aFJlc3BvbnNlRGF0YSk6IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnLFxyXG4gICAgICAgICAgICBkYXRhOiB7fSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICghZXJyb3JSZXMudHlwZSkgfHxcclxuICAgICAgICAgICAgKCFlcnJvclJlcy5zZXJ2aWNlX3R5cGUpIHx8XHJcbiAgICAgICAgICAgICghZXJyb3JSZXMubWVzc2FnZSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVycm9yUmVzLm1lc3NhZ2UudHJpbSgpICE9PSAnJykge1xyXG4gICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gZXJyb3JSZXMubWVzc2FnZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlcnJvclJlcy5hZGRpdGlvbmFsX2RhdGEpIHtcclxuICAgICAgICAgICAgZXJyb3IuZGF0YSA9IGVycm9yUmVzLmFkZGl0aW9uYWxfZGF0YTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,15 +1,21 @@
1
- import { Inject, Injectable } from '@angular/core';
1
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
2
3
  import { BehaviorSubject } from 'rxjs';
3
4
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
4
5
  import { EsolveSession } from './esolve-session';
5
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "../shared/cookie/esolve-cookie.service";
8
+ // TODO: Rewrite session manager to use a pure rxjs solution.
6
9
  export class EsolveSessionService {
7
- constructor(config) {
10
+ constructor(platformId, config, cookieService) {
11
+ this.platformId = platformId;
8
12
  this.config = config;
13
+ this.cookieService = cookieService;
9
14
  this.storage_key = 'ngEslvUserSession';
10
15
  this.setStorageKey();
11
16
  this._session = new BehaviorSubject(new EsolveSession(0, ''));
12
17
  this.session = this._session.asObservable();
18
+ this.is_browser = isPlatformBrowser(this.platformId);
13
19
  }
14
20
  get currentSession() {
15
21
  return this._session.value;
@@ -21,7 +27,9 @@ export class EsolveSessionService {
21
27
  }
22
28
  }
23
29
  startTimer(callback, duration) {
24
- this.key_expiration_timer = setTimeout(callback, duration);
30
+ if (this.is_browser) {
31
+ this.key_expiration_timer = setTimeout(callback, duration);
32
+ }
25
33
  }
26
34
  clearTimer() {
27
35
  if (this.key_expiration_timer) {
@@ -29,51 +37,55 @@ export class EsolveSessionService {
29
37
  }
30
38
  }
31
39
  restore(expirationCallback, invalidSessionCallback) {
32
- if (!this.currentSession.valid) {
33
- const stored_session_json = localStorage.getItem(this.storage_key);
34
- const stored_session = (stored_session_json ? JSON.parse(stored_session_json) : null);
35
- if (!stored_session) {
36
- invalidSessionCallback();
37
- return;
38
- }
39
- const expiration_date = new Date(stored_session._key_expiration_date);
40
- const loaded_session = new EsolveSession(stored_session.id, stored_session._key, expiration_date);
41
- if (!loaded_session.expired) {
42
- this._session.next(loaded_session);
43
- const expiration_duration = expiration_date.getTime() - new Date().getTime();
44
- this.startTimer(expirationCallback, expiration_duration);
45
- }
46
- else {
47
- expirationCallback(loaded_session);
48
- }
40
+ if (this.currentSession.valid) {
41
+ return;
42
+ }
43
+ const stored_session_json = this.cookieService.get(this.storage_key);
44
+ const stored_session = (stored_session_json ? JSON.parse(stored_session_json) : null);
45
+ if (!stored_session) {
46
+ invalidSessionCallback();
47
+ return;
48
+ }
49
+ const expiration_date = new Date(stored_session._key_expiration_date);
50
+ const loaded_session = new EsolveSession(stored_session.id, stored_session._key, expiration_date);
51
+ if (!loaded_session.expired) {
52
+ this._session.next(loaded_session);
53
+ const expiration_duration = expiration_date.getTime() - new Date().getTime();
54
+ this.startTimer(expirationCallback, expiration_duration);
55
+ }
56
+ else {
57
+ expirationCallback(loaded_session);
49
58
  }
50
59
  }
51
60
  handleSession(user_id, key, expiry_time, expires, expirationCallback) {
52
61
  const expiration_date = new Date(expiry_time * 1000);
53
62
  const session = new EsolveSession(user_id, key, expiration_date);
54
- localStorage.setItem(this.storage_key, JSON.stringify(session));
63
+ this.cookieService.set(this.storage_key, JSON.stringify(session), expiration_date);
55
64
  this._session.next(session);
56
65
  this.startTimer(expirationCallback, expires * 1000);
57
66
  }
58
67
  handleUpdateSession(user_id, callback) {
59
68
  const current_session = this.currentSession;
60
69
  current_session.updateUser(user_id);
61
- localStorage.setItem(this.storage_key, JSON.stringify(current_session));
70
+ this.cookieService.set(this.storage_key, JSON.stringify(current_session));
62
71
  this._session.next(current_session);
63
72
  if (typeof callback === 'function') {
64
73
  callback();
65
74
  }
66
75
  }
67
76
  }
68
- EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveSessionService, deps: [{ token: ESOLVE_CONNECT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
77
+ EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveSessionService, deps: [{ token: PLATFORM_ID }, { token: ESOLVE_CONNECT_CONFIG }, { token: i1.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
69
78
  EsolveSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveSessionService, providedIn: 'root' });
70
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveSessionService, decorators: [{
71
80
  type: Injectable,
72
81
  args: [{
73
- providedIn: 'root'
82
+ providedIn: 'root',
74
83
  }]
75
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
84
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
85
+ type: Inject,
86
+ args: [PLATFORM_ID]
87
+ }] }, { type: undefined, decorators: [{
76
88
  type: Inject,
77
89
  args: [ESOLVE_CONNECT_CONFIG]
78
- }] }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFLakQsTUFBTSxPQUFPLG9CQUFvQjtJQVc3QixZQUMyQyxNQUEyQjtRQUEzQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVY5RCxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBWXRDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLGFBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQVZELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFVTyxhQUFhO1FBQ2pCLElBQ0ksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEtBQUssUUFBUSxDQUFDO1lBQzFELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsS0FBSyxFQUFFLENBQUMsRUFDL0M7WUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRU8sVUFBVSxDQUFDLFFBQW9CLEVBQUUsUUFBZ0I7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBRU0sT0FBTyxDQUNWLGtCQUFxRCxFQUNyRCxzQkFBa0M7UUFFbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO1lBQzVCLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkUsTUFBTSxjQUFjLEdBQXdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0csSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDakIsc0JBQXNCLEVBQUUsQ0FBQztnQkFDekIsT0FBTzthQUNWO1lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFFdEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxhQUFhLENBQ3BDLGNBQWMsQ0FBQyxFQUFFLEVBQ2pCLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLGVBQWUsQ0FDbEIsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQzVEO2lCQUFNO2dCQUNILGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3RDO1NBQ0o7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUNoQixPQUFlLEVBQ2YsR0FBVyxFQUNYLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixrQkFBOEI7UUFFOUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFakUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsT0FBZSxFQUFFLFFBQXFCO1FBQzdELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDNUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBDLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2hDLFFBQVEsRUFBRSxDQUFDO1NBQ2Q7SUFDTCxDQUFDOztpSEE5RlEsb0JBQW9CLGtCQVlqQixxQkFBcUI7cUhBWnhCLG9CQUFvQixjQUZqQixNQUFNOzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWFRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b3JlZFNlc3Npb24gfSBmcm9tICcuL2Vzb2x2ZS1zdG9yZWQtc2Vzc2lvbic7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb24gfSBmcm9tICcuL2Vzb2x2ZS1zZXNzaW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU2Vzc2lvblNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBrZXlfZXhwaXJhdGlvbl90aW1lcjogYW55O1xyXG4gICAgcHJpdmF0ZSBzdG9yYWdlX2tleSA9ICduZ0VzbHZVc2VyU2Vzc2lvbic7XHJcblxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogQmVoYXZpb3JTdWJqZWN0PEVzb2x2ZVNlc3Npb24+O1xyXG4gICAgcHVibGljIHNlc3Npb246IE9ic2VydmFibGU8RXNvbHZlU2Vzc2lvbj47XHJcblxyXG4gICAgcHVibGljIGdldCBjdXJyZW50U2Vzc2lvbigpOiBFc29sdmVTZXNzaW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbi52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWdcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RvcmFnZUtleSgpO1xyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVzb2x2ZVNlc3Npb24+KG5ldyBFc29sdmVTZXNzaW9uKDAsICcnKSk7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uID0gdGhpcy5fc2Vzc2lvbi5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0b3JhZ2VLZXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAodHlwZW9mIHRoaXMuY29uZmlnLnVzZXJfc2Vzc2lvbl9zdG9yYWdlX2tleSA9PT0gJ3N0cmluZycpICYmXHJcbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy51c2VyX3Nlc3Npb25fc3RvcmFnZV9rZXkgIT09ICcnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5ID0gdGhpcy5jb25maWcudXNlcl9zZXNzaW9uX3N0b3JhZ2Vfa2V5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0VGltZXIoY2FsbGJhY2s6ICgpID0+IHZvaWQsIGR1cmF0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyID0gc2V0VGltZW91dChjYWxsYmFjaywgZHVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhclRpbWVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc3RvcmUoXHJcbiAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrOiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHZvaWQsXHJcbiAgICAgICAgaW52YWxpZFNlc3Npb25DYWxsYmFjazogKCkgPT4gdm9pZFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZXNzaW9uLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZF9zZXNzaW9uX2pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RvcmVkX3Nlc3Npb246IEVzb2x2ZVN0b3JlZFNlc3Npb24gPSAoc3RvcmVkX3Nlc3Npb25fanNvbiA/IEpTT04ucGFyc2Uoc3RvcmVkX3Nlc3Npb25fanNvbikgOiBudWxsKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghc3RvcmVkX3Nlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgIGludmFsaWRTZXNzaW9uQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kYXRlID0gbmV3IERhdGUoc3RvcmVkX3Nlc3Npb24uX2tleV9leHBpcmF0aW9uX2RhdGUpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbG9hZGVkX3Nlc3Npb24gPSBuZXcgRXNvbHZlU2Vzc2lvbihcclxuICAgICAgICAgICAgICAgIHN0b3JlZF9zZXNzaW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgc3RvcmVkX3Nlc3Npb24uX2tleSxcclxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFsb2FkZWRfc2Vzc2lvbi5leHBpcmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQobG9hZGVkX3Nlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kdXJhdGlvbiA9IGV4cGlyYXRpb25fZGF0ZS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lcihleHBpcmF0aW9uQ2FsbGJhY2ssIGV4cGlyYXRpb25fZHVyYXRpb24pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrKGxvYWRlZF9zZXNzaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlU2Vzc2lvbihcclxuICAgICAgICB1c2VyX2lkOiBudW1iZXIsXHJcbiAgICAgICAga2V5OiBzdHJpbmcsXHJcbiAgICAgICAgZXhwaXJ5X3RpbWU6IG51bWJlcixcclxuICAgICAgICBleHBpcmVzOiBudW1iZXIsXHJcbiAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrOiAoKSA9PiB2b2lkXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBleHBpcmF0aW9uX2RhdGUgPSBuZXcgRGF0ZShleHBpcnlfdGltZSAqIDEwMDApO1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgRXNvbHZlU2Vzc2lvbih1c2VyX2lkLCBrZXksIGV4cGlyYXRpb25fZGF0ZSk7XHJcblxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXksIEpTT04uc3RyaW5naWZ5KHNlc3Npb24pKTtcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQoc2Vzc2lvbik7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKGV4cGlyYXRpb25DYWxsYmFjaywgZXhwaXJlcyAqIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVVcGRhdGVTZXNzaW9uKHVzZXJfaWQ6IG51bWJlciwgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudF9zZXNzaW9uID0gdGhpcy5jdXJyZW50U2Vzc2lvbjtcclxuICAgICAgICBjdXJyZW50X3Nlc3Npb24udXBkYXRlVXNlcih1c2VyX2lkKTtcclxuXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdG9yYWdlX2tleSwgSlNPTi5zdHJpbmdpZnkoY3VycmVudF9zZXNzaW9uKSk7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5uZXh0KGN1cnJlbnRfc2Vzc2lvbik7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
90
+ }] }, { type: i1.EsolveCookieService }]; } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUVqRCw2REFBNkQ7QUFLN0QsTUFBTSxPQUFPLG9CQUFvQjtJQVk3QixZQUNpQyxVQUFrQixFQUNSLE1BQTJCLEVBQzFELGFBQWtDO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNSLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQWJ0QyxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBZXRDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLGFBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQWJELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFR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QUM7UUFFcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDaEMsUUFBUSxFQUFFLENBQUM7U0FDZDtJQUNMLENBQUM7O2lIQXZHUSxvQkFBb0Isa0JBYWpCLFdBQVcsYUFDWCxxQkFBcUI7cUhBZHhCLG9CQUFvQixjQUZqQixNQUFNOzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7MERBY2dELE1BQU07MEJBQTlDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29va2llL2Vzb2x2ZS1jb29raWUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b3JlZFNlc3Npb24gfSBmcm9tICcuL2Vzb2x2ZS1zdG9yZWQtc2Vzc2lvbic7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb24gfSBmcm9tICcuL2Vzb2x2ZS1zZXNzaW9uJztcclxuXHJcbi8vIFRPRE86IFJld3JpdGUgc2Vzc2lvbiBtYW5hZ2VyIHRvIHVzZSBhIHB1cmUgcnhqcyBzb2x1dGlvbi5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlc3Npb25TZXJ2aWNlIHtcclxuICAgIHByaXZhdGUga2V5X2V4cGlyYXRpb25fdGltZXI6IGFueTtcclxuICAgIHByaXZhdGUgc3RvcmFnZV9rZXkgPSAnbmdFc2x2VXNlclNlc3Npb24nO1xyXG4gICAgcHJpdmF0ZSBpc19icm93c2VyOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgX3Nlc3Npb246IEJlaGF2aW9yU3ViamVjdDxFc29sdmVTZXNzaW9uPjtcclxuICAgIHB1YmxpYyBzZXNzaW9uOiBPYnNlcnZhYmxlPEVzb2x2ZVNlc3Npb24+O1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY3VycmVudFNlc3Npb24oKTogRXNvbHZlU2Vzc2lvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nlc3Npb24udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogRXNvbHZlQ29va2llU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdG9yYWdlS2V5KCk7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXNvbHZlU2Vzc2lvbj4obmV3IEVzb2x2ZVNlc3Npb24oMCwgJycpKTtcclxuICAgICAgICB0aGlzLnNlc3Npb24gPSB0aGlzLl9zZXNzaW9uLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIHRoaXMuaXNfYnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRTdG9yYWdlS2V5KCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKHR5cGVvZiB0aGlzLmNvbmZpZy51c2VyX3Nlc3Npb25fc3RvcmFnZV9rZXkgPT09ICdzdHJpbmcnKSAmJlxyXG4gICAgICAgICAgICAodGhpcy5jb25maWcudXNlcl9zZXNzaW9uX3N0b3JhZ2Vfa2V5ICE9PSAnJylcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlX2tleSA9IHRoaXMuY29uZmlnLnVzZXJfc2Vzc2lvbl9zdG9yYWdlX2tleTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydFRpbWVyKGNhbGxiYWNrOiAoKSA9PiB2b2lkLCBkdXJhdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNfYnJvd3Nlcikge1xyXG4gICAgICAgICAgICB0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyID0gc2V0VGltZW91dChjYWxsYmFjaywgZHVyYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJUaW1lcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5rZXlfZXhwaXJhdGlvbl90aW1lcikge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5rZXlfZXhwaXJhdGlvbl90aW1lcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXN0b3JlKFxyXG4gICAgICAgIGV4cGlyYXRpb25DYWxsYmFjazogKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKSA9PiB2b2lkLFxyXG4gICAgICAgIGludmFsaWRTZXNzaW9uQ2FsbGJhY2s6ICgpID0+IHZvaWRcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXNzaW9uLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHN0b3JlZF9zZXNzaW9uX2pzb24gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xyXG4gICAgICAgIGNvbnN0IHN0b3JlZF9zZXNzaW9uOiBFc29sdmVTdG9yZWRTZXNzaW9uID0gKHN0b3JlZF9zZXNzaW9uX2pzb24gPyBKU09OLnBhcnNlKHN0b3JlZF9zZXNzaW9uX2pzb24pIDogbnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghc3RvcmVkX3Nlc3Npb24pIHtcclxuICAgICAgICAgICAgaW52YWxpZFNlc3Npb25DYWxsYmFjaygpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kYXRlID0gbmV3IERhdGUoc3RvcmVkX3Nlc3Npb24uX2tleV9leHBpcmF0aW9uX2RhdGUpO1xyXG5cclxuICAgICAgICBjb25zdCBsb2FkZWRfc2Vzc2lvbiA9IG5ldyBFc29sdmVTZXNzaW9uKFxyXG4gICAgICAgICAgICBzdG9yZWRfc2Vzc2lvbi5pZCxcclxuICAgICAgICAgICAgc3RvcmVkX3Nlc3Npb24uX2tleSxcclxuICAgICAgICAgICAgZXhwaXJhdGlvbl9kYXRlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKCFsb2FkZWRfc2Vzc2lvbi5leHBpcmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Nlc3Npb24ubmV4dChsb2FkZWRfc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyYXRpb25fZHVyYXRpb24gPSBleHBpcmF0aW9uX2RhdGUuZ2V0VGltZSgpIC0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lcihleHBpcmF0aW9uQ2FsbGJhY2ssIGV4cGlyYXRpb25fZHVyYXRpb24pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGV4cGlyYXRpb25DYWxsYmFjayhsb2FkZWRfc2Vzc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTZXNzaW9uKFxyXG4gICAgICAgIHVzZXJfaWQ6IG51bWJlcixcclxuICAgICAgICBrZXk6IHN0cmluZyxcclxuICAgICAgICBleHBpcnlfdGltZTogbnVtYmVyLFxyXG4gICAgICAgIGV4cGlyZXM6IG51bWJlcixcclxuICAgICAgICBleHBpcmF0aW9uQ2FsbGJhY2s6ICgpID0+IHZvaWRcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGV4cGlyYXRpb25fZGF0ZSA9IG5ldyBEYXRlKGV4cGlyeV90aW1lICogMTAwMCk7XHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBFc29sdmVTZXNzaW9uKHVzZXJfaWQsIGtleSwgZXhwaXJhdGlvbl9kYXRlKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCh0aGlzLnN0b3JhZ2Vfa2V5LCBKU09OLnN0cmluZ2lmeShzZXNzaW9uKSwgZXhwaXJhdGlvbl9kYXRlKTtcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQoc2Vzc2lvbik7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKGV4cGlyYXRpb25DYWxsYmFjaywgZXhwaXJlcyAqIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVVcGRhdGVTZXNzaW9uKHVzZXJfaWQ6IG51bWJlciwgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudF9zZXNzaW9uID0gdGhpcy5jdXJyZW50U2Vzc2lvbjtcclxuICAgICAgICBjdXJyZW50X3Nlc3Npb24udXBkYXRlVXNlcih1c2VyX2lkKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCh0aGlzLnN0b3JhZ2Vfa2V5LCBKU09OLnN0cmluZ2lmeShjdXJyZW50X3Nlc3Npb24pKTtcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQoY3VycmVudF9zZXNzaW9uKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-cookie-service";
5
+ export class EsolveCookieService {
6
+ constructor(ngxCookies, platformId, request, response) {
7
+ this.ngxCookies = ngxCookies;
8
+ this.platformId = platformId;
9
+ this.request = request;
10
+ this.response = response;
11
+ this.is_browser = isPlatformBrowser(this.platformId);
12
+ }
13
+ check(name) {
14
+ if (this.is_browser) {
15
+ return this.ngxCookies.check(name);
16
+ }
17
+ const server_cookies = this.request.headers.cookie;
18
+ if (!server_cookies) {
19
+ return false;
20
+ }
21
+ name = encodeURIComponent(name);
22
+ const regExp = this.getCookieRegExp(name);
23
+ return regExp.test(server_cookies);
24
+ }
25
+ get(name) {
26
+ if (this.is_browser) {
27
+ return this.ngxCookies.get(name);
28
+ }
29
+ if (!this.check(name)) {
30
+ return '';
31
+ }
32
+ const server_cookies = this.request.headers.cookie ?? '';
33
+ const regExp = this.getCookieRegExp(name);
34
+ const result = regExp.exec(server_cookies);
35
+ return result && result[1] ? this.safeDecodeURIComponent(result[1]) : '';
36
+ }
37
+ set(name, value, expires, path, domain, secure) {
38
+ if (this.is_browser) {
39
+ this.ngxCookies.set(name, value, expires, path, domain, secure);
40
+ return;
41
+ }
42
+ this.response.cookie(name, value, { domain, path, expires, secure });
43
+ }
44
+ delete(name, path, domain, secure) {
45
+ if (this.is_browser) {
46
+ this.ngxCookies.delete(name, path, domain, secure);
47
+ return;
48
+ }
49
+ this.response.clearCookie(name, { path, domain, secure });
50
+ }
51
+ /*
52
+ * Following functions come from ngx-cookie-service project since they are primarily the same
53
+ */
54
+ /**
55
+ * Get cookie Regular Expression
56
+ *
57
+ * @param name Cookie name
58
+ * @returns property RegExp
59
+ *
60
+ * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L31
61
+ */
62
+ getCookieRegExp(name) {
63
+ const escapedName = name.replace(/([\[\]\{\}\(\)\|\=\;\+\?\,\.\*\^\$])/gi, '\\$1');
64
+ return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');
65
+ }
66
+ /**
67
+ * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
68
+ *
69
+ * @param encodedURIComponent A value representing an encoded URI component.
70
+ *
71
+ * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).
72
+ *
73
+ * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L47
74
+ */
75
+ safeDecodeURIComponent(encodedURIComponent) {
76
+ try {
77
+ return decodeURIComponent(encodedURIComponent);
78
+ }
79
+ catch {
80
+ // probably it is not uri encoded. return as is
81
+ return encodedURIComponent;
82
+ }
83
+ }
84
+ }
85
+ EsolveCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCookieService, deps: [{ token: i1.CookieService }, { token: PLATFORM_ID }, { token: 'REQUEST', optional: true }, { token: 'RESPONSE', optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
86
+ EsolveCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCookieService, providedIn: 'root' });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCookieService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'root',
91
+ }]
92
+ }], ctorParameters: function () { return [{ type: i1.CookieService }, { type: Object, decorators: [{
93
+ type: Inject,
94
+ args: [PLATFORM_ID]
95
+ }] }, { type: undefined, decorators: [{
96
+ type: Optional
97
+ }, {
98
+ type: Inject,
99
+ args: ['REQUEST']
100
+ }] }, { type: undefined, decorators: [{
101
+ type: Optional
102
+ }, {
103
+ type: Inject,
104
+ args: ['RESPONSE']
105
+ }] }]; } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvb2tpZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvY29va2llL2Vzb2x2ZS1jb29raWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTMUUsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixZQUNZLFVBQXlCLEVBQ0osVUFBa0IsRUFDUixPQUFnQixFQUNmLFFBQWtCO1FBSGxELGVBQVUsR0FBVixVQUFVLENBQWU7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOdEQsZUFBVSxHQUFZLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQU83RCxDQUFDO0lBRUUsS0FBSyxDQUFDLElBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFbkQsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FB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IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcclxuXHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ29va2llU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGlzX2Jyb3dzZXI6IGJvb2xlYW4gPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbmd4Q29va2llczogQ29va2llU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdSRVFVRVNUJykgcHJpdmF0ZSByZXF1ZXN0OiBSZXF1ZXN0LFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ1JFU1BPTlNFJykgcHJpdmF0ZSByZXNwb25zZTogUmVzcG9uc2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGNoZWNrKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmd4Q29va2llcy5jaGVjayhuYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNlcnZlcl9jb29raWVzID0gdGhpcy5yZXF1ZXN0LmhlYWRlcnMuY29va2llO1xyXG5cclxuICAgICAgICBpZiAoIXNlcnZlcl9jb29raWVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XHJcbiAgICAgICAgY29uc3QgcmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHJlZ0V4cC50ZXN0KHNlcnZlcl9jb29raWVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNfYnJvd3Nlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZ3hDb29raWVzLmdldChuYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jaGVjayhuYW1lKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzZXJ2ZXJfY29va2llcyA9IHRoaXMucmVxdWVzdC5oZWFkZXJzLmNvb2tpZSA/PyAnJztcclxuXHJcbiAgICAgICAgY29uc3QgcmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVnRXhwLmV4ZWMoc2VydmVyX2Nvb2tpZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0ICYmIHJlc3VsdFsxXSA/IHRoaXMuc2FmZURlY29kZVVSSUNvbXBvbmVudChyZXN1bHRbMV0pIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldChcclxuICAgICAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcclxuICAgICAgICBleHBpcmVzPzogRGF0ZSxcclxuICAgICAgICBwYXRoPzogc3RyaW5nLFxyXG4gICAgICAgIGRvbWFpbj86IHN0cmluZyxcclxuICAgICAgICBzZWN1cmU/OiBib29sZWFuXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmd4Q29va2llcy5zZXQobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVzcG9uc2UuY29va2llKG5hbWUsIHZhbHVlLCB7IGRvbWFpbiwgcGF0aCwgZXhwaXJlcywgc2VjdXJlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGUoXHJcbiAgICAgICAgbmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHBhdGg/OiBzdHJpbmcsXHJcbiAgICAgICAgZG9tYWluPzogc3RyaW5nLFxyXG4gICAgICAgIHNlY3VyZT86IGJvb2xlYW5cclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ3hDb29raWVzLmRlbGV0ZShuYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc3BvbnNlLmNsZWFyQ29va2llKG5hbWUsIHsgcGF0aCwgZG9tYWluLCBzZWN1cmUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICAqIEZvbGxvd2luZyBmdW5jdGlvbnMgY29tZSBmcm9tIG5neC1jb29raWUtc2VydmljZSBwcm9qZWN0IHNpbmNlIHRoZXkgYXJlIHByaW1hcmlseSB0aGUgc2FtZVxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgY29va2llIFJlZ3VsYXIgRXhwcmVzc2lvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSBSZWdFeHBcclxuICAgICAqXHJcbiAgICAgKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3RldmVybWVpc3Rlci9uZ3gtY29va2llLXNlcnZpY2UvYmxvYi9iY2I2YWMyMDM0ODdjNDg3ZmNkMTI2ODk2YmZmYWExNDk4MWM3MDljL3Byb2plY3RzL25neC1jb29raWUtc2VydmljZS9zcmMvbGliL2Nvb2tpZS5zZXJ2aWNlLnRzI0wzMVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xyXG4gICAgICAgIGNvbnN0IGVzY2FwZWROYW1lOiBzdHJpbmcgPSBuYW1lLnJlcGxhY2UoLyhbXFxbXFxdXFx7XFx9XFwoXFwpXFx8XFw9XFw7XFwrXFw/XFwsXFwuXFwqXFxeXFwkXSkvZ2ksICdcXFxcJDEnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLCAnZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdW5lbmNvZGVkIHZlcnNpb24gb2YgYW4gZW5jb2RlZCBjb21wb25lbnQgb2YgYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIgKFVSSSkuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVuY29kZWRVUklDb21wb25lbnQgQSB2YWx1ZSByZXByZXNlbnRpbmcgYW4gZW5jb2RlZCBVUkkgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIFRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cclxuICAgICAqXHJcbiAgICAgKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3RldmVybWVpc3Rlci9uZ3gtY29va2llLXNlcnZpY2UvYmxvYi9iY2I2YWMyMDM0ODdjNDg3ZmNkMTI2ODk2YmZmYWExNDk4MWM3MDljL3Byb2plY3RzL25neC1jb29raWUtc2VydmljZS9zcmMvbGliL2Nvb2tpZS5zZXJ2aWNlLnRzI0w0N1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNhZmVEZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQpO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAvLyBwcm9iYWJseSBpdCBpcyBub3QgdXJpIGVuY29kZWQuIHJldHVybiBhcyBpc1xyXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
111
111
  type: Inject,
112
112
  args: [ESOLVE_CONNECT_CONFIG]
113
113
  }] }, { type: i1.Title }, { type: i1.Meta }]; } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFLbEQsTUFBTSxPQUFPLGdCQUFnQjtJQVN6QixZQUMyQyxNQUEyQixFQUMxRCxLQUFZLEVBQ1osSUFBVTtRQUZxQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBTTtRQVhkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBRXRCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBTzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sSUFBSTtRQUNSLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNoRDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNoRDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsS0FBSyxXQUFXLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztTQUN0RDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixLQUFLLFdBQVcsRUFBRTtZQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUMxRDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixLQUFLLFdBQVcsRUFBRTtZQUM1RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztTQUN0RTtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixLQUFLLFdBQVcsRUFBRTtZQUN6RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsV0FBbUI7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE9BQXNCO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkgsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuQyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzdCLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxFQUFFO2dCQUMxQixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFeEMsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLEVBQUUsRUFBRTtvQkFDN0IsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQzlDO2FBQ0o7WUFFRCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxFQUFFO2dCQUMxQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssRUFBRSxFQUFFO29CQUM3QixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0M7WUFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFMUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNFLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztnQkFFcEMsS0FBSyxJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUU7b0JBQzFCLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3pCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3BCLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7NEJBQ25DLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ2hDO3FCQUNKO2lCQUNKO2dCQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMvQztTQUNKO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDdkM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxDQUFDLE9BQXNCO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7NkdBM0hRLGdCQUFnQixrQkFVYixxQkFBcUI7aUhBVnhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBV1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZVNFT0luZm8gfSBmcm9tICcuL2Vzb2x2ZS1zZW8taW5mbyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlb1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB0aXRsZV9wcmVmaXggPSAnJztcclxuICAgIHByaXZhdGUgdGl0bGVfc3VmZml4ID0gJyc7XHJcbiAgICBwcml2YXRlIHRpdGxlX3NlcGFyYXRvciA9ICd8JztcclxuXHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX3RpdGxlID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2tleXdvcmRzID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfcHJlZml4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3ByZWZpeCA9IHRoaXMuY29uZmlnLnRpdGxlX3ByZWZpeDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfc3VmZml4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3N1ZmZpeCA9IHRoaXMuY29uZmlnLnRpdGxlX3N1ZmZpeDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfc2VwYXJhdG9yICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3NlcGFyYXRvciA9IHRoaXMuY29uZmlnLnRpdGxlX3NlcGFyYXRvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fdGl0bGUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fdGl0bGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb190aXRsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24gPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fa2V5d29yZHMgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fa2V5d29yZHMgPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19rZXl3b3JkcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYWdlVGl0bGVUYWdzKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcclxuICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRpdGxlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UGFnZURlc2NyaXB0aW9uVGFncyhkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9uIH0pO1xyXG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb24gfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYWdlS2V5d29yZHNUYWdzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2tleXdvcmRzJywgY29udGVudDoga2V5d29yZHMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFuZFNhbml0aXplU2VvSW5mbyhzZW9JbmZvOiBFc29sdmVTRU9JbmZvKTogRXNvbHZlU0VPSW5mbyB7XHJcbiAgICAgICAgY29uc3QgcGFnZVNlbyA9IG5ldyBFc29sdmVTRU9JbmZvKHRoaXMuZGVmYXVsdF9zZW9fdGl0bGUsIHRoaXMuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24sIHRoaXMuZGVmYXVsdF9zZW9fa2V5d29yZHMpO1xyXG5cclxuICAgICAgICBpZiAoc2VvSW5mby5kZXNjcmlwdGlvbi50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHBhZ2VTZW8uZGVzY3JpcHRpb24gPSBzZW9JbmZvLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlb0luZm8udGl0bGUudHJpbSgpICE9PSAnJykge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZVBhcnRzQXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpdGxlX3ByZWZpeCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlUGFydHNBcnJheS5wdXNoKHRoaXMudGl0bGVfcHJlZml4KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aXRsZV9zZXBhcmF0b3IgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2godGhpcy50aXRsZV9zZXBhcmF0b3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aXRsZVBhcnRzQXJyYXkucHVzaChzZW9JbmZvLnRpdGxlKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpdGxlX3N1ZmZpeCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpdGxlX3NlcGFyYXRvciAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZVBhcnRzQXJyYXkucHVzaCh0aGlzLnRpdGxlX3NlcGFyYXRvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2godGhpcy50aXRsZV9zdWZmaXgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYWdlU2VvLnRpdGxlID0gdGl0bGVQYXJ0c0FycmF5LmpvaW4oJyAnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzZW9JbmZvLmtleXdvcmRzLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuX3RpdGxlID0gc2VvSW5mby50aXRsZS5yZXBsYWNlKC9bXmEtekEtWjAtOVxcLiBdKy9naSwgJycpLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleXdvcmRzID0gY2xlYW5fdGl0bGUuc3BsaXQoJyAnKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuX2tleXdvcmRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGtleXdvcmQgb2Yga2V5d29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkID0ga2V5d29yZC50cmltKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleXdvcmQubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkID0ga2V5d29yZC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNsZWFuX2tleXdvcmRzLmluY2x1ZGVzKGtleXdvcmQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhbl9rZXl3b3Jkcy5wdXNoKGtleXdvcmQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHNlb0luZm8ua2V5d29yZHMgPSBjbGVhbl9rZXl3b3Jkcy5qb2luKCcsJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZW9JbmZvLmtleXdvcmRzLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgICAgICAgcGFnZVNlby5rZXl3b3JkcyA9IHNlb0luZm8ua2V5d29yZHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFnZVNlbztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgU0VPIHRhZ3MgZm9yIHBhZ2VcclxuICAgICAqIEBwYXJhbSBzZW9JbmZvIFNFTyBvYmplY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFRhZ3Moc2VvSW5mbzogRXNvbHZlU0VPSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHNlb0luZm8gPSB0aGlzLnZhbGlkYXRlQW5kU2FuaXRpemVTZW9JbmZvKHNlb0luZm8pO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZVRhZ3Moc2VvSW5mby50aXRsZSk7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlRGVzY3JpcHRpb25UYWdzKHNlb0luZm8uZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUtleXdvcmRzVGFncyhzZW9JbmZvLmtleXdvcmRzKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFLbEQsTUFBTSxPQUFPLGdCQUFnQjtJQVN6QixZQUMyQyxNQUEyQixFQUMxRCxLQUFZLEVBQ1osSUFBVTtRQUZxQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBTTtRQVhkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBRXRCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBTzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sSUFBSTtRQUNSLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNoRDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlB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QUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7NkdBL0hRLGdCQUFnQixrQkFVYixxQkFBcUI7aUhBVnhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBV1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZVNFT0luZm8gfSBmcm9tICcuL2Vzb2x2ZS1zZW8taW5mbyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlb1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB0aXRsZV9wcmVmaXggPSAnJztcclxuICAgIHByaXZhdGUgdGl0bGVfc3VmZml4ID0gJyc7XHJcbiAgICBwcml2YXRlIHRpdGxlX3NlcGFyYXRvciA9ICd8JztcclxuXHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX3RpdGxlID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2tleXdvcmRzID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfcHJlZml4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3ByZWZpeCA9IHRoaXMuY29uZmlnLnRpdGxlX3ByZWZpeDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfc3VmZml4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3N1ZmZpeCA9IHRoaXMuY29uZmlnLnRpdGxlX3N1ZmZpeDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcudGl0bGVfc2VwYXJhdG9yICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlX3NlcGFyYXRvciA9IHRoaXMuY29uZmlnLnRpdGxlX3NlcGFyYXRvcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fdGl0bGUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fdGl0bGUgPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb190aXRsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24gPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuZGVmYXVsdF9zZW9fa2V5d29yZHMgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fa2V5d29yZHMgPSB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19rZXl3b3JkcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYWdlVGl0bGVUYWdzKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcclxuICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRpdGxlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UGFnZURlc2NyaXB0aW9uVGFncyhkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9uIH0pO1xyXG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb24gfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYWdlS2V5d29yZHNUYWdzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2tleXdvcmRzJywgY29udGVudDoga2V5d29yZHMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFuZFNhbml0aXplU2VvSW5mbyhzZW9JbmZvOiBFc29sdmVTRU9JbmZvKTogRXNvbHZlU0VPSW5mbyB7XHJcbiAgICAgICAgY29uc3QgcGFnZVNlbyA9IG5ldyBFc29sdmVTRU9JbmZvKFxyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRfc2VvX3RpdGxlLFxyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRfc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRfc2VvX2tleXdvcmRzXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHNlb0luZm8uZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYWdlU2VvLmRlc2NyaXB0aW9uID0gc2VvSW5mby5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZW9JbmZvLnRpdGxlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGVQYXJ0c0FycmF5ID0gW107XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50aXRsZV9wcmVmaXggIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZVBhcnRzQXJyYXkucHVzaCh0aGlzLnRpdGxlX3ByZWZpeCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGl0bGVfc2VwYXJhdG9yICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlUGFydHNBcnJheS5wdXNoKHRoaXMudGl0bGVfc2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2goc2VvSW5mby50aXRsZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50aXRsZV9zdWZmaXggIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aXRsZV9zZXBhcmF0b3IgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2godGhpcy50aXRsZV9zZXBhcmF0b3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRpdGxlUGFydHNBcnJheS5wdXNoKHRoaXMudGl0bGVfc3VmZml4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFnZVNlby50aXRsZSA9IHRpdGxlUGFydHNBcnJheS5qb2luKCcgJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2VvSW5mby5rZXl3b3Jkcy50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhbl90aXRsZSA9IHNlb0luZm8udGl0bGUucmVwbGFjZSgvW15hLXpBLVowLTlcXC4gXSsvZ2ksICcnKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBrZXl3b3JkcyA9IGNsZWFuX3RpdGxlLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhbl9rZXl3b3Jkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXl3b3JkIG9mIGtleXdvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmQudHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmQudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGVhbl9rZXl3b3Jkcy5pbmNsdWRlcyhrZXl3b3JkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5fa2V5d29yZHMucHVzaChrZXl3b3JkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZW9JbmZvLmtleXdvcmRzID0gY2xlYW5fa2V5d29yZHMuam9pbignLCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc2VvSW5mby5rZXl3b3Jkcy50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHBhZ2VTZW8ua2V5d29yZHMgPSBzZW9JbmZvLmtleXdvcmRzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhZ2VTZW87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIFNFTyB0YWdzIGZvciBwYWdlXHJcbiAgICAgKiBAcGFyYW0gc2VvSW5mbyBTRU8gb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRUYWdzKHNlb0luZm86IEVzb2x2ZVNFT0luZm8pOiB2b2lkIHtcclxuICAgICAgICBzZW9JbmZvID0gdGhpcy52YWxpZGF0ZUFuZFNhbml0aXplU2VvSW5mbyhzZW9JbmZvKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGVUYWdzKHNlb0luZm8udGl0bGUpO1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZURlc2NyaXB0aW9uVGFncyhzZW9JbmZvLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICB0aGlzLnNldFBhZ2VLZXl3b3Jkc1RhZ3Moc2VvSW5mby5rZXl3b3Jkcyk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==