@revxui/intellibid-client-ts 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/api/dpaEngagementController.service.d.ts +32 -0
- package/esm2020/api/dpaEngagementController.service.mjs +77 -1
- package/esm2020/model/dpaCampaignResponse.mjs +2 -2
- package/esm2020/model/dpaEngagementResponse.mjs +2 -2
- package/esm2020/model/models.mjs +2 -1
- package/esm2020/model/pageableObject.mjs +1 -1
- package/esm2020/model/updateDailyBudgetRequest.mjs +13 -0
- package/fesm2015/revxui-intellibid-client-ts.mjs +78 -2
- package/fesm2015/revxui-intellibid-client-ts.mjs.map +1 -1
- package/fesm2020/revxui-intellibid-client-ts.mjs +90 -2
- package/fesm2020/revxui-intellibid-client-ts.mjs.map +1 -1
- package/model/dpaCampaignResponse.d.ts +2 -2
- package/model/dpaEngagementResponse.d.ts +2 -2
- package/model/models.d.ts +1 -0
- package/model/pageableObject.d.ts +2 -2
- package/model/updateDailyBudgetRequest.d.ts +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## @revxui/intellibid-client-ts@1.0.
|
|
1
|
+
## @revxui/intellibid-client-ts@1.0.1
|
|
2
2
|
|
|
3
3
|
### Building
|
|
4
4
|
|
|
@@ -19,7 +19,7 @@ Navigate to the folder of your consuming project and run one of next commands.
|
|
|
19
19
|
_published:_
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
npm install @revxui/intellibid-client-ts@1.0.
|
|
22
|
+
npm install @revxui/intellibid-client-ts@1.0.1 --save
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
_without publishing (not recommended):_
|
|
@@ -3,6 +3,7 @@ import { Observable } from 'rxjs';
|
|
|
3
3
|
import { DpaEngagementRequest } from '../model/dpaEngagementRequest';
|
|
4
4
|
import { DpaEngagementResponse } from '../model/dpaEngagementResponse';
|
|
5
5
|
import { PageDpaEngagementResponse } from '../model/pageDpaEngagementResponse';
|
|
6
|
+
import { UpdateDailyBudgetRequest } from '../model/updateDailyBudgetRequest';
|
|
6
7
|
import { Configuration } from '../configuration';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class DpaEngagementControllerService {
|
|
@@ -16,6 +17,16 @@ export declare class DpaEngagementControllerService {
|
|
|
16
17
|
* @return true: consumes contains 'multipart/form-data', false: otherwise
|
|
17
18
|
*/
|
|
18
19
|
private canConsumeForm;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* @param id
|
|
24
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
25
|
+
* @param reportProgress flag to report request and response progress.
|
|
26
|
+
*/
|
|
27
|
+
activateDpaEngagement(id: number, observe?: 'body', reportProgress?: boolean): Observable<DpaEngagementResponse>;
|
|
28
|
+
activateDpaEngagement(id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DpaEngagementResponse>>;
|
|
29
|
+
activateDpaEngagement(id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DpaEngagementResponse>>;
|
|
19
30
|
/**
|
|
20
31
|
*
|
|
21
32
|
*
|
|
@@ -57,6 +68,16 @@ export declare class DpaEngagementControllerService {
|
|
|
57
68
|
getDpaEngagement(id: number, observe?: 'body', reportProgress?: boolean): Observable<DpaEngagementResponse>;
|
|
58
69
|
getDpaEngagement(id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DpaEngagementResponse>>;
|
|
59
70
|
getDpaEngagement(id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DpaEngagementResponse>>;
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*
|
|
74
|
+
* @param id
|
|
75
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
76
|
+
* @param reportProgress flag to report request and response progress.
|
|
77
|
+
*/
|
|
78
|
+
pauseDpaEngagement(id: number, observe?: 'body', reportProgress?: boolean): Observable<DpaEngagementResponse>;
|
|
79
|
+
pauseDpaEngagement(id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DpaEngagementResponse>>;
|
|
80
|
+
pauseDpaEngagement(id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DpaEngagementResponse>>;
|
|
60
81
|
/**
|
|
61
82
|
*
|
|
62
83
|
*
|
|
@@ -67,6 +88,17 @@ export declare class DpaEngagementControllerService {
|
|
|
67
88
|
publishDpaEngagement(id: number, observe?: 'body', reportProgress?: boolean): Observable<DpaEngagementResponse>;
|
|
68
89
|
publishDpaEngagement(id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DpaEngagementResponse>>;
|
|
69
90
|
publishDpaEngagement(id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DpaEngagementResponse>>;
|
|
91
|
+
/**
|
|
92
|
+
*
|
|
93
|
+
*
|
|
94
|
+
* @param body
|
|
95
|
+
* @param id
|
|
96
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
97
|
+
* @param reportProgress flag to report request and response progress.
|
|
98
|
+
*/
|
|
99
|
+
updateDailyBudget(body: UpdateDailyBudgetRequest, id: number, observe?: 'body', reportProgress?: boolean): Observable<DpaEngagementResponse>;
|
|
100
|
+
updateDailyBudget(body: UpdateDailyBudgetRequest, id: number, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<DpaEngagementResponse>>;
|
|
101
|
+
updateDailyBudget(body: UpdateDailyBudgetRequest, id: number, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<DpaEngagementResponse>>;
|
|
70
102
|
/**
|
|
71
103
|
*
|
|
72
104
|
*
|
|
@@ -44,6 +44,28 @@ export class DpaEngagementControllerService {
|
|
|
44
44
|
}
|
|
45
45
|
return false;
|
|
46
46
|
}
|
|
47
|
+
activateDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
48
|
+
if (id === null || id === undefined) {
|
|
49
|
+
throw new Error('Required parameter id was null or undefined when calling activateDpaEngagement.');
|
|
50
|
+
}
|
|
51
|
+
let headers = this.defaultHeaders;
|
|
52
|
+
// to determine the Accept header
|
|
53
|
+
let httpHeaderAccepts = [
|
|
54
|
+
'*/*'
|
|
55
|
+
];
|
|
56
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
57
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
58
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
59
|
+
}
|
|
60
|
+
// to determine the Content-Type header
|
|
61
|
+
const consumes = [];
|
|
62
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/activate`, {
|
|
63
|
+
withCredentials: this.configuration.withCredentials,
|
|
64
|
+
headers: headers,
|
|
65
|
+
observe: observe,
|
|
66
|
+
reportProgress: reportProgress
|
|
67
|
+
});
|
|
68
|
+
}
|
|
47
69
|
createDpaEngagement(body, observe = 'body', reportProgress = false) {
|
|
48
70
|
if (body === null || body === undefined) {
|
|
49
71
|
throw new Error('Required parameter body was null or undefined when calling createDpaEngagement.');
|
|
@@ -154,6 +176,28 @@ export class DpaEngagementControllerService {
|
|
|
154
176
|
reportProgress: reportProgress
|
|
155
177
|
});
|
|
156
178
|
}
|
|
179
|
+
pauseDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
180
|
+
if (id === null || id === undefined) {
|
|
181
|
+
throw new Error('Required parameter id was null or undefined when calling pauseDpaEngagement.');
|
|
182
|
+
}
|
|
183
|
+
let headers = this.defaultHeaders;
|
|
184
|
+
// to determine the Accept header
|
|
185
|
+
let httpHeaderAccepts = [
|
|
186
|
+
'*/*'
|
|
187
|
+
];
|
|
188
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
189
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
190
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
191
|
+
}
|
|
192
|
+
// to determine the Content-Type header
|
|
193
|
+
const consumes = [];
|
|
194
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/pause`, {
|
|
195
|
+
withCredentials: this.configuration.withCredentials,
|
|
196
|
+
headers: headers,
|
|
197
|
+
observe: observe,
|
|
198
|
+
reportProgress: reportProgress
|
|
199
|
+
});
|
|
200
|
+
}
|
|
157
201
|
publishDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
158
202
|
if (id === null || id === undefined) {
|
|
159
203
|
throw new Error('Required parameter id was null or undefined when calling publishDpaEngagement.');
|
|
@@ -176,6 +220,38 @@ export class DpaEngagementControllerService {
|
|
|
176
220
|
reportProgress: reportProgress
|
|
177
221
|
});
|
|
178
222
|
}
|
|
223
|
+
updateDailyBudget(body, id, observe = 'body', reportProgress = false) {
|
|
224
|
+
if (body === null || body === undefined) {
|
|
225
|
+
throw new Error('Required parameter body was null or undefined when calling updateDailyBudget.');
|
|
226
|
+
}
|
|
227
|
+
if (id === null || id === undefined) {
|
|
228
|
+
throw new Error('Required parameter id was null or undefined when calling updateDailyBudget.');
|
|
229
|
+
}
|
|
230
|
+
let headers = this.defaultHeaders;
|
|
231
|
+
// to determine the Accept header
|
|
232
|
+
let httpHeaderAccepts = [
|
|
233
|
+
'*/*'
|
|
234
|
+
];
|
|
235
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
236
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
237
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
238
|
+
}
|
|
239
|
+
// to determine the Content-Type header
|
|
240
|
+
const consumes = [
|
|
241
|
+
'application/json'
|
|
242
|
+
];
|
|
243
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
244
|
+
if (httpContentTypeSelected != undefined) {
|
|
245
|
+
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
246
|
+
}
|
|
247
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/daily-budget`, {
|
|
248
|
+
body: body,
|
|
249
|
+
withCredentials: this.configuration.withCredentials,
|
|
250
|
+
headers: headers,
|
|
251
|
+
observe: observe,
|
|
252
|
+
reportProgress: reportProgress
|
|
253
|
+
});
|
|
254
|
+
}
|
|
179
255
|
updateDpaEngagement(body, id, observe = 'body', reportProgress = false) {
|
|
180
256
|
if (body === null || body === undefined) {
|
|
181
257
|
throw new Error('Required parameter body was null or undefined when calling updateDpaEngagement.');
|
|
@@ -221,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
221
297
|
}] }, { type: i2.Configuration, decorators: [{
|
|
222
298
|
type: Optional
|
|
223
299
|
}] }]; } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHBhRW5nYWdlbWVudENvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9kcGFFbmdhZ2VtZW50Q29udHJvbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUcsQ0FBQSx1REFBdUQ7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFDVixNQUFnQyxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBNkIsWUFBWSxDQUFDO0FBUS9FLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBSXJGLE1BQU0sT0FBTyw4QkFBOEI7SUFNdkMsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRywyQ0FBMkMsQ0FBQztRQUMxRCxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFC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QUMsQ0FBQztRQUN6RyxJQUFJLHVCQUF1QixJQUFJLFNBQVMsRUFBRTtZQUN0QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztTQUNsRTtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQXdCLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxRQUFRLG1CQUFtQixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUM1SDtZQUNJLElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNuRCxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsY0FBYztTQUNqQyxDQUNKLENBQUM7SUFDTixDQUFDOzs0SEF2VFEsOEJBQThCLDRDQU0wQixTQUFTO2dJQU5qRSw4QkFBOEI7NEZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7MEJBT3dDLFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQXFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFxuICogXG4gKlxuICogXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovLyogdHNsaW50OmRpc2FibGU6bm8tdW51c2VkLXZhcmlhYmxlIG1lbWJlci1vcmRlcmluZyAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyxcbiAgICAgICAgIEh0dHBSZXNwb25zZSwgSHR0cEV2ZW50IH0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYyB9ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRHBhRW5nYWdlbWVudFJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9kcGFFbmdhZ2VtZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBEcGFFbmdhZ2VtZW50UmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9kcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuaW1wb3J0IHsgUGFnZURwYUVuZ2FnZW1lbnRSZXNwb25zZSB9IGZyb20gJy4uL21vZGVsL3BhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHBhRW5nYWdlbWVudENvbnRyb2xsZXJTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICdodHRwOi8vaW50ZWxsaWJpZC1hcGkuYXRvbWV4Lm5ldDo4MDgxL2FwaSc7XG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGZvciAoY29uc3QgY29uc3VtZSBvZiBjb25zdW1lcykge1xuICAgICAgICAgICAgaWYgKGZvcm0gPT09IGNvbnN1bWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRHBhRW5nYWdlbWVudChib2R5OiBEcGFFbmdhZ2VtZW50UmVxdWVzdCwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBjcmVhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8RHBhRW5nYWdlbWVudFJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZURwYUVuZ2FnZW1lbnQoYm9keTogRHBhRW5nYWdlbWVudFJlcXVlc3QsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8RHBhRW5nYWdlbWVudFJlc3BvbnNlPj47XG4gICAgcHVibGljIGNyZWF0ZURwYUVuZ2FnZW1lbnQoYm9keTogRHBhRW5nYWdlbWVudFJlcXVlc3QsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZURwYUVuZ2FnZW1lbnQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8RHBhRW5nYWdlbWVudFJlc3BvbnNlPigncG9zdCcsYCR7dGhpcy5iYXNlUGF0aH0vZHBhLWVuZ2FnZW1lbnRgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgXG4gICAgICogQHBhcmFtIGNhbXBhaWduSWQgXG4gICAgICogQHBhcmFtIGZhY2Vib29rQ2FtcGFpZ25JZCBcbiAgICAgKiBAcGFyYW0gbmFtZSBcbiAgICAgKiBAcGFyYW0gcGF5b3V0VHlwZSBcbiAgICAgKiBAcGFyYW0gc3RhdHVzIFxuICAgICAqIEBwYXJhbSBpc0ludGVsbGliaWRFbmFibGVkIFxuICAgICAqIEBwYXJhbSBpc01hcmtldEZlZWRiYWNrRW5hYmxlZCBcbiAgICAgKiBAcGFyYW0gY2FtcGFpZ25TdGF0dXMgXG4gICAgICogQHBhcmFtIHBhZ2UgWmVyby1iYXNlZCBwYWdlIGluZGV4ICgwLi5OKVxuICAgICAqIEBwYXJhbSBzaXplIFRoZSBzaXplIG9mIHRoZSBwYWdlIHRvIGJlIHJldHVybmVkXG4gICAgICogQHBhcmFtIHNvcnQgU29ydGluZyBjcml0ZXJpYSBpbiB0aGUgZm9ybWF0OiBwcm9wZXJ0eSwoYXNjfGRlc2MpLiBEZWZhdWx0IHNvcnQgb3JkZXIgaXMgYXNjZW5kaW5nLiBNdWx0aXBsZSBzb3J0IGNyaXRlcmlhIGFyZSBzdXBwb3J0ZWQuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbERwYUVuZ2FnZW1lbnRzKGlkPzogbnVtYmVyLCBjYW1wYWlnbklkPzogbnVtYmVyLCBmYWNlYm9va0NhbXBhaWduSWQ/OiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcsIHBheW91dFR5cGU/OiBzdHJpbmcsIHN0YXR1cz86IHN0cmluZywgaXNJbnRlbGxpYmlkRW5hYmxlZD86IGJvb2xlYW4sIGlzTWFya2V0RmVlZGJhY2tFbmFibGVkPzogYm9vbGVhbiwgY2FtcGFpZ25TdGF0dXM/OiBib29sZWFuLCBwYWdlPzogbnVtYmVyLCBzaXplPzogbnVtYmVyLCBzb3J0PzogQXJyYXk8c3RyaW5nPiwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQYWdlRHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgZ2V0QWxsRHBhRW5nYWdlbWVudHMoaWQ/OiBudW1iZXIsIGNhbXBhaWduSWQ/OiBudW1iZXIsIGZhY2Vib29rQ2FtcGFpZ25JZD86IHN0cmluZywgbmFtZT86IHN0cmluZywgcGF5b3V0VHlwZT86IHN0cmluZywgc3RhdHVzPzogc3RyaW5nLCBpc0ludGVsbGliaWRFbmFibGVkPzogYm9vbGVhbiwgaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQ/OiBib29sZWFuLCBjYW1wYWlnblN0YXR1cz86IGJvb2xlYW4sIHBhZ2U/OiBudW1iZXIsIHNpemU/OiBudW1iZXIsIHNvcnQ/OiBBcnJheTxzdHJpbmc+LCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8UGFnZURwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBnZXRBbGxEcGFFbmdhZ2VtZW50cyhpZD86IG51bWJlciwgY2FtcGFpZ25JZD86IG51bWJlciwgZmFjZWJvb2tDYW1wYWlnbklkPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nLCBwYXlvdXRUeXBlPzogc3RyaW5nLCBzdGF0dXM/OiBzdHJpbmcsIGlzSW50ZWxsaWJpZEVuYWJsZWQ/OiBib29sZWFuLCBpc01hcmtldEZlZWRiYWNrRW5hYmxlZD86IGJvb2xlYW4sIGNhbXBhaWduU3RhdHVzPzogYm9vbGVhbiwgcGFnZT86IG51bWJlciwgc2l6ZT86IG51bWJlciwgc29ydD86IEFycmF5PHN0cmluZz4sIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8UGFnZURwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBnZXRBbGxEcGFFbmdhZ2VtZW50cyhpZD86IG51bWJlciwgY2FtcGFpZ25JZD86IG51bWJlciwgZmFjZWJvb2tDYW1wYWlnbklkPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nLCBwYXlvdXRUeXBlPzogc3RyaW5nLCBzdGF0dXM/OiBzdHJpbmcsIGlzSW50ZWxsaWJpZEVuYWJsZWQ/OiBib29sZWFuLCBpc01hcmtldEZlZWRiYWNrRW5hYmxlZD86IGJvb2xlYW4sIGNhbXBhaWduU3RhdHVzPzogYm9vbGVhbiwgcGFnZT86IG51bWJlciwgc2l6ZT86IG51bWJlciwgc29ydD86IEFycmF5PHN0cmluZz4sIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKGlkICE9PSB1bmRlZmluZWQgJiYgaWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2lkJywgPGFueT5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbXBhaWduSWQgIT09IHVuZGVmaW5lZCAmJiBjYW1wYWlnbklkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdjYW1wYWlnbklkJywgPGFueT5jYW1wYWlnbklkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmFjZWJvb2tDYW1wYWlnbklkICE9PSB1bmRlZmluZWQgJiYgZmFjZWJvb2tDYW1wYWlnbklkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdmYWNlYm9va0NhbXBhaWduSWQnLCA8YW55PmZhY2Vib29rQ2FtcGFpZ25JZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCAmJiBuYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCduYW1lJywgPGFueT5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF5b3V0VHlwZSAhPT0gdW5kZWZpbmVkICYmIHBheW91dFR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ3BheW91dFR5cGUnLCA8YW55PnBheW91dFR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ3N0YXR1cycsIDxhbnk+c3RhdHVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNJbnRlbGxpYmlkRW5hYmxlZCAhPT0gdW5kZWZpbmVkICYmIGlzSW50ZWxsaWJpZEVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2lzSW50ZWxsaWJpZEVuYWJsZWQnLCA8YW55PmlzSW50ZWxsaWJpZEVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc01hcmtldEZlZWRiYWNrRW5hYmxlZCAhPT0gdW5kZWZpbmVkICYmIGlzTWFya2V0RmVlZGJhY2tFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpc01hcmtldEZlZWRiYWNrRW5hYmxlZCcsIDxhbnk+aXNNYXJrZXRGZWVkYmFja0VuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYW1wYWlnblN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIGNhbXBhaWduU3RhdHVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdjYW1wYWlnblN0YXR1cycsIDxhbnk+Y2FtcGFpZ25TdGF0dXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWdlICE9PSB1bmRlZmluZWQgJiYgcGFnZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgncGFnZScsIDxhbnk+cGFnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpemUgIT09IHVuZGVmaW5lZCAmJiBzaXplICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdzaXplJywgPGFueT5zaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc29ydCkge1xuICAgICAgICAgICAgc29ydC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLmFwcGVuZCgnc29ydCcsIDxhbnk+ZWxlbWVudCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PFBhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdnZXQnLGAke3RoaXMuYmFzZVBhdGh9L2RwYS1lbmdhZ2VtZW50YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBpZCBcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RHBhRW5nYWdlbWVudChpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT47XG4gICAgcHVibGljIGdldERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBnZXREcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8RHBhRW5nYWdlbWVudFJlc3BvbnNlPj47XG4gICAgcHVibGljIGdldERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0RHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdnZXQnLGAke3RoaXMuYmFzZVBhdGh9L2RwYS1lbmdhZ2VtZW50LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHB1Ymxpc2hEcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8RHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgcHVibGlzaERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBwdWJsaXNoRHBhRW5nYWdlbWVudChpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBwdWJsaXNoRHBhRW5nYWdlbWVudChpZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBwdWJsaXNoRHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0vcHVibGlzaGAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gaWQgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZURwYUVuZ2FnZW1lbnQoYm9keTogRHBhRW5nYWdlbWVudFJlcXVlc3QsIGlkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8RHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgdXBkYXRlRHBhRW5nYWdlbWVudChib2R5OiBEcGFFbmdhZ2VtZW50UmVxdWVzdCwgaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVEcGFFbmdhZ2VtZW50LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlRHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHBhRW5nYWdlbWVudENvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9kcGFFbmdhZ2VtZW50Q29udHJvbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUcsQ0FBQSx1REFBdUQ7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFDVixNQUFnQyxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBNkIsWUFBWSxDQUFDO0FBUy9FLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBSXJGLE1BQU0sT0FBTyw4QkFBOEI7SUFNdkMsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRywyQ0FBMkMsQ0FBQztRQUMxRCxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFC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RSxDQUFDLENBQUMsRUFBRSxFQUM1SDtZQUNJLElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNuRCxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsY0FBYztTQUNqQyxDQUNKLENBQUM7SUFDTixDQUFDOzs0SEE3YlEsOEJBQThCLDRDQU0wQixTQUFTO2dJQU5qRSw4QkFBOEI7NEZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7MEJBT3dDLFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQXFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFxuICogXG4gKlxuICogXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovLyogdHNsaW50OmRpc2FibGU6bm8tdW51c2VkLXZhcmlhYmxlIG1lbWJlci1vcmRlcmluZyAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyxcbiAgICAgICAgIEh0dHBSZXNwb25zZSwgSHR0cEV2ZW50IH0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYyB9ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRHBhRW5nYWdlbWVudFJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9kcGFFbmdhZ2VtZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBEcGFFbmdhZ2VtZW50UmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9kcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuaW1wb3J0IHsgUGFnZURwYUVuZ2FnZW1lbnRSZXNwb25zZSB9IGZyb20gJy4uL21vZGVsL3BhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuaW1wb3J0IHsgVXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvdXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0JztcblxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERwYUVuZ2FnZW1lbnRDb250cm9sbGVyU2VydmljZSB7XG5cbiAgICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cDovL2ludGVsbGliaWQtYXBpLmF0b21leC5uZXQ6ODA4MS9hcGknO1xuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbnN1bWUgb2YgY29uc3VtZXMpIHtcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmF0ZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBhY3RpdmF0ZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBhY3RpdmF0ZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVEcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGFjdGl2YXRlRHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0vYWN0aXZhdGVgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZURwYUVuZ2FnZW1lbnQoYm9keTogRHBhRW5nYWdlbWVudFJlcXVlc3QsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8RHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlRHBhRW5nYWdlbWVudChib2R5OiBEcGFFbmdhZ2VtZW50UmVxdWVzdCwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBjcmVhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVEcGFFbmdhZ2VtZW50LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2RwYS1lbmdhZ2VtZW50YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSBjYW1wYWlnbklkIFxuICAgICAqIEBwYXJhbSBmYWNlYm9va0NhbXBhaWduSWQgXG4gICAgICogQHBhcmFtIG5hbWUgXG4gICAgICogQHBhcmFtIHBheW91dFR5cGUgXG4gICAgICogQHBhcmFtIHN0YXR1cyBcbiAgICAgKiBAcGFyYW0gaXNJbnRlbGxpYmlkRW5hYmxlZCBcbiAgICAgKiBAcGFyYW0gaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQgXG4gICAgICogQHBhcmFtIGNhbXBhaWduU3RhdHVzIFxuICAgICAqIEBwYXJhbSBwYWdlIFplcm8tYmFzZWQgcGFnZSBpbmRleCAoMC4uTilcbiAgICAgKiBAcGFyYW0gc2l6ZSBUaGUgc2l6ZSBvZiB0aGUgcGFnZSB0byBiZSByZXR1cm5lZFxuICAgICAqIEBwYXJhbSBzb3J0IFNvcnRpbmcgY3JpdGVyaWEgaW4gdGhlIGZvcm1hdDogcHJvcGVydHksKGFzY3xkZXNjKS4gRGVmYXVsdCBzb3J0IG9yZGVyIGlzIGFzY2VuZGluZy4gTXVsdGlwbGUgc29ydCBjcml0ZXJpYSBhcmUgc3VwcG9ydGVkLlxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGxEcGFFbmdhZ2VtZW50cyhpZD86IG51bWJlciwgY2FtcGFpZ25JZD86IG51bWJlciwgZmFjZWJvb2tDYW1wYWlnbklkPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nLCBwYXlvdXRUeXBlPzogc3RyaW5nLCBzdGF0dXM/OiBzdHJpbmcsIGlzSW50ZWxsaWJpZEVuYWJsZWQ/OiBib29sZWFuLCBpc01hcmtldEZlZWRiYWNrRW5hYmxlZD86IGJvb2xlYW4sIGNhbXBhaWduU3RhdHVzPzogYm9vbGVhbiwgcGFnZT86IG51bWJlciwgc2l6ZT86IG51bWJlciwgc29ydD86IEFycmF5PHN0cmluZz4sIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8UGFnZURwYUVuZ2FnZW1lbnRSZXNwb25zZT47XG4gICAgcHVibGljIGdldEFsbERwYUVuZ2FnZW1lbnRzKGlkPzogbnVtYmVyLCBjYW1wYWlnbklkPzogbnVtYmVyLCBmYWNlYm9va0NhbXBhaWduSWQ/OiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcsIHBheW91dFR5cGU/OiBzdHJpbmcsIHN0YXR1cz86IHN0cmluZywgaXNJbnRlbGxpYmlkRW5hYmxlZD86IGJvb2xlYW4sIGlzTWFya2V0RmVlZGJhY2tFbmFibGVkPzogYm9vbGVhbiwgY2FtcGFpZ25TdGF0dXM/OiBib29sZWFuLCBwYWdlPzogbnVtYmVyLCBzaXplPzogbnVtYmVyLCBzb3J0PzogQXJyYXk8c3RyaW5nPiwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPFBhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0QWxsRHBhRW5nYWdlbWVudHMoaWQ/OiBudW1iZXIsIGNhbXBhaWduSWQ/OiBudW1iZXIsIGZhY2Vib29rQ2FtcGFpZ25JZD86IHN0cmluZywgbmFtZT86IHN0cmluZywgcGF5b3V0VHlwZT86IHN0cmluZywgc3RhdHVzPzogc3RyaW5nLCBpc0ludGVsbGliaWRFbmFibGVkPzogYm9vbGVhbiwgaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQ/OiBib29sZWFuLCBjYW1wYWlnblN0YXR1cz86IGJvb2xlYW4sIHBhZ2U/OiBudW1iZXIsIHNpemU/OiBudW1iZXIsIHNvcnQ/OiBBcnJheTxzdHJpbmc+LCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PFBhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0QWxsRHBhRW5nYWdlbWVudHMoaWQ/OiBudW1iZXIsIGNhbXBhaWduSWQ/OiBudW1iZXIsIGZhY2Vib29rQ2FtcGFpZ25JZD86IHN0cmluZywgbmFtZT86IHN0cmluZywgcGF5b3V0VHlwZT86IHN0cmluZywgc3RhdHVzPzogc3RyaW5nLCBpc0ludGVsbGliaWRFbmFibGVkPzogYm9vbGVhbiwgaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQ/OiBib29sZWFuLCBjYW1wYWlnblN0YXR1cz86IGJvb2xlYW4sIHBhZ2U/OiBudW1iZXIsIHNpemU/OiBudW1iZXIsIHNvcnQ/OiBBcnJheTxzdHJpbmc+LCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIGlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpZCcsIDxhbnk+aWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYW1wYWlnbklkICE9PSB1bmRlZmluZWQgJiYgY2FtcGFpZ25JZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnY2FtcGFpZ25JZCcsIDxhbnk+Y2FtcGFpZ25JZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZhY2Vib29rQ2FtcGFpZ25JZCAhPT0gdW5kZWZpbmVkICYmIGZhY2Vib29rQ2FtcGFpZ25JZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnZmFjZWJvb2tDYW1wYWlnbklkJywgPGFueT5mYWNlYm9va0NhbXBhaWduSWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQgJiYgbmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnbmFtZScsIDxhbnk+bmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBheW91dFR5cGUgIT09IHVuZGVmaW5lZCAmJiBwYXlvdXRUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdwYXlvdXRUeXBlJywgPGFueT5wYXlvdXRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdzdGF0dXMnLCA8YW55PnN0YXR1cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzSW50ZWxsaWJpZEVuYWJsZWQgIT09IHVuZGVmaW5lZCAmJiBpc0ludGVsbGliaWRFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpc0ludGVsbGliaWRFbmFibGVkJywgPGFueT5pc0ludGVsbGliaWRFbmFibGVkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQgIT09IHVuZGVmaW5lZCAmJiBpc01hcmtldEZlZWRiYWNrRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnaXNNYXJrZXRGZWVkYmFja0VuYWJsZWQnLCA8YW55PmlzTWFya2V0RmVlZGJhY2tFbmFibGVkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FtcGFpZ25TdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBjYW1wYWlnblN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnY2FtcGFpZ25TdGF0dXMnLCA8YW55PmNhbXBhaWduU3RhdHVzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFnZSAhPT0gdW5kZWZpbmVkICYmIHBhZ2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ3BhZ2UnLCA8YW55PnBhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaXplICE9PSB1bmRlZmluZWQgJiYgc2l6ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnc2l6ZScsIDxhbnk+c2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvcnQpIHtcbiAgICAgICAgICAgIHNvcnQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5hcHBlbmQoJ3NvcnQnLCA8YW55PmVsZW1lbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxQYWdlRHBhRW5nYWdlbWVudFJlc3BvbnNlPignZ2V0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudGAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBnZXREcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0RHBhRW5nYWdlbWVudChpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBnZXREcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldERwYUVuZ2FnZW1lbnQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8RHBhRW5nYWdlbWVudFJlc3BvbnNlPignZ2V0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXVzZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBwYXVzZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBwYXVzZURwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgcGF1c2VEcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHBhdXNlRHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0vcGF1c2VgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBwdWJsaXNoRHBhRW5nYWdlbWVudChpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT47XG4gICAgcHVibGljIHB1Ymxpc2hEcGFFbmdhZ2VtZW50KGlkOiBudW1iZXIsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgcHVibGlzaERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgcHVibGlzaERwYUVuZ2FnZW1lbnQoaWQ6IG51bWJlciwgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgcHVibGlzaERwYUVuZ2FnZW1lbnQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8RHBhRW5nYWdlbWVudFJlc3BvbnNlPigncG9zdCcsYCR7dGhpcy5iYXNlUGF0aH0vZHBhLWVuZ2FnZW1lbnQvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGlkKSl9L3B1Ymxpc2hgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXG4gICAgICogXG4gICAgICogQHBhcmFtIGJvZHkgXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVEYWlseUJ1ZGdldChib2R5OiBVcGRhdGVEYWlseUJ1ZGdldFJlcXVlc3QsIGlkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8RHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgdXBkYXRlRGFpbHlCdWRnZXQoYm9keTogVXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8RHBhRW5nYWdlbWVudFJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwZGF0ZURhaWx5QnVkZ2V0KGJvZHk6IFVwZGF0ZURhaWx5QnVkZ2V0UmVxdWVzdCwgaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgdXBkYXRlRGFpbHlCdWRnZXQoYm9keTogVXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVEYWlseUJ1ZGdldC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZURhaWx5QnVkZ2V0LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4oJ3Bvc3QnLGAke3RoaXMuYmFzZVBhdGh9L2RwYS1lbmdhZ2VtZW50LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfS9kYWlseS1idWRnZXRgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYm9keSBcbiAgICAgKiBAcGFyYW0gaWQgXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZURwYUVuZ2FnZW1lbnQoYm9keTogRHBhRW5nYWdlbWVudFJlcXVlc3QsIGlkOiBudW1iZXIsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8RHBhRW5nYWdlbWVudFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgdXBkYXRlRHBhRW5nYWdlbWVudChib2R5OiBEcGFFbmdhZ2VtZW50UmVxdWVzdCwgaWQ6IG51bWJlciwgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PERwYUVuZ2FnZW1lbnRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGRhdGVEcGFFbmdhZ2VtZW50KGJvZHk6IERwYUVuZ2FnZW1lbnRSZXF1ZXN0LCBpZDogbnVtYmVyLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVEcGFFbmdhZ2VtZW50LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlRHBhRW5nYWdlbWVudC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICcqLyonXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxEcGFFbmdhZ2VtZW50UmVzcG9uc2U+KCdwb3N0JyxgJHt0aGlzLmJhc2VQYXRofS9kcGEtZW5nYWdlbWVudC8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export var DpaCampaignResponse;
|
|
2
2
|
(function (DpaCampaignResponse) {
|
|
3
3
|
DpaCampaignResponse.StatusEnum = {
|
|
4
|
-
|
|
4
|
+
DRAFT: 'DRAFT',
|
|
5
5
|
INITIALIZED: 'INITIALIZED',
|
|
6
6
|
RUNNING: 'RUNNING',
|
|
7
7
|
UPDATING: 'UPDATING',
|
|
8
8
|
PAUSED: 'PAUSED'
|
|
9
9
|
};
|
|
10
10
|
})(DpaCampaignResponse || (DpaCampaignResponse = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHBhQ2FtcGFpZ25SZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2RwYUNhbXBhaWduUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEJBLE1BQU0sS0FBVyxtQkFBbUIsQ0FTbkM7QUFURCxXQUFpQixtQkFBbUI7SUFFbkIsOEJBQVUsR0FBRztRQUN0QixLQUFLLEVBQUUsT0FBcUI7UUFDNUIsV0FBVyxFQUFFLGFBQTJCO1FBQ3hDLE9BQU8sRUFBRSxTQUF1QjtRQUNoQyxRQUFRLEVBQUUsVUFBd0I7UUFDbEMsTUFBTSxFQUFFLFFBQXNCO0tBQ2pDLENBQUM7QUFDTixDQUFDLEVBVGdCLG1CQUFtQixLQUFuQixtQkFBbUIsUUFTbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFxuICogXG4gKlxuICogXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBDcmVhdGl2ZURldGFpbHMgfSBmcm9tICcuL2NyZWF0aXZlRGV0YWlscyc7XG5pbXBvcnQgeyBFeGNsdXNpb25SdWxlIH0gZnJvbSAnLi9leGNsdXNpb25SdWxlJztcbmltcG9ydCB7IEZhY2Vib29rRGV0YWlscyB9IGZyb20gJy4vZmFjZWJvb2tEZXRhaWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBEcGFDYW1wYWlnblJlc3BvbnNlIHsgXG4gICAgY2FtcGFpZ25JZD86IG51bWJlcjtcbiAgICBwdWJsaXNoZXJJZD86IG51bWJlcjtcbiAgICBleGNsdXNpb25SdWxlcz86IEFycmF5PEV4Y2x1c2lvblJ1bGU+O1xuICAgIHN0YXR1cz86IERwYUNhbXBhaWduUmVzcG9uc2UuU3RhdHVzRW51bTtcbiAgICB0YXJnZXRDb3VudHJpZXM/OiBBcnJheTxzdHJpbmc+O1xuICAgIGFkUGxhY2VtZW50cz86IEFycmF5PHN0cmluZz47XG4gICAgbW9iaWxlT1NzPzogQXJyYXk8c3RyaW5nPjtcbiAgICBmYkRldGFpbHM/OiBGYWNlYm9va0RldGFpbHM7XG4gICAgY3JlYXRpdmVEZXRhaWxzPzogQ3JlYXRpdmVEZXRhaWxzO1xufVxuZXhwb3J0IG5hbWVzcGFjZSBEcGFDYW1wYWlnblJlc3BvbnNlIHtcbiAgICBleHBvcnQgdHlwZSBTdGF0dXNFbnVtID0gJ0RSQUZUJyB8ICdJTklUSUFMSVpFRCcgfCAnUlVOTklORycgfCAnVVBEQVRJTkcnIHwgJ1BBVVNFRCc7XG4gICAgZXhwb3J0IGNvbnN0IFN0YXR1c0VudW0gPSB7XG4gICAgICAgIERSQUZUOiAnRFJBRlQnIGFzIFN0YXR1c0VudW0sXG4gICAgICAgIElOSVRJQUxJWkVEOiAnSU5JVElBTElaRUQnIGFzIFN0YXR1c0VudW0sXG4gICAgICAgIFJVTk5JTkc6ICdSVU5OSU5HJyBhcyBTdGF0dXNFbnVtLFxuICAgICAgICBVUERBVElORzogJ1VQREFUSU5HJyBhcyBTdGF0dXNFbnVtLFxuICAgICAgICBQQVVTRUQ6ICdQQVVTRUQnIGFzIFN0YXR1c0VudW1cbiAgICB9O1xufSJdfQ==
|
|
@@ -14,7 +14,7 @@ export var DpaEngagementResponse;
|
|
|
14
14
|
MARGIN: 'MARGIN'
|
|
15
15
|
};
|
|
16
16
|
DpaEngagementResponse.StatusEnum = {
|
|
17
|
-
|
|
17
|
+
DRAFT: 'DRAFT',
|
|
18
18
|
INITIALIZED: 'INITIALIZED',
|
|
19
19
|
RUNNING: 'RUNNING',
|
|
20
20
|
UPDATING: 'UPDATING',
|
|
@@ -29,4 +29,4 @@ export var DpaEngagementResponse;
|
|
|
29
29
|
ImageOverlay: 'image-overlay'
|
|
30
30
|
};
|
|
31
31
|
})(DpaEngagementResponse || (DpaEngagementResponse = {}));
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHBhRW5nYWdlbWVudFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvZHBhRW5nYWdlbWVudFJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlEQSxNQUFNLEtBQVcscUJBQXFCLENBaUNyQztBQWpDRCxXQUFpQixxQkFBcUI7SUFFckIsK0JBQVMsR0FBRztRQUNyQixNQUFNLEVBQUUsUUFBcUI7UUFDN0IsTUFBTSxFQUFFLFFBQXFCO0tBQ2hDLENBQUM7SUFFVyxvQ0FBYyxHQUFHO1FBQzFCLEdBQUcsRUFBRSxLQUF1QjtRQUM1QixHQUFHLEVBQUUsS0FBdUI7UUFDNUIsR0FBRyxFQUFFLEtBQXVCO1FBQzVCLEdBQUcsRUFBRSxLQUF1QjtRQUM1QixtQkFBbUIsRUFBRSx5QkFBMkM7UUFDaEUsbUJBQW1CLEVBQUUseUJBQTJDO1FBQ2hFLE1BQU0sRUFBRSxRQUEwQjtLQUNyQyxDQUFDO0lBRVcsZ0NBQVUsR0FBRztRQUN0QixLQUFLLEVBQUUsT0FBcUI7UUFDNUIsV0FBVyxFQUFFLGFBQTJCO1FBQ3hDLE9BQU8sRUFBRSxTQUF1QjtRQUNoQyxRQUFRLEVBQUUsVUFBd0I7UUFDbEMsTUFBTSxFQUFFLFFBQXNCO0tBQ2pDLENBQUM7SUFFVyxrQ0FBWSxHQUFHO1FBQ3hCLElBQUksRUFBRSxNQUFzQjtRQUM1QixXQUFXLEVBQUUsZUFBK0I7UUFDNUMsS0FBSyxFQUFFLE9BQXVCO1FBQzlCLGFBQWEsRUFBRSxnQkFBZ0M7UUFDL0Msa0JBQWtCLEVBQUUscUJBQXFDO1FBQ3pELFlBQVksRUFBRSxlQUErQjtLQUNoRCxDQUFDO0FBQ04sQ0FBQyxFQWpDZ0IscUJBQXFCLEtBQXJCLHFCQUFxQixRQWlDckMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFxuICogXG4gKlxuICogXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBDcmVhdGl2ZURldGFpbHMgfSBmcm9tICcuL2NyZWF0aXZlRGV0YWlscyc7XG5pbXBvcnQgeyBFeGNsdXNpb25SdWxlIH0gZnJvbSAnLi9leGNsdXNpb25SdWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBEcGFFbmdhZ2VtZW50UmVzcG9uc2UgeyBcbiAgICBpZD86IG51bWJlcjtcbiAgICBjYW1wYWlnbklkPzogbnVtYmVyO1xuICAgIGZhY2Vib29rQ2FtcGFpZ25JZD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGJhbm5lcklkPzogbnVtYmVyO1xuICAgIHJ1bkJ5PzogRHBhRW5nYWdlbWVudFJlc3BvbnNlLlJ1bkJ5RW51bTtcbiAgICBwYXlvdXRUeXBlPzogRHBhRW5nYWdlbWVudFJlc3BvbnNlLlBheW91dFR5cGVFbnVtO1xuICAgIHB1Ymxpc2hlcklkPzogbnVtYmVyO1xuICAgIGJpZFZhbHVlPzogbnVtYmVyO1xuICAgIGRhaWx5QnVkZ2V0PzogbnVtYmVyO1xuICAgIHByb2ZpdE1hcmdpblBlcmNlbnQ/OiBudW1iZXI7XG4gICAgcHBhVGFyZ2V0PzogbnVtYmVyO1xuICAgIGF1ZGllbmNlQ2F0ZWdvcmllcz86IEFycmF5PHN0cmluZz47XG4gICAgYXVkaWVuY2VNaW5pbXVtQWdlPzogbnVtYmVyO1xuICAgIGF1ZGllbmNlTWF4aW11bUFnZT86IG51bWJlcjtcbiAgICBhdWRpZW5jZUdlbmRlcnM/OiBBcnJheTxzdHJpbmc+O1xuICAgIGV4Y2x1c2lvblJ1bGVzPzogQXJyYXk8RXhjbHVzaW9uUnVsZT47XG4gICAgc3RhdHVzPzogRHBhRW5nYWdlbWVudFJlc3BvbnNlLlN0YXR1c0VudW07XG4gICAgdGFyZ2V0Q291bnRyaWVzPzogQXJyYXk8c3RyaW5nPjtcbiAgICBhZFBsYWNlbWVudHM/OiBBcnJheTxzdHJpbmc+O1xuICAgIG1vYmlsZU9Tcz86IEFycmF5PHN0cmluZz47XG4gICAgY3JlYXRpdmVGb3JtYXQ/OiBzdHJpbmc7XG4gICAgY3JlYXRpdmVEZXRhaWxzPzogQ3JlYXRpdmVEZXRhaWxzO1xuICAgIGlzSW50ZWxsaWJpZEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzTWFya2V0RmVlZGJhY2tFbmFibGVkPzogYm9vbGVhbjtcbiAgICBpc0ZlZWRSZWFkeT86IGJvb2xlYW47XG4gICAgaXNBdWRpZW5jZVJlYWR5PzogYm9vbGVhbjtcbiAgICBjYW1wYWlnblN0YXR1cz86IGJvb2xlYW47XG4gICAgZmVlZERldGFpbHM/OiBzdHJpbmc7XG4gICAgdGVtcGxhdGU/OiBEcGFFbmdhZ2VtZW50UmVzcG9uc2UuVGVtcGxhdGVFbnVtO1xuICAgIGNyZWF0ZWRPbj86IERhdGU7XG4gICAgY3JlYXRlZEJ5PzogbnVtYmVyO1xuICAgIHVwZGF0ZWRPbj86IERhdGU7XG4gICAgdXBkYXRlZEJ5PzogbnVtYmVyO1xuICAgIHRhcmdldENwYVVzZD86IG51bWJlcjtcbiAgICBpc01pZ3JhdGVkPzogYm9vbGVhbjtcbiAgICBsb2dvUG9zaXRpb24/OiBzdHJpbmc7XG4gICAgc3RhcnREYXRlPzogRGF0ZTtcbiAgICBlbmREYXRlPzogRGF0ZTtcbiAgICBqb3VybmV5SWQ/OiBudW1iZXI7XG4gICAgYWNjb3VudE5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgbmFtZXNwYWNlIERwYUVuZ2FnZW1lbnRSZXNwb25zZSB7XG4gICAgZXhwb3J0IHR5cGUgUnVuQnlFbnVtID0gJ0NMSUVOVCcgfCAnVklaVVJZJztcbiAgICBleHBvcnQgY29uc3QgUnVuQnlFbnVtID0ge1xuICAgICAgICBDTElFTlQ6ICdDTElFTlQnIGFzIFJ1bkJ5RW51bSxcbiAgICAgICAgVklaVVJZOiAnVklaVVJZJyBhcyBSdW5CeUVudW1cbiAgICB9O1xuICAgIGV4cG9ydCB0eXBlIFBheW91dFR5cGVFbnVtID0gJ0NQTScgfCAnQ1BDJyB8ICdDUEEnIHwgJ0NQUycgfCAnQ1BBIC0gQ2xpZW50IEF0dHJpYnV0ZWQnIHwgJ0NQUyAtIENsaWVudCBBdHRyaWJ1dGVkJyB8ICdNQVJHSU4nO1xuICAgIGV4cG9ydCBjb25zdCBQYXlvdXRUeXBlRW51bSA9IHtcbiAgICAgICAgQ1BNOiAnQ1BNJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgQ1BDOiAnQ1BDJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgQ1BBOiAnQ1BBJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgQ1BTOiAnQ1BTJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgQ1BBQ2xpZW50QXR0cmlidXRlZDogJ0NQQSAtIENsaWVudCBBdHRyaWJ1dGVkJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgQ1BTQ2xpZW50QXR0cmlidXRlZDogJ0NQUyAtIENsaWVudCBBdHRyaWJ1dGVkJyBhcyBQYXlvdXRUeXBlRW51bSxcbiAgICAgICAgTUFSR0lOOiAnTUFSR0lOJyBhcyBQYXlvdXRUeXBlRW51bVxuICAgIH07XG4gICAgZXhwb3J0IHR5cGUgU3RhdHVzRW51bSA9ICdEUkFGVCcgfCAnSU5JVElBTElaRUQnIHwgJ1JVTk5JTkcnIHwgJ1VQREFUSU5HJyB8ICdQQVVTRUQnO1xuICAgIGV4cG9ydCBjb25zdCBTdGF0dXNFbnVtID0ge1xuICAgICAgICBEUkFGVDogJ0RSQUZUJyBhcyBTdGF0dXNFbnVtLFxuICAgICAgICBJTklUSUFMSVpFRDogJ0lOSVRJQUxJWkVEJyBhcyBTdGF0dXNFbnVtLFxuICAgICAgICBSVU5OSU5HOiAnUlVOTklORycgYXMgU3RhdHVzRW51bSxcbiAgICAgICAgVVBEQVRJTkc6ICdVUERBVElORycgYXMgU3RhdHVzRW51bSxcbiAgICAgICAgUEFVU0VEOiAnUEFVU0VEJyBhcyBTdGF0dXNFbnVtXG4gICAgfTtcbiAgICBleHBvcnQgdHlwZSBUZW1wbGF0ZUVudW0gPSAnbm9uZScgfCAndGV4dC1vbi1pbWFnZScgfCAncHJpY2UnIHwgJ3BlcmNlbnRhZ2Vfb2ZmJyB8ICdzdHJpa2V0aHJvdWdoX3ByaWNlJyB8ICdpbWFnZS1vdmVybGF5JztcbiAgICBleHBvcnQgY29uc3QgVGVtcGxhdGVFbnVtID0ge1xuICAgICAgICBOb25lOiAnbm9uZScgYXMgVGVtcGxhdGVFbnVtLFxuICAgICAgICBUZXh0T25JbWFnZTogJ3RleHQtb24taW1hZ2UnIGFzIFRlbXBsYXRlRW51bSxcbiAgICAgICAgUHJpY2U6ICdwcmljZScgYXMgVGVtcGxhdGVFbnVtLFxuICAgICAgICBQZXJjZW50YWdlT2ZmOiAncGVyY2VudGFnZV9vZmYnIGFzIFRlbXBsYXRlRW51bSxcbiAgICAgICAgU3RyaWtldGhyb3VnaFByaWNlOiAnc3RyaWtldGhyb3VnaF9wcmljZScgYXMgVGVtcGxhdGVFbnVtLFxuICAgICAgICBJbWFnZU92ZXJsYXk6ICdpbWFnZS1vdmVybGF5JyBhcyBUZW1wbGF0ZUVudW1cbiAgICB9O1xufSJdfQ==
|
package/esm2020/model/models.mjs
CHANGED
|
@@ -18,4 +18,5 @@ export * from './pageDpaEngagementResponse';
|
|
|
18
18
|
export * from './pagePackageDetailResponse';
|
|
19
19
|
export * from './pageableObject';
|
|
20
20
|
export * from './sortObject';
|
|
21
|
-
|
|
21
|
+
export * from './updateDailyBudgetRequest';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRTZXREZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VEZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYnVzaW5lc3NHZW9SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbXBhaWduUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3VudHJ5UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVDYW1wYWlnblJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZURldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kcGFDYW1wYWlnblJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9kcGFDYW1wYWlnblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHBhRW5nYWdlbWVudFJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9kcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9leGNsdXNpb25SdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFjZWJvb2tEZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2VPdmVybGF5U3BlY0RldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWNrYWdlRGV0YWlsUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlQ2FtcGFpZ25SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VEcGFFbmdhZ2VtZW50UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlUGFja2FnZURldGFpbFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZWFibGVPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0T2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0JztcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZWFibGVPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9wYWdlYWJsZU9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBcbiAqIFxuICpcbiAqIFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgU29ydE9iamVjdCB9IGZyb20gJy4vc29ydE9iamVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZWFibGVPYmplY3QgeyBcbiAgICBzb3J0PzogQXJyYXk8U29ydE9iamVjdD47XG4gICAgcGFnZU51bWJlcj86IG51bWJlcjtcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgICB1bnBhZ2VkPzogYm9vbGVhbjtcbiAgICBwYWdlZD86IGJvb2xlYW47XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xufSJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
*
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by the swagger code generator program.
|
|
9
|
+
* https://github.com/swagger-api/swagger-codegen.git
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvdXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFxuICogXG4gKlxuICogXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlRGFpbHlCdWRnZXRSZXF1ZXN0IHsgXG4gICAgZGFpbHlCdWRnZXQ6IG51bWJlcjtcbn0iXX0=
|
|
@@ -556,6 +556,28 @@ class DpaEngagementControllerService {
|
|
|
556
556
|
}
|
|
557
557
|
return false;
|
|
558
558
|
}
|
|
559
|
+
activateDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
560
|
+
if (id === null || id === undefined) {
|
|
561
|
+
throw new Error('Required parameter id was null or undefined when calling activateDpaEngagement.');
|
|
562
|
+
}
|
|
563
|
+
let headers = this.defaultHeaders;
|
|
564
|
+
// to determine the Accept header
|
|
565
|
+
let httpHeaderAccepts = [
|
|
566
|
+
'*/*'
|
|
567
|
+
];
|
|
568
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
569
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
570
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
571
|
+
}
|
|
572
|
+
// to determine the Content-Type header
|
|
573
|
+
const consumes = [];
|
|
574
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/activate`, {
|
|
575
|
+
withCredentials: this.configuration.withCredentials,
|
|
576
|
+
headers: headers,
|
|
577
|
+
observe: observe,
|
|
578
|
+
reportProgress: reportProgress
|
|
579
|
+
});
|
|
580
|
+
}
|
|
559
581
|
createDpaEngagement(body, observe = 'body', reportProgress = false) {
|
|
560
582
|
if (body === null || body === undefined) {
|
|
561
583
|
throw new Error('Required parameter body was null or undefined when calling createDpaEngagement.');
|
|
@@ -666,6 +688,28 @@ class DpaEngagementControllerService {
|
|
|
666
688
|
reportProgress: reportProgress
|
|
667
689
|
});
|
|
668
690
|
}
|
|
691
|
+
pauseDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
692
|
+
if (id === null || id === undefined) {
|
|
693
|
+
throw new Error('Required parameter id was null or undefined when calling pauseDpaEngagement.');
|
|
694
|
+
}
|
|
695
|
+
let headers = this.defaultHeaders;
|
|
696
|
+
// to determine the Accept header
|
|
697
|
+
let httpHeaderAccepts = [
|
|
698
|
+
'*/*'
|
|
699
|
+
];
|
|
700
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
701
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
702
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
703
|
+
}
|
|
704
|
+
// to determine the Content-Type header
|
|
705
|
+
const consumes = [];
|
|
706
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/pause`, {
|
|
707
|
+
withCredentials: this.configuration.withCredentials,
|
|
708
|
+
headers: headers,
|
|
709
|
+
observe: observe,
|
|
710
|
+
reportProgress: reportProgress
|
|
711
|
+
});
|
|
712
|
+
}
|
|
669
713
|
publishDpaEngagement(id, observe = 'body', reportProgress = false) {
|
|
670
714
|
if (id === null || id === undefined) {
|
|
671
715
|
throw new Error('Required parameter id was null or undefined when calling publishDpaEngagement.');
|
|
@@ -688,6 +732,38 @@ class DpaEngagementControllerService {
|
|
|
688
732
|
reportProgress: reportProgress
|
|
689
733
|
});
|
|
690
734
|
}
|
|
735
|
+
updateDailyBudget(body, id, observe = 'body', reportProgress = false) {
|
|
736
|
+
if (body === null || body === undefined) {
|
|
737
|
+
throw new Error('Required parameter body was null or undefined when calling updateDailyBudget.');
|
|
738
|
+
}
|
|
739
|
+
if (id === null || id === undefined) {
|
|
740
|
+
throw new Error('Required parameter id was null or undefined when calling updateDailyBudget.');
|
|
741
|
+
}
|
|
742
|
+
let headers = this.defaultHeaders;
|
|
743
|
+
// to determine the Accept header
|
|
744
|
+
let httpHeaderAccepts = [
|
|
745
|
+
'*/*'
|
|
746
|
+
];
|
|
747
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
748
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
749
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
750
|
+
}
|
|
751
|
+
// to determine the Content-Type header
|
|
752
|
+
const consumes = [
|
|
753
|
+
'application/json'
|
|
754
|
+
];
|
|
755
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
756
|
+
if (httpContentTypeSelected != undefined) {
|
|
757
|
+
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
758
|
+
}
|
|
759
|
+
return this.httpClient.request('post', `${this.basePath}/dpa-engagement/${encodeURIComponent(String(id))}/daily-budget`, {
|
|
760
|
+
body: body,
|
|
761
|
+
withCredentials: this.configuration.withCredentials,
|
|
762
|
+
headers: headers,
|
|
763
|
+
observe: observe,
|
|
764
|
+
reportProgress: reportProgress
|
|
765
|
+
});
|
|
766
|
+
}
|
|
691
767
|
updateDpaEngagement(body, id, observe = 'body', reportProgress = false) {
|
|
692
768
|
if (body === null || body === undefined) {
|
|
693
769
|
throw new Error('Required parameter body was null or undefined when calling updateDpaEngagement.');
|
|
@@ -910,7 +986,7 @@ var CampaignResponse;
|
|
|
910
986
|
var DpaCampaignResponse;
|
|
911
987
|
(function (DpaCampaignResponse) {
|
|
912
988
|
DpaCampaignResponse.StatusEnum = {
|
|
913
|
-
|
|
989
|
+
DRAFT: 'DRAFT',
|
|
914
990
|
INITIALIZED: 'INITIALIZED',
|
|
915
991
|
RUNNING: 'RUNNING',
|
|
916
992
|
UPDATING: 'UPDATING',
|
|
@@ -934,7 +1010,7 @@ var DpaEngagementResponse;
|
|
|
934
1010
|
MARGIN: 'MARGIN'
|
|
935
1011
|
};
|
|
936
1012
|
DpaEngagementResponse.StatusEnum = {
|
|
937
|
-
|
|
1013
|
+
DRAFT: 'DRAFT',
|
|
938
1014
|
INITIALIZED: 'INITIALIZED',
|
|
939
1015
|
RUNNING: 'RUNNING',
|
|
940
1016
|
UPDATING: 'UPDATING',
|