@experteam-mx/ngx-services 18.7.8 → 18.7.10
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/esm2022/lib/apis/api-discounts.service.mjs +222 -0
- package/esm2022/lib/apis/api-invoices.service.mjs +52 -1
- package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +2 -0
- package/esm2022/lib/apis/models/api-discounts.types.mjs +2 -0
- package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +1 -1
- package/esm2022/lib/apis/models/api-invoices.types.mjs +1 -1
- package/esm2022/lib/apis/models/api.models.mjs +1 -1
- package/esm2022/lib/ngx-services.models.mjs +1 -1
- package/esm2022/public-api.mjs +5 -2
- package/fesm2022/experteam-mx-ngx-services.mjs +270 -1
- package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
- package/lib/apis/api-discounts.service.d.ts +152 -0
- package/lib/apis/api-invoices.service.d.ts +37 -1
- package/lib/apis/models/api-discounts.interfaces.d.ts +74 -0
- package/lib/apis/models/api-discounts.types.d.ts +83 -0
- package/lib/apis/models/api-invoices.interfaces.d.ts +8 -3
- package/lib/apis/models/api-invoices.types.d.ts +16 -1
- package/lib/apis/models/api.models.d.ts +8 -8
- package/lib/ngx-services.models.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class ApiDiscountsService {
|
|
6
|
+
environments;
|
|
7
|
+
http;
|
|
8
|
+
constructor(environments, http) {
|
|
9
|
+
this.environments = environments;
|
|
10
|
+
this.http = http;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Retrieves the URL for the shipments API from the environment configurations.
|
|
14
|
+
*
|
|
15
|
+
* @return {string} The URL of the shipments API.
|
|
16
|
+
*/
|
|
17
|
+
get url() {
|
|
18
|
+
return this.environments.apiDiscounts ?? '';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fetches available discounts based on the provided query parameters.
|
|
22
|
+
*
|
|
23
|
+
* @param {QueryParams} params - The query parameters used to filter and retrieve discounts.
|
|
24
|
+
* @return {Observable<DiscountsOut>} An Observable that emits the retrieved discounts data.
|
|
25
|
+
*/
|
|
26
|
+
getDiscounts(params) {
|
|
27
|
+
return this.http.get(`${this.url}/discounts`, { params })
|
|
28
|
+
.pipe(map(({ data }) => data));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sends a request to create or update discounts on the server.
|
|
32
|
+
*
|
|
33
|
+
* @param {DiscountIn} body - The discount information to be submitted.
|
|
34
|
+
* @return {Observable<DiscountOut>} An Observable emitting the server's response containing the created or updated discount details.
|
|
35
|
+
*/
|
|
36
|
+
postDiscounts(body) {
|
|
37
|
+
return this.http.post(`${this.url}/discounts`, body)
|
|
38
|
+
.pipe(map(({ data }) => data));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Updates the discount information for a specific item.
|
|
42
|
+
*
|
|
43
|
+
* @param {number} id - The unique identifier of the item whose discount is to be updated.
|
|
44
|
+
* @param {DiscountIn} body - The payload containing the updated discount details.
|
|
45
|
+
* @return {Observable<DiscountOut>} An observable emitting the updated discount details.
|
|
46
|
+
*/
|
|
47
|
+
putDiscounts(id, body) {
|
|
48
|
+
return this.http.put(`${this.url}/discounts/${id}`, body)
|
|
49
|
+
.pipe(map(({ data }) => data));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Retrieves the top customers based on the provided query parameters.
|
|
53
|
+
*
|
|
54
|
+
* @param {QueryParams} params - The query parameters to filter and sort the top customers.
|
|
55
|
+
* @return {Observable<TopCustomersOut>} An observable emitting the list of top customers.
|
|
56
|
+
*/
|
|
57
|
+
getTopCustomers(params) {
|
|
58
|
+
return this.http.get(`${this.url}/top-customers`, { params })
|
|
59
|
+
.pipe(map(({ data }) => data));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sends a POST request to load the top customer data in the system, using the provided input.
|
|
63
|
+
* Transforms the API response to extract the data field containing the discount information.
|
|
64
|
+
*
|
|
65
|
+
* @param {OperationsLoadTopCustomerV2In} body - The input payload containing the company country ID and the file.
|
|
66
|
+
* @param {number} body.company_country_id - The ID of the company's country.
|
|
67
|
+
* @param {File} body.file - The file containing data to be processed.
|
|
68
|
+
* @return {Observable<DiscountOut>} An observable containing the discount output information.
|
|
69
|
+
*/
|
|
70
|
+
postOperationsLoadTopCustomerV2(body) {
|
|
71
|
+
const formData = new FormData();
|
|
72
|
+
formData.append('company_country_id', String(body.company_country_id));
|
|
73
|
+
formData.append('file', body.file);
|
|
74
|
+
return this.http.post(`${this.url}/operations/load-top-customer/V2`, formData)
|
|
75
|
+
.pipe(map(({ data }) => data));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Fetches the loyalty periods based on the provided query parameters.
|
|
79
|
+
*
|
|
80
|
+
* @param {QueryParams} params - An object containing query parameters to filter the periods.
|
|
81
|
+
* @return {Observable<LoyaltyPeriodsOut>} An observable that emits the fetched loyalty periods.
|
|
82
|
+
*/
|
|
83
|
+
getLoyaltyPeriods(params) {
|
|
84
|
+
return this.http.get(`${this.url}/loyalty-periods`, { params })
|
|
85
|
+
.pipe(map(({ data }) => data));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Retrieves the loyalty period details for the given ID.
|
|
89
|
+
*
|
|
90
|
+
* @param {number} id - The unique identifier of the loyalty period to retrieve.
|
|
91
|
+
* @return {Observable<LoyaltyPeriodOut>} An observable emitting the loyalty period details.
|
|
92
|
+
*/
|
|
93
|
+
getLoyaltyPeriod(id) {
|
|
94
|
+
return this.http.get(`${this.url}/loyalty-periods/${id}`)
|
|
95
|
+
.pipe(map(({ data }) => data));
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Sends a PUT request to update the loyalty period with the provided data.
|
|
99
|
+
*
|
|
100
|
+
* @param {LoyaltyPeriodIn} body - The data for the loyalty period to be updated.
|
|
101
|
+
* @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period data.
|
|
102
|
+
*/
|
|
103
|
+
postLoyaltyPeriod(body) {
|
|
104
|
+
return this.http.put(`${this.url}/loyalty-periods`, body)
|
|
105
|
+
.pipe(map(({ data }) => data));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Updates the loyalty period for a specified ID with the provided data.
|
|
109
|
+
*
|
|
110
|
+
* @param {number} id - The unique identifier of the loyalty period to update.
|
|
111
|
+
* @param {LoyaltyPeriodIn} body - An object containing the updated details of the loyalty period.
|
|
112
|
+
* @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period details.
|
|
113
|
+
*/
|
|
114
|
+
putLoyaltyPeriod(id, body) {
|
|
115
|
+
return this.http.put(`${this.url}/loyalty-periods/${id}`, body)
|
|
116
|
+
.pipe(map(({ data }) => data));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Retrieves the loyalty rules based on the provided query parameters.
|
|
120
|
+
*
|
|
121
|
+
* @param {QueryParams} params - The query parameters to filter the loyalty rules.
|
|
122
|
+
* @return {Observable<LoyaltyRulesOut>} An observable containing the loyalty rules output.
|
|
123
|
+
*/
|
|
124
|
+
getLoyaltyRules(params) {
|
|
125
|
+
return this.http.get(`${this.url}/loyalty-rules`, { params })
|
|
126
|
+
.pipe(map(({ data }) => data));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Retrieves a specific loyalty rule based on the provided ID.
|
|
130
|
+
*
|
|
131
|
+
* @param {number} id - The unique identifier of the loyalty rule to retrieve.
|
|
132
|
+
* @return {Observable<LoyaltyRuleOut>} An observable that emits the details of the specified loyalty rule.
|
|
133
|
+
*/
|
|
134
|
+
getLoyaltyRule(id) {
|
|
135
|
+
return this.http.get(`${this.url}/loyalty-rules/${id}`)
|
|
136
|
+
.pipe(map(({ data }) => data));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Sends a request to add or update a loyalty rule.
|
|
140
|
+
*
|
|
141
|
+
* @param {LoyaltyRuleIn} body - The loyalty rule data to be sent to the server.
|
|
142
|
+
* @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule details.
|
|
143
|
+
*/
|
|
144
|
+
postLoyaltyRule(body) {
|
|
145
|
+
return this.http.put(`${this.url}/loyalty-rules`, body)
|
|
146
|
+
.pipe(map(({ data }) => data));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Updates an existing loyalty rule with the provided data.
|
|
150
|
+
*
|
|
151
|
+
* @param {number} id - The unique identifier of the loyalty rule to update.
|
|
152
|
+
* @param {LoyaltyRuleIn} body - The data to update the loyalty rule with.
|
|
153
|
+
* @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule.
|
|
154
|
+
*/
|
|
155
|
+
putLoyaltyRule(id, body) {
|
|
156
|
+
return this.http.put(`${this.url}/loyalty-rules/${id}`, body)
|
|
157
|
+
.pipe(map(({ data }) => data));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Fetches customer restrictions based on the provided query parameters.
|
|
161
|
+
*
|
|
162
|
+
* @param {QueryParams} params - The query parameters to filter customer restrictions.
|
|
163
|
+
* @return {Observable<CustomerRestrictionsOut>} An observable that emits the customer restrictions data.
|
|
164
|
+
*/
|
|
165
|
+
getCustomerRestrictions(params) {
|
|
166
|
+
return this.http.get(`${this.url}/customer-restrictions`, { params })
|
|
167
|
+
.pipe(map(({ data }) => data));
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Retrieves customer restriction details for a given customer ID.
|
|
171
|
+
*
|
|
172
|
+
* @param {number} id - The unique identifier of the customer.
|
|
173
|
+
* @return {Observable<CustomerRestrictionOut>} An observable containing the customer restriction details.
|
|
174
|
+
*/
|
|
175
|
+
getCustomerRestriction(id) {
|
|
176
|
+
return this.http.get(`${this.url}/customer-restrictions/${id}`)
|
|
177
|
+
.pipe(map(({ data }) => data));
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Sends a request to apply a restriction to a customer.
|
|
181
|
+
*
|
|
182
|
+
* @param {CustomerRestrictionIn} body - The restriction details to be applied to the customer.
|
|
183
|
+
* @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.
|
|
184
|
+
*/
|
|
185
|
+
postCustomerRestriction(body) {
|
|
186
|
+
return this.http.put(`${this.url}/customer-restrictions`, body)
|
|
187
|
+
.pipe(map(({ data }) => data));
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Updates customer restrictions using the provided ID and data.
|
|
191
|
+
*
|
|
192
|
+
* @param {number} id - The unique identifier of the customer restriction to be updated.
|
|
193
|
+
* @param {LoyaltyRuleIn} body - The data object containing the customer restriction details to be updated.
|
|
194
|
+
* @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.
|
|
195
|
+
*/
|
|
196
|
+
putCustomerRestriction(id, body) {
|
|
197
|
+
return this.http.put(`${this.url}/customer-restrictions/${id}`, body)
|
|
198
|
+
.pipe(map(({ data }) => data));
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Deletes a customer restriction by its ID.
|
|
202
|
+
*
|
|
203
|
+
* @param {number} id - The unique identifier of the customer restriction to delete.
|
|
204
|
+
* @return {Observable<{}>} An Observable that emits the result of the deletion operation.
|
|
205
|
+
*/
|
|
206
|
+
deleteCustomerRestriction(id) {
|
|
207
|
+
return this.http.delete(`${this.url}/customer-restrictions/${id}`)
|
|
208
|
+
.pipe(map(({ data }) => data));
|
|
209
|
+
}
|
|
210
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
211
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, providedIn: 'root' });
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, decorators: [{
|
|
214
|
+
type: Injectable,
|
|
215
|
+
args: [{
|
|
216
|
+
providedIn: 'root'
|
|
217
|
+
}]
|
|
218
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
219
|
+
type: Inject,
|
|
220
|
+
args: ['env']
|
|
221
|
+
}] }, { type: i1.HttpClient }] });
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWRpc2NvdW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQXNCdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUVMO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQTtJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUUsSUFBZ0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJ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SSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBOU5VLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDdXN0b21lclJlc3RyaWN0aW9uSW4sXHJcbiAgQ3VzdG9tZXJSZXN0cmljdGlvbk91dCxcclxuICBDdXN0b21lclJlc3RyaWN0aW9uc091dCxcclxuICBEaXNjb3VudEluLFxyXG4gIERpc2NvdW50T3V0LFxyXG4gIERpc2NvdW50c091dCxcclxuICBMb3lhbHR5UGVyaW9kSW4sXHJcbiAgTG95YWx0eVBlcmlvZE91dCxcclxuICBMb3lhbHR5UGVyaW9kc091dCxcclxuICBMb3lhbHR5UnVsZUluLFxyXG4gIExveWFsdHlSdWxlT3V0LFxyXG4gIExveWFsdHlSdWxlc091dCxcclxuICBPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjJJbixcclxuICBUb3BDdXN0b21lcnNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktZGlzY291bnRzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRGlzY291bnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBzaGlwbWVudHMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBzaGlwbWVudHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpRGlzY291bnRzID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGF2YWlsYWJsZSBkaXNjb3VudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgcmV0cmlldmUgZGlzY291bnRzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGlzY291bnRzT3V0Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgZGlzY291bnRzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RGlzY291bnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxEaXNjb3VudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RGlzY291bnRzT3V0Pj4oYCR7dGhpcy51cmx9L2Rpc2NvdW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgZGlzY291bnRzIG9uIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0Rpc2NvdW50SW59IGJvZHkgLSBUaGUgZGlzY291bnQgaW5mb3JtYXRpb24gdG8gYmUgc3VibWl0dGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGlzY291bnRPdXQ+fSBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBzZXJ2ZXIncyByZXNwb25zZSBjb250YWluaW5nIHRoZSBjcmVhdGVkIG9yIHVwZGF0ZWQgZGlzY291bnQgZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0RGlzY291bnRzIChib2R5OiBEaXNjb3VudEluKTogT2JzZXJ2YWJsZTxEaXNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8RGlzY291bnRPdXQ+PihgJHt0aGlzLnVybH0vZGlzY291bnRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBkaXNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBpdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIGRpc2NvdW50IGlzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtEaXNjb3VudElufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgdXBkYXRlZCBkaXNjb3VudCBkZXRhaWxzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RGlzY291bnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIGRpc2NvdW50IGRldGFpbHMuXHJcbiAgICovXHJcbiAgcHV0RGlzY291bnRzIChpZDogbnVtYmVyLCBib2R5OiBEaXNjb3VudEluKTogT2JzZXJ2YWJsZTxEaXNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxEaXNjb3VudE91dD4+KGAke3RoaXMudXJsfS9kaXNjb3VudHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgdG9wIGN1c3RvbWVycyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgc29ydCB0aGUgdG9wIGN1c3RvbWVycy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvcEN1c3RvbWVyc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGxpc3Qgb2YgdG9wIGN1c3RvbWVycy5cclxuICAgKi9cclxuICBnZXRUb3BDdXN0b21lcnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFRvcEN1c3RvbWVyc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxUb3BDdXN0b21lcnNPdXQ+PihgJHt0aGlzLnVybH0vdG9wLWN1c3RvbWVyc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gbG9hZCB0aGUgdG9wIGN1c3RvbWVyIGRhdGEgaW4gdGhlIHN5c3RlbSwgdXNpbmcgdGhlIHByb3ZpZGVkIGlucHV0LlxyXG4gICAqIFRyYW5zZm9ybXMgdGhlIEFQSSByZXNwb25zZSB0byBleHRyYWN0IHRoZSBkYXRhIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGRpc2NvdW50IGluZm9ybWF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjJJbn0gYm9keSAtIFRoZSBpbnB1dCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGNvbXBhbnkgY291bnRyeSBJRCBhbmQgdGhlIGZpbGUuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGJvZHkuY29tcGFueV9jb3VudHJ5X2lkIC0gVGhlIElEIG9mIHRoZSBjb21wYW55J3MgY291bnRyeS5cclxuICAgKiBAcGFyYW0ge0ZpbGV9IGJvZHkuZmlsZSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgZGF0YSB0byBiZSBwcm9jZXNzZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZGlzY291bnQgb3V0cHV0IGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjIgKGJvZHk6IE9wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMkluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKVxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb21wYW55X2NvdW50cnlfaWQnLCBTdHJpbmcoYm9keS5jb21wYW55X2NvdW50cnlfaWQpKVxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgYm9keS5maWxlKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbnMvbG9hZC10b3AtY3VzdG9tZXIvVjJgLCBmb3JtRGF0YSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBsb3lhbHR5IHBlcmlvZHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBBbiBvYmplY3QgY29udGFpbmluZyBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcGVyaW9kcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmZXRjaGVkIGxveWFsdHkgcGVyaW9kcy5cclxuICAgKi9cclxuICBnZXRMb3lhbHR5UGVyaW9kcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZHNPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1wZXJpb2RzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxveWFsdHkgcGVyaW9kIGRldGFpbHMgZm9yIHRoZSBnaXZlbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBwZXJpb2QgdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgbG95YWx0eSBwZXJpb2QgZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRMb3lhbHR5UGVyaW9kIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExveWFsdHlQZXJpb2RPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1wZXJpb2RzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSB0aGUgbG95YWx0eSBwZXJpb2Qgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7TG95YWx0eVBlcmlvZElufSBib2R5IC0gVGhlIGRhdGEgZm9yIHRoZSBsb3lhbHR5IHBlcmlvZCB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHBlcmlvZCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RMb3lhbHR5UGVyaW9kIChib2R5OiBMb3lhbHR5UGVyaW9kSW4pOiBPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxveWFsdHkgcGVyaW9kIGZvciBhIHNwZWNpZmllZCBJRCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBsb3lhbHR5IHBlcmlvZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UGVyaW9kSW59IGJvZHkgLSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgdXBkYXRlZCBkZXRhaWxzIG9mIHRoZSBsb3lhbHR5IHBlcmlvZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgbG95YWx0eSBwZXJpb2QgZGV0YWlscy5cclxuICAgKi9cclxuICBwdXRMb3lhbHR5UGVyaW9kIChpZDogbnVtYmVyLCBib2R5OiBMb3lhbHR5UGVyaW9kSW4pOiBPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbG95YWx0eSBydWxlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgbG95YWx0eSBydWxlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbG95YWx0eSBydWxlcyBvdXRwdXQuXHJcbiAgICovXHJcbiAgZ2V0TG95YWx0eVJ1bGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVzT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcnVsZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIHNwZWNpZmljIGxveWFsdHkgcnVsZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxveWFsdHkgcnVsZSB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZXRhaWxzIG9mIHRoZSBzcGVjaWZpZWQgbG95YWx0eSBydWxlLlxyXG4gICAqL1xyXG4gIGdldExveWFsdHlSdWxlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZU91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXJ1bGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gYWRkIG9yIHVwZGF0ZSBhIGxveWFsdHkgcnVsZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7TG95YWx0eVJ1bGVJbn0gYm9keSAtIFRoZSBsb3lhbHR5IHJ1bGUgZGF0YSB0byBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHJ1bGUgZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0TG95YWx0eVJ1bGUgKGJvZHk6IExveWFsdHlSdWxlSW4pOiBPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPExveWFsdHlSdWxlT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcnVsZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgbG95YWx0eSBydWxlIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxveWFsdHkgcnVsZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UnVsZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBsb3lhbHR5IHJ1bGUgd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcnVsZS5cclxuICAgKi9cclxuICBwdXRMb3lhbHR5UnVsZSAoaWQ6IG51bWJlciwgYm9keTogTG95YWx0eVJ1bGVJbik6IE9ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBjdXN0b21lciByZXN0cmljdGlvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgY3VzdG9tZXIgcmVzdHJpY3Rpb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVyUmVzdHJpY3Rpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIGZvciBhIGdpdmVuIGN1c3RvbWVyIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXN0b21lci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJSZXN0cmljdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIGFwcGx5IGEgcmVzdHJpY3Rpb24gdG8gYSBjdXN0b21lci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tZXJSZXN0cmljdGlvbklufSBib2R5IC0gVGhlIHJlc3RyaWN0aW9uIGRldGFpbHMgdG8gYmUgYXBwbGllZCB0byB0aGUgY3VzdG9tZXIuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXNwb25zZSB3aXRoIHRoZSBhcHBsaWVkIGN1c3RvbWVyIHJlc3RyaWN0aW9uLlxyXG4gICAqL1xyXG4gIHBvc3RDdXN0b21lclJlc3RyaWN0aW9uIChib2R5OiBDdXN0b21lclJlc3RyaWN0aW9uSW4pOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgY3VzdG9tZXIgcmVzdHJpY3Rpb25zIHVzaW5nIHRoZSBwcm92aWRlZCBJRCBhbmQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge0xveWFsdHlSdWxlSW59IGJvZHkgLSBUaGUgZGF0YSBvYmplY3QgY29udGFpbmluZyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBwdXRDdXN0b21lclJlc3RyaWN0aW9uIChpZDogbnVtYmVyLCBib2R5OiBDdXN0b21lclJlc3RyaWN0aW9uSW4pOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBjdXN0b21lciByZXN0cmljdGlvbiBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0aW9uIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVDdXN0b21lclJlc3RyaWN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -285,6 +285,57 @@ export class ApiInvoicesService {
|
|
|
285
285
|
return this.http.put(`${this.url}/payment-type-field-accounts/${id}`, body)
|
|
286
286
|
.pipe(map(({ data }) => data));
|
|
287
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Fetches tolerance data from the server based on the provided query parameters.
|
|
290
|
+
*
|
|
291
|
+
* @param {QueryParams} params - The parameters to use for querying tolerances.
|
|
292
|
+
* @return {Observable<TolerancesOut>} An observable emitting the tolerance data.
|
|
293
|
+
*/
|
|
294
|
+
getTolerances(params) {
|
|
295
|
+
return this.http.get(`${this.url}/tolerances`, { params })
|
|
296
|
+
.pipe(map(({ data }) => data));
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Retrieves the tolerance detail for a given identifier.
|
|
300
|
+
*
|
|
301
|
+
* @param {number} id - The unique identifier for the tolerance to retrieve.
|
|
302
|
+
* @return {Observable<ToleranceOut>} An observable containing the tolerance data.
|
|
303
|
+
*/
|
|
304
|
+
getTolerance(id) {
|
|
305
|
+
return this.http.get(`${this.url}/tolerances/${id}`)
|
|
306
|
+
.pipe(map(({ data }) => data));
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Sends a request to update or create a tolerance record using the provided data.
|
|
310
|
+
*
|
|
311
|
+
* @param {ToleranceIn} body - The tolerance input object containing the data to be sent in the request.
|
|
312
|
+
* @return {Observable<ToleranceOut>} An observable that emits the updated or created tolerance output object.
|
|
313
|
+
*/
|
|
314
|
+
postTolerance(body) {
|
|
315
|
+
return this.http.post(`${this.url}/tolerances`, body)
|
|
316
|
+
.pipe(map(({ data }) => data));
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Updates the tolerance with the specified ID using the provided data.
|
|
320
|
+
*
|
|
321
|
+
* @param {number} id - The unique identifier of the tolerance to update.
|
|
322
|
+
* @param {ToleranceIn} body - The data to update the tolerance with.
|
|
323
|
+
* @return {Observable<ToleranceOut>} An observable containing the updated tolerance information.
|
|
324
|
+
*/
|
|
325
|
+
putTolerance(id, body) {
|
|
326
|
+
return this.http.put(`${this.url}/tolerances/${id}`, body)
|
|
327
|
+
.pipe(map(({ data }) => data));
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Deletes the tolerance entry corresponding to the given ID.
|
|
331
|
+
*
|
|
332
|
+
* @param {number} id - The unique identifier of the tolerance to be deleted.
|
|
333
|
+
* @return {Observable<{}>} An Observable that emits the result of the delete operation.
|
|
334
|
+
*/
|
|
335
|
+
deleteTolerance(id) {
|
|
336
|
+
return this.http.delete(`${this.url}/tolerances/${id}`)
|
|
337
|
+
.pipe(map(({ data }) => data));
|
|
338
|
+
}
|
|
288
339
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInvoicesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
289
340
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInvoicesService, providedIn: 'root' });
|
|
290
341
|
}
|
|
@@ -297,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
297
348
|
type: Inject,
|
|
298
349
|
args: ['env']
|
|
299
350
|
}] }, { type: i1.HttpClient }] });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFvQ3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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VUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENhbmNlbFBheW1lbnRSZWNlaXB0SW4sXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dCxcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlSW4sXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlT3V0LFxyXG4gIENvdW50cnlQYXltZW50VHlwZXNPdXQsXHJcbiAgQ3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0LFxyXG4gIEN1c3RvbWVyc091dCxcclxuICBDdXN0b21lclR5cGVzT3V0LFxyXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4sXHJcbiAgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQsXHJcbiAgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ0luLFxyXG4gIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQsXHJcbiAgT3BlcmF0aW9uRG9jdW1lbnRJbixcclxuICBPcGVyYXRpb25Eb2N1bWVudE91dCxcclxuICBPcGVyYXRpb25QcmludERvY3VtZW50T3V0LFxyXG4gIE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbixcclxuICBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4sXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluLFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dCxcclxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0LFxyXG4gIFBheW1lbnRUeXBlc091dCxcclxuICBQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0LFxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW52b2ljZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIEFQSSBVUkwgZm9yIGludm9pY2VzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQVBJIFVSTCBmb3IgaW52b2ljZXMuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlJbnZvaWNlc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYW4gb3BlcmF0aW9uIGRvY3VtZW50IHRvIHRoZSBzZXJ2ZXIgYW5kIHByb2Nlc3NlcyB0aGUgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbkRvY3VtZW50SW59IGJvZHkgLSBUaGUgaW5wdXQgZGF0YSBmb3IgdGhlIG9wZXJhdGlvbiBkb2N1bWVudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBwcm9jZXNzZWQgb3BlcmF0aW9uIGRvY3VtZW50IG91dHB1dC5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uRG9jdW1lbnQgKGJvZHk6IE9wZXJhdGlvbkRvY3VtZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25Eb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vZG9jdW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYW5kIHJldHVybnMgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhIGZvciBhIGdpdmVuIGNvbGxlY3Rpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gZm9yIHdoaWNoIHRoZSByZWNlaXB0IG5lZWRzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFByaW50Q29sbGVjdGlvblJlY2VpcHQgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvY29sbGVjdGlvbi1yZWNlaXB0LyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uIGJ5IHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cclxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb24gZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIGluZm9ybWF0aW9uIGZvciB0aGUgYWNjb3VudCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJvY2Vzc2VkIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uQWNjb3VudFBheW1lbnQgKGJvZHk6IE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vYWNjb3VudC1wYXltZW50YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxzIGEgcGF5bWVudCByZWNlaXB0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dC5cclxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYSBkb2N1bWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNhbmNlbCB0aGUgcGF5bWVudCByZWNlaXB0LCBlbmNhcHN1bGF0ZWQgaW4gYSBDYW5jZWxQYXltZW50UmVjZWlwdEluIG9iamVjdC5cclxuICAgKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbi4gRW1pdHMgYW4gZW1wdHkgb2JqZWN0IG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbERvY3VtZW50IChib2R5OiBDYW5jZWxQYXltZW50UmVjZWlwdEluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1kb2N1bWVudGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY2FuY2VsIGJpbGxpbmcgZm9yIGEgc3BlY2lmaWMgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2FuY2VsbGF0aW9uIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5pbnZvaWNlSWQgLSBUaGUgSUQgb2YgdGhlIGludm9pY2UgdG8gYmUgY2FuY2VsZWQuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcy5ib2R5IC0gQWRkaXRpb25hbCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbiBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbEJpbGxpbmcgKHsgaW52b2ljZUlkLCAuLi5ib2R5IH06IE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vY2FuY2VsLWJpbGxpbmcvJHtpbnZvaWNlSWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjdXN0b21lciB0eXBlcyBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VzdG9tZXIgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgZG9jdW1lbnQgdHlwZXMgc3BlY2lmaWMgdG8gYSBnaXZlbiBjb3VudHJ5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgY29udGFpbmluZyBjb3VudHJ5LXNwZWNpZmljIGluZm9ybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgZG9jdW1lbnQgdHlwZXMgYXZhaWxhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGNvdW50cnkuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJEb2N1bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLWNvdW50cnktZG9jdW1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgY3VzdG9tZXIgaW52b2ljZSBkZXRhaWxzIGZpbHRlcmVkIGJ5IGEgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbn0gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbHRlciBwYXJhbWV0ZXJzIGZvciB0aGUgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyBjdXN0b21lciBpbnZvaWNlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lcnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYW4gZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW59IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWwgKHBhcmFtczogT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZXNzZXMgYW4gZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbn0gcGFyYW1zIC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxQYXltZW50IChwYXJhbXM6IE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vc2hpcG1lbnQvZXh0ZXJuYWwvcGF5bWVudGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYmlsbGluZyBvcGVyYXRpb24gcHJpbnQgZGV0YWlscyBmb3IgYSBnaXZlbiBkb2N1bWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkb2N1bWVudElkIC0gVGhlIElEIG9mIHRoZSBkb2N1bWVudCBmb3Igd2hpY2ggdG8gZmV0Y2ggdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludERvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJpbnQgYmlsbGluZyBvcGVyYXRpb24gZGV0YWlscyBmb3IgdGhlIHNwZWNpZmllZCBkb2N1bWVudC5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25QcmludERvY3VtZW50IChkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvZG9jdW1lbnQvJHtkb2N1bWVudElkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgY291bnRyeSBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlQYXltZW50VHlwZUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUNvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlIChib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmb3IgYSBnaXZlbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBzaG93IG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVBheW1lbnRUeXBlRmllbGRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVGaWVsZElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGQgKGJvZHk6IENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZS1maWVsZHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUZpZWxkSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZCAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgY2FyZCBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgY2FyZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSAoYm9keTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1jYXJkLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlIChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBhY2NvdW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgYWNjb3VudHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGF5bWVudFR5cGVGaWVsZEFjY291bnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50IHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWFjY291bnRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52b2ljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUF1Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsSUFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQXlCLENBQUUsRUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxHQUFHLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQzthQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFD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LEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQTNXVSxrQkFBa0Isa0JBRW5CLEtBQUs7NEdBRkosa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENhbmNlbFBheW1lbnRSZWNlaXB0SW4sXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbixcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dCxcclxuICBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlSW4sXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlT3V0LFxyXG4gIENvdW50cnlQYXltZW50VHlwZXNPdXQsXHJcbiAgQ3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0LFxyXG4gIEN1c3RvbWVyc091dCxcclxuICBDdXN0b21lclR5cGVzT3V0LFxyXG4gIE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4sXHJcbiAgT3BlcmF0aW9uQWNjb3VudFBheW1lbnRPdXQsXHJcbiAgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ0luLFxyXG4gIE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQsXHJcbiAgT3BlcmF0aW9uRG9jdW1lbnRJbixcclxuICBPcGVyYXRpb25Eb2N1bWVudE91dCxcclxuICBPcGVyYXRpb25QcmludERvY3VtZW50T3V0LFxyXG4gIE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbixcclxuICBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4sXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQsXHJcbiAgUGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZUluLFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dCxcclxuICBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0LFxyXG4gIFBheW1lbnRUeXBlc091dCxcclxuICBQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0LFxyXG4gIFRvbGVyYW5jZUluLFxyXG4gIFRvbGVyYW5jZU91dCxcclxuICBUb2xlcmFuY2VzT3V0LFxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW52b2ljZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIEFQSSBVUkwgZm9yIGludm9pY2VzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQVBJIFVSTCBmb3IgaW52b2ljZXMuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlJbnZvaWNlc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYW4gb3BlcmF0aW9uIGRvY3VtZW50IHRvIHRoZSBzZXJ2ZXIgYW5kIHByb2Nlc3NlcyB0aGUgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbkRvY3VtZW50SW59IGJvZHkgLSBUaGUgaW5wdXQgZGF0YSBmb3IgdGhlIG9wZXJhdGlvbiBkb2N1bWVudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBwcm9jZXNzZWQgb3BlcmF0aW9uIGRvY3VtZW50IG91dHB1dC5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uRG9jdW1lbnQgKGJvZHk6IE9wZXJhdGlvbkRvY3VtZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkRvY3VtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25Eb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vZG9jdW1lbnRgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYW5kIHJldHVybnMgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhIGZvciBhIGdpdmVuIGNvbGxlY3Rpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gZm9yIHdoaWNoIHRoZSByZWNlaXB0IG5lZWRzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gcmVjZWlwdCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFByaW50Q29sbGVjdGlvblJlY2VpcHQgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByaW50Q29sbGVjdGlvblJlY2VpcHRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UHJpbnRDb2xsZWN0aW9uUmVjZWlwdE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvY29sbGVjdGlvbi1yZWNlaXB0LyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBhY2NvdW50IHBheW1lbnQgb3BlcmF0aW9uIGJ5IHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cclxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb24gZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uQWNjb3VudFBheW1lbnRJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIGluZm9ybWF0aW9uIGZvciB0aGUgYWNjb3VudCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJvY2Vzc2VkIGFjY291bnQgcGF5bWVudCBvcGVyYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwb3N0T3BlcmF0aW9uQWNjb3VudFBheW1lbnQgKGJvZHk6IE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4pOiBPYnNlcnZhYmxlPE9wZXJhdGlvbkFjY291bnRQYXltZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vYWNjb3VudC1wYXltZW50YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxzIGEgcGF5bWVudCByZWNlaXB0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBpbnB1dC5cclxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjYW5jZWwgYSBkb2N1bWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNhbmNlbCB0aGUgcGF5bWVudCByZWNlaXB0LCBlbmNhcHN1bGF0ZWQgaW4gYSBDYW5jZWxQYXltZW50UmVjZWlwdEluIG9iamVjdC5cclxuICAgKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbi4gRW1pdHMgYW4gZW1wdHkgb2JqZWN0IG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbERvY3VtZW50IChib2R5OiBDYW5jZWxQYXltZW50UmVjZWlwdEluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9uL2NhbmNlbC1kb2N1bWVudGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY2FuY2VsIGJpbGxpbmcgZm9yIGEgc3BlY2lmaWMgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2FuY2VsbGF0aW9uIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5pbnZvaWNlSWQgLSBUaGUgSUQgb2YgdGhlIGludm9pY2UgdG8gYmUgY2FuY2VsZWQuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcy5ib2R5IC0gQWRkaXRpb25hbCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhbmNlbGxhdGlvbiBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbkNhbmNlbEJpbGxpbmcgKHsgaW52b2ljZUlkLCAuLi5ib2R5IH06IE9wZXJhdGlvbkNhbmNlbEJpbGxpbmdJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vY2FuY2VsLWJpbGxpbmcvJHtpbnZvaWNlSWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjdXN0b21lciB0eXBlcyBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VzdG9tZXIgdHlwZXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXN0b21lclR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgZG9jdW1lbnQgdHlwZXMgc3BlY2lmaWMgdG8gYSBnaXZlbiBjb3VudHJ5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgY29udGFpbmluZyBjb3VudHJ5LXNwZWNpZmljIGluZm9ybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgZG9jdW1lbnQgdHlwZXMgYXZhaWxhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGNvdW50cnkuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJEb2N1bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXN0b21lckRvY3VtZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJEb2N1bWVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLWNvdW50cnktZG9jdW1lbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgY3VzdG9tZXIgaW52b2ljZSBkZXRhaWxzIGZpbHRlcmVkIGJ5IGEgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW52b2ljZVR5cGVDdXN0b21QYXJhbXNJbn0gcGFyYW1zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbHRlciBwYXJhbWV0ZXJzIGZvciB0aGUgY3VzdG9tIGludm9pY2UgdHlwZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyBjdXN0b21lciBpbnZvaWNlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxyXG4gICAqL1xyXG4gIGdldEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VzdG9tZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyc091dD4+KGAke3RoaXMudXJsfS9jdXN0b21lcnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYW4gZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW59IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciB0aGUgZXh0ZXJuYWwgc2hpcG1lbnQgb3BlcmF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWwgKHBhcmFtczogT3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbEluKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi9zaGlwbWVudC9leHRlcm5hbGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZXNzZXMgYW4gZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbn0gcGFyYW1zIC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBleHRlcm5hbCBwYXltZW50IG9wZXJhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZXh0ZXJuYWwgcGF5bWVudCBvcGVyYXRpb24gZm9yIGEgc2hpcG1lbnQuXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxQYXltZW50IChwYXJhbXM6IE9wZXJhdGlvblNoaXBtZW50RXh0ZXJuYWxJbik6IE9ic2VydmFibGU8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uU2hpcG1lbnRFeHRlcm5hbE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vc2hpcG1lbnQvZXh0ZXJuYWwvcGF5bWVudGAsIHBhcmFtcylcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYmlsbGluZyBvcGVyYXRpb24gcHJpbnQgZGV0YWlscyBmb3IgYSBnaXZlbiBkb2N1bWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkb2N1bWVudElkIC0gVGhlIElEIG9mIHRoZSBkb2N1bWVudCBmb3Igd2hpY2ggdG8gZmV0Y2ggdGhlIHByaW50IGJpbGxpbmcgb3BlcmF0aW9uIGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25QcmludERvY3VtZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcHJpbnQgYmlsbGluZyBvcGVyYXRpb24gZGV0YWlscyBmb3IgdGhlIHNwZWNpZmllZCBkb2N1bWVudC5cclxuICAgKi9cclxuICBnZXRPcGVyYXRpb25QcmludERvY3VtZW50IChkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8T3BlcmF0aW9uUHJpbnREb2N1bWVudE91dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24vcHJpbnQvZG9jdW1lbnQvJHtkb2N1bWVudElkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgY291bnRyeSBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZS5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlQYXltZW50VHlwZUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUNvdW50cnlQYXltZW50VHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPENvdW50cnlQYXltZW50VHlwZU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeVBheW1lbnRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlIChib2R5OiBDb3VudHJ5UGF5bWVudFR5cGVJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmb3IgYSBnaXZlbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY291bnRyeSBwYXltZW50IHR5cGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBzaG93IG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5UGF5bWVudFR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBjdXN0b21pemUgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeVBheW1lbnRUeXBlRmllbGRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cnktcGF5bWVudC10eXBlLWZpZWxkc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5UGF5bWVudFR5cGVGaWVsZElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBjb3VudHJ5IHBheW1lbnQgdHlwZSBmaWVsZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGQgKGJvZHk6IENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4pOiBPYnNlcnZhYmxlPENvdW50cnlQYXltZW50VHlwZUZpZWxkT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDb3VudHJ5UGF5bWVudFR5cGVGaWVsZE91dD4+KGAke3RoaXMudXJsfS9jb3VudHJ5LXBheW1lbnQtdHlwZS1maWVsZHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIGNvdW50cnkgcGF5bWVudCB0eXBlIGZpZWxkIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlQYXltZW50VHlwZUZpZWxkSW59IGJvZHkgLSBUaGUgdXBkYXRlZCBkYXRhIGZvciB0aGUgY291bnRyeSBwYXltZW50IHR5cGUgZmllbGQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZCAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeVBheW1lbnRUeXBlRmllbGRJbik6IE9ic2VydmFibGU8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1wYXltZW50LXR5cGUtZmllbGRzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGFsbCBwYXltZW50IHR5cGVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcGF5bWVudCB0eXBlcyBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgY3VzdG9taXplIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgY2FyZCBmZXRjaGVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgKi9cclxuICBnZXRQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWNhcmQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgY2FyZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW59IGJvZHkgLSBUaGUgaW5wdXQgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgY3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSAoYm9keTogUGF5bWVudFR5cGVGaWVsZENhcmRUeXBlSW4pOiBPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1jYXJkLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBjYXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbn0gYm9keSAtIFRoZSB1cGRhdGVkIGRhdGEgZm9yIHRoZSBwYXltZW50IHR5cGUgZmllbGQgY2FyZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlIChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbik6IE9ic2VydmFibGU8UGF5bWVudFR5cGVGaWVsZENhcmRUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtY2FyZC10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgcGF5bWVudCB0eXBlIGZpZWxkcyBhY2NvdW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50c091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHBheW1lbnQgdHlwZSBmaWVsZHMgYWNjb3VudHMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0UGF5bWVudFR5cGVGaWVsZEFjY291bnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRzT3V0Pj4oYCR7dGhpcy51cmx9L3BheW1lbnQtdHlwZS1maWVsZC1hY2NvdW50c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50IHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGNyZWF0ZSBhIG5ldyBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgY3JlYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBwb3N0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQ+PihgJHt0aGlzLnVybH0vcGF5bWVudC10eXBlLWZpZWxkLWFjY291bnRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBwYXltZW50IHR5cGUgZmllbGQgYWNjb3VudCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXltZW50VHlwZUZpZWxkQWNjb3VudElufSBib2R5IC0gVGhlIHVwZGF0ZWQgZGF0YSBmb3IgdGhlIHBheW1lbnQgdHlwZSBmaWVsZCBhY2NvdW50LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFBheW1lbnRUeXBlRmllbGRBY2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeVBheW1lbnRUeXBlRmllbGRBY2NvdW50IChpZDogbnVtYmVyLCBib2R5OiBQYXltZW50VHlwZUZpZWxkQWNjb3VudEluKTogT2JzZXJ2YWJsZTxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQYXltZW50VHlwZUZpZWxkQWNjb3VudE91dD4+KGAke3RoaXMudXJsfS9wYXltZW50LXR5cGUtZmllbGQtYWNjb3VudHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdG9sZXJhbmNlIGRhdGEgZnJvbSB0aGUgc2VydmVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdG8gdXNlIGZvciBxdWVyeWluZyB0b2xlcmFuY2VzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9sZXJhbmNlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHRvbGVyYW5jZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFRvbGVyYW5jZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFRvbGVyYW5jZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlc091dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHRvbGVyYW5jZSBkZXRhaWwgZm9yIGEgZ2l2ZW4gaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRvbGVyYW5jZSB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdG9sZXJhbmNlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VG9sZXJhbmNlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VG9sZXJhbmNlT3V0Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byB1cGRhdGUgb3IgY3JlYXRlIGEgdG9sZXJhbmNlIHJlY29yZCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VG9sZXJhbmNlSW59IGJvZHkgLSBUaGUgdG9sZXJhbmNlIGlucHV0IG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUb2xlcmFuY2VPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgb3IgY3JlYXRlZCB0b2xlcmFuY2Ugb3V0cHV0IG9iamVjdC5cclxuICAgKi9cclxuICBwb3N0VG9sZXJhbmNlIChib2R5OiBUb2xlcmFuY2VJbik6IE9ic2VydmFibGU8VG9sZXJhbmNlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxUb2xlcmFuY2VPdXQ+PihgJHt0aGlzLnVybH0vdG9sZXJhbmNlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgdG9sZXJhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBJRCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdG9sZXJhbmNlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1RvbGVyYW5jZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSB0b2xlcmFuY2Ugd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRvbGVyYW5jZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCB0b2xlcmFuY2UgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgcHV0VG9sZXJhbmNlIChpZDogbnVtYmVyLCBib2R5OiBUb2xlcmFuY2VJbik6IE9ic2VydmFibGU8VG9sZXJhbmNlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFRvbGVyYW5jZU91dD4+KGAke3RoaXMudXJsfS90b2xlcmFuY2VzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIHRoZSB0b2xlcmFuY2UgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRvbGVyYW5jZSB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVUb2xlcmFuY2UgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L3RvbGVyYW5jZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1kaXNjb3VudHMuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlTGVzc0xhcmF2ZWxNb2RlbCwgTGFyYXZlbE1vZGVsIH0gZnJvbSAnLi9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBJZGVudGlmaWNhdGlvblR5cGUgfSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50IGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsXHJcbiAgYWNjb3VudF9udW1iZXI6IHN0cmluZ1xyXG4gIHBlcmNlbnRhZ2U6IHN0cmluZ1xyXG4gIHN0YXJ0X2RhdGU6IHN0cmluZ1xyXG4gIGVuZF9kYXRlOiBzdHJpbmcgfCBudWxsXHJcbiAgc3RhcnRfd2VpZ2h0OiBudW1iZXJcclxuICBlbmRfd2VpZ2h0OiBudW1iZXIgfCBudWxsXHJcbiAgc2hpcG1lbnRfc2NvcGVzOiBudW1iZXJbXVxyXG4gIGNvdW50cnlfcmVmZXJlbmNlX3Byb2R1Y3RzOiBudW1iZXJbXVxyXG4gIGFwcGxpZXNfdG9fYWxsX2xvY2F0aW9uczogYm9vbGVhblxyXG4gIGxvY2F0aW9uczogbnVtYmVyW10gfCBudWxsXHJcbiAgcmVmZXJlbmNlX3JlcXVpcmVkOiBib29sZWFuXHJcbiAgcmVmZXJlbmNlX3Jlc3RyaWN0aW9uOiBib29sZWFuIHwgbnVsbFxyXG4gIHJlZmVyZW5jZV9yZXN0cmljdGlvbl9wZXJpb2Q6IG51bWJlciB8IG51bGxcclxuICByZWZlcmVuY2VfcmVzdHJpY3Rpb25fYW1vdW50OiBudW1iZXIgfCBudWxsXHJcbiAgcmVmZXJlbmNlX3Jlc3RyaWN0aW9uX21lc3NhZ2U6IHN0cmluZyB8IG51bGxcclxuICBzaGlwbWVudF9zY29wZV9uYW1lczogc3RyaW5nXHJcbiAgYXBwbGllc190b19hbGxfbG9jYXRpb25zX2xhbmdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgcmVmZXJlbmNlX3JlcXVpcmVkX2xhbmdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgc3RhdHVzX2xhbmdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgYXBwbGllc190b19hbGxfbG9jYXRpb25zX2xhbmc6IHN0cmluZyB8IG51bGxcclxuICByZWZlcmVuY2VfcmVxdWlyZWRfbGFuZzogc3RyaW5nIHwgbnVsbFxyXG4gIHN0YXR1c19sYW5nOiBzdHJpbmcgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9wQ3VzdG9tZXIgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX2lkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvbl9udW1iZXI6IHN0cmluZ1xyXG4gIGNvbnRhY3RfbmFtZV8xOiBzdHJpbmdcclxuICBjb250YWN0X25hbWVfMjogc3RyaW5nXHJcbiAgY29udGFjdF9uYW1lXzM6IHN0cmluZ1xyXG4gIGVtYWlsOiBzdHJpbmdcclxuICBwaG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIGRpc2NvdW50X3BlcmNlbnRhZ2U6IHN0cmluZ1xyXG4gIGFjY291bnQ6IHN0cmluZyB8IG51bGxcclxuICBzaGlwbWVudF9zY29wZXM6IHN0cmluZyB8IG51bGxcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvbXBhbnlfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIGxldmVsOiBzdHJpbmcgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG95YWx0eVBlcmlvZCBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxuICBkYXlzOiBudW1iZXJcclxuICBzaGlwbWVudF9zY29wZXM6IG51bWJlcltdXHJcbiAgcHJvZHVjdHM6IHN0cmluZ1tdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG95YWx0eVJ1bGUgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGxveWFsdHlfcGVyaW9kX2lkOiBudW1iZXJcclxuICBtaW5fcXVhbnRpdHk6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eTogbnVtYmVyXHJcbiAgZGlzY291bnRfcGVyY2VudGFnZTogbnVtYmVyXHJcbiAgYWNjb3VudDogc3RyaW5nXHJcbiAgcHJvZHVjdHM6IHN0cmluZ1tdXHJcbiAgdmFsaWRfc2luY2U6IHN0cmluZ1xyXG4gIHZhbGlkX3VudGlsOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lclJlc3RyaWN0aW9uIGV4dGVuZHMgQWN0aXZlTGVzc0xhcmF2ZWxNb2RlbCB7XHJcbiAgaWRlbnRpZmljYXRpb25fdHlwZV9pZDogbnVtYmVyXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogSWRlbnRpZmljYXRpb25UeXBlXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktZGlzY291bnRzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lclJlc3RyaWN0aW9uLCBEaXNjb3VudCwgTG95YWx0eVBlcmlvZCwgTG95YWx0eVJ1bGUsIFRvcEN1c3RvbWVyIH0gZnJvbSAnLi9hcGktZGlzY291bnRzLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBEaXNjb3VudEluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIGFjY291bnRfbnVtYmVyOiBzdHJpbmdcclxuICBwZXJjZW50YWdlOiBudW1iZXJcclxuICBzdGFydF9kYXRlOiBzdHJpbmdcclxuICBlbmRfZGF0ZTogc3RyaW5nXHJcbiAgc3RhcnRfd2VpZ2h0OiBudW1iZXJcclxuICBlbmRfd2VpZ2h0OiBudW1iZXJcclxuICBzaGlwbWVudF9zY29wZXM6IG51bWJlcltdXHJcbiAgY291bnRyeV9yZWZlcmVuY2VfcHJvZHVjdHM6IG51bWJlcltdXHJcbiAgYXBwbGllc190b19hbGxfbG9jYXRpb25zOiBib29sZWFuXHJcbiAgbG9jYXRpb25zOiBudW1iZXJbXVxyXG4gIHJlZmVyZW5jZV9yZXF1aXJlZDogYm9vbGVhblxyXG4gIHJlZmVyZW5jZV9yZXN0cmljdGlvbjogYm9vbGVhblxyXG4gIHJlZmVyZW5jZV9yZXN0cmljdGlvbl9wZXJpb2Q6IG51bWJlclxyXG4gIHJlZmVyZW5jZV9yZXN0cmljdGlvbl9hbW91bnQ6IG51bWJlclxyXG4gIHJlZmVyZW5jZV9yZXN0cmljdGlvbl9tZXNzYWdlOiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgdHlwZSBEaXNjb3VudE91dCA9IHtcclxuICBkaXNjb3VudDogRGlzY291bnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGlzY291bnRzT3V0ID0ge1xyXG4gIGRpc2NvdW50czogRGlzY291bnRbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVG9wQ3VzdG9tZXJzT3V0ID0ge1xyXG4gIHRvcF9jdXN0b21lcnM6IFRvcEN1c3RvbWVyW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMkluID0ge1xyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgZmlsZTogRmlsZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMb3lhbHR5UGVyaW9kc091dCA9IHtcclxuICBsb3lhbHR5X3BlcmlvZHM6IExveWFsdHlQZXJpb2RbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTG95YWx0eVBlcmlvZEluID0ge1xyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgZGF5czogbnVtYmVyXHJcbiAgc2hpcG1lbnRfc2NvcGVzOiBudW1iZXJbXVxyXG4gIHByb2R1Y3RzOiBzdHJpbmdbXVxyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIExveWFsdHlQZXJpb2RPdXQgPSB7XHJcbiAgbG95YWx0eV9wZXJpb2Q6IExveWFsdHlQZXJpb2RcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTG95YWx0eVJ1bGVzT3V0ID0ge1xyXG4gIGxveWFsdHlfcnVsZXM6IExveWFsdHlSdWxlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExveWFsdHlSdWxlSW4gPSB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbG95YWx0eV9wZXJpb2RfaWQ6IG51bWJlclxyXG4gIG1pbl9xdWFudGl0eTogbnVtYmVyXHJcbiAgbWF4X3F1YW50aXR5OiBudW1iZXJcclxuICBkaXNjb3VudF9wZXJjZW50YWdlOiBudW1iZXJcclxuICBwcm9kdWN0czogc3RyaW5nW11cclxuICBhY2NvdW50OiBzdHJpbmdcclxuICB2YWxpZF9zaW5jZTogc3RyaW5nXHJcbiAgdmFsaWRfdW50aWw6IHN0cmluZ1xyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIExveWFsdHlSdWxlT3V0ID0ge1xyXG4gIGxveWFsdHlfcnVsZTogTG95YWx0eVJ1bGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJSZXN0cmljdGlvbnNPdXQgPSB7XHJcbiAgY3VzdG9tZXJfcmVzdHJpY3Rpb25zOiBDdXN0b21lclJlc3RyaWN0aW9uW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbWVyUmVzdHJpY3Rpb25JbiA9IHtcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX2lkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvbl9udW1iZXI6IHN0cmluZ1xyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbn1cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJSZXN0cmljdGlvbk91dCA9IHtcclxuICBjdXN0b21lcl9yZXN0cmljdGlvbjogQ3VzdG9tZXJSZXN0cmljdGlvblxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWludm9pY2VzLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhcmF2ZWxNb2RlbCwgVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBDdXJyZW5jeSwgSWRlbnRpZmljYXRpb25UeXBlIH0gZnJvbSAnLi9hcGktY2F0YWxvZy5pbnRlcmZhY2VzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudCBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgZG9jdW1lbnRfdHlwZV9yYW5nZV9pZDogbnVtYmVyXHJcbiAgZG9jdW1lbnRfbnVtYmVyOiBudW1iZXJcclxuICBkb2N1bWVudF9wcmVmaXg6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3N1ZmZpeDogc3RyaW5nXHJcbiAgZG9jdW1lbnRfbnVtYmVyX29yaWdpbmFsOiBudW1iZXJcclxuICBkb2N1bWVudF9wcmVmaXhfb3JpZ2luYWw6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3N1ZmZpeF9vcmlnaW5hbDogc3RyaW5nXHJcbiAgY3VzdG9tZXJfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgY3VzdG9tZXJfZW1haWw6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nXHJcbiAgY3VzdG9tZXJfaWRlbnRpZmljYXRpb25fdHlwZV9pZDogbnVtYmVyXHJcbiAgcHJvdmlkZXJfbmFtZTogc3RyaW5nXHJcbiAgcHJvdmlkZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyOiBudW1iZXJcclxuICBkb2N1bWVudF9hdXRob3JpemF0aW9uX251bWJlcjogc3RyaW5nXHJcbiAgcHJvdmlkZXJfZXh0cmFfZmllbGRzOiB7XHJcbiAgICBwaG9uZTogc3RyaW5nXHJcbiAgICBmYXg6IHN0cmluZ1xyXG4gIH1cclxuICBkb2N1bWVudF9pZDogbnVtYmVyXHJcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG4gIGV4dHJhX2ZpZWxkczoge1xyXG4gICAgb2JzZXJ2YXRpb246IHN0cmluZ1xyXG4gICAgZG9jdW1lbnRfZGF0ZTogc3RyaW5nXHJcbiAgfVxyXG4gIGN1c3RvbWVyX2FkZHJlc3NfbGluZTI6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2FkZHJlc3NfbGluZTM6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX3Bvc3RhbF9jb2RlOiBzdHJpbmdcclxuICBjdXN0b21lcl9zdGF0ZTogc3RyaW5nXHJcbiAgY3VzdG9tZXJfY291bnR5X25hbWU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2NpdHlfbmFtZTogc3RyaW5nXHJcbiAgY3VzdG9tZXJfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgc3RhdHVzOiBudW1iZXJcclxuICB1c2VyX2lkOiBudW1iZXJcclxuICBjdXN0b21lcl9mdWxsX25hbWU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX3Bob25lX2NvZGU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX3Bob25lX251bWJlcjogc3RyaW5nXHJcbiAgZ210X29mZnNldDogc3RyaW5nXHJcbiAgY3VzdG9tZXJfdHlwZV9pZDogbnVtYmVyXHJcbiAgY3VzdG9tZXJfZXh0cmFfZmllbGRzOiBzdHJpbmdcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIGV4Y2hhbmdlOiBudW1iZXJcclxuICBhdXRob3JpemF0aW9uX251bWJlcnM6IHN0cmluZ1xyXG4gIGV4dHJhX2ZpZWxkc19qc29uOiBzdHJpbmdcclxuICBwcm92aWRlcl9leHRyYV9maWVsZHNfanNvbjogc3RyaW5nXHJcbiAgZG9jdW1lbnRfdHlwZV9yYW5nZTogRG9jdW1lbnRUeXBlUmFuZ2VcclxuICBpdGVtczogRG9jdW1lbnRJdGVtW11cclxuICBkb2N1bWVudF9wYXltZW50czogRG9jdW1lbnRQYXltZW50W11cclxuICBwYXltZW50czogUGF5bWVudFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlUmFuZ2UgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGlkOiBudW1iZXJcclxuICBwcm92aWRlcl9pZDogbnVtYmVyXHJcbiAgbW9kZWxfdHlwZTogc3RyaW5nXHJcbiAgbW9kZWxfaWQ6IG51bWJlclxyXG4gIGluaXRfbnVtYmVyOiBudW1iZXJcclxuICBmaW5hbF9udW1iZXI6IG51bWJlclxyXG4gIGN1cnJlbnRfbnVtYmVyOiBudW1iZXJcclxuICB1c2VkX251bWJlcnM6IG51bWJlclxyXG4gIG1pbl91bnRpbF9tYWlsOiBudW1iZXJcclxuICBwcmVmaXg6IHN0cmluZ1xyXG4gIHNhcF9wcmVmaXg6IHN0cmluZ1xyXG4gIHN1ZmZpeDogc3RyaW5nXHJcbiAgc2FwX3N1ZmZpeDogc3RyaW5nXHJcbiAgZXh0ZXJuYWxfZ2VuZXJhdGVkOiBib29sZWFuXHJcbiAgYXV0aG9yaXphdGlvbl9udW1iZXI6IHN0cmluZ1xyXG4gIGVudmlyb25tZW50OiBzdHJpbmdcclxuICBpc19tYW51YWw6IGJvb2xlYW5cclxuICBhdXRvX2FjdGl2YXRpb246IGJvb2xlYW5cclxuICBhY3RpdmF0aW9uX2tleTogc3RyaW5nXHJcbiAgYXV0aG9yaXphdGlvbl9sYWJlbDogc3RyaW5nXHJcbiAgdmFsaWRfc2luY2U6IHN0cmluZ1xyXG4gIHZhbGlkX3VudGlsOiBzdHJpbmdcclxuICBjcmVhdGVkX2F0OiBzdHJpbmdcclxuICB1cGRhdGVkX2F0OiBzdHJpbmdcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5X2RvY3VtZW50X3R5cGVfaWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50SXRlbSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgaWQ6IG51bWJlclxyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBkZXRhaWxzOiB7XHJcbiAgICBhY2NvdW50OiBudW1iZXJcclxuICAgIGNvdW50cnlfcmVmZXJlbmNlX2N1cnJlbmN5X2lkOiBudW1iZXJcclxuICAgIGN1c3RvbWVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgfVxyXG4gIG1vZGVsX29yaWdpbjogc3RyaW5nXHJcbiAgbW9kZWxfdHlwZTogc3RyaW5nXHJcbiAgbW9kZWxfaWQ6IG51bWJlclxyXG4gIHF1YW50aXR5OiBudW1iZXJcclxuICB1bml0X3ByaWNlOiBudW1iZXJcclxuICBzdWJ0b3RhbDogbnVtYmVyXHJcbiAgdGF4X2RldGFpbDoge31cclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY3JlYXRlZF9hdDogc3RyaW5nXHJcbiAgdXBkYXRlZF9hdDogc3RyaW5nXHJcbiAgZGlzY291bnQ6IDBcclxuICBkZXRhaWxzX2pzb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50UGF5bWVudCBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgZG9jdW1lbnRfaWQ6IG51bWJlclxyXG4gIHBheW1lbnRfaWQ6IG51bWJlclxyXG4gIGFtb3VudDogbnVtYmVyXHJcbiAgcGF5bWVudDogUGF5bWVudFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnQgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGFtb3VudDogbnVtYmVyXHJcbiAgY291bnRyeV9yZWZlcmVuY2VfY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGV4Y2hhbmdlOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBkdWVfZGF0ZTogc3RyaW5nXHJcbiAgcmVjZWl2ZWQ6IG51bWJlclxyXG4gIHN0YXR1czogbnVtYmVyXHJcbiAgZGV0YWlsczoge31cclxuICB0cmFuc2FjdGlvbl9pZDogc3RyaW5nXHJcbiAgZ210X29mZnNldDogc3RyaW5nXHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIG9wZW5pbmdfaWQ6IG51bWJlclxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgZGV0YWlsc19qc29uOiBzdHJpbmdcclxuICBwYXltZW50X2FkanVzdG1lbnQ6IHt9XHJcbiAgcGl2b3Q6IHtcclxuICAgIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICAgIHBheW1lbnRfaWQ6IG51bWJlclxyXG4gICAgYW1vdW50OiBudW1iZXJcclxuICB9XHJcbiAgY291bnRyeVBheW1lbnRUeXBlOiBDb3VudHJ5UGF5bWVudFR5cGVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lciBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBudW1iZXJcclxuICBjb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIHBob25lX2NvZGU6IHN0cmluZ1xyXG4gIHBob25lX251bWJlcjogbnVtYmVyXHJcbiAgYmlydGhfZGF0ZTogc3RyaW5nXHJcbiAgcG9zdGFsX2NvZGU6IG51bWJlclxyXG4gIHN0YXRlOiBzdHJpbmdcclxuICBjb3VudHlfbmFtZTogc3RyaW5nXHJcbiAgY2l0eV9uYW1lOiBzdHJpbmdcclxuICBhZGRyZXNzX2xpbmUxOiBzdHJpbmdcclxuICBhZGRyZXNzX2xpbmUyOiBzdHJpbmdcclxuICBhZGRyZXNzX2xpbmUzOiBzdHJpbmdcclxuICBjb21wYW55X2lkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX2lkOiBudW1iZXJcclxuICBleHRyYV9maWVsZHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfVxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyX3R5cGVfaWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyVHlwZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgaWRlbnRpZmljYXRpb25fdHlwZV9jdXN0b21lcl90eXBlczogSWRlbnRpZmljYXRpb25UeXBlQ3VzdG9tZXJbXVxyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZUN1c3RvbWVyIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjdXN0b21lcl90eXBlX2lkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX2lkOiBudW1iZXJcclxuICBjdXN0b21lcl9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogSWRlbnRpZmljYXRpb25UeXBlXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeVBheW1lbnRUeXBlIGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBwYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGJpbGxpbmdfcGF5bWVudF9jb2RlOiBzdHJpbmdcclxuICBjYW5fdG9sZXJhbmNlOiBib29sZWFuXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRzOiBDb3VudHJ5UGF5bWVudFR5cGVGaWVsZFtdXHJcbiAgcGF5bWVudF90eXBlOiBQYXltZW50VHlwZVxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeVBheW1lbnRUeXBlRmllbGQgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2lkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbFxyXG4gIGZvcm1hdDogc3RyaW5nXHJcbiAgaXNfcmVxdWlyZWQ6IGJvb2xlYW5cclxuICBjYXRhbG9nOiBzdHJpbmdbXSB8IG51bGxcclxuICByZWdleDogc3RyaW5nIHwgbnVsbFxyXG4gIGlzX2ludGVyZmFjZTogYm9vbGVhblxyXG4gIGlzX2JhbmtfcmVmZXJlbmNlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudFR5cGUgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGZpZWxkczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXHJcbiAgfSxcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGUgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2lkOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBhY2NvdW50YWJsZV9hY2NvdW50OiBzdHJpbmdcclxuICBhY2NvdW50YWJsZV9hY2NvdW50X3VzZDogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRUeXBlRmllbGRBY2NvdW50IGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgYWNjb3VudDogc3RyaW5nXHJcbiAgYWNjb3VudGFibGVfYWNjb3VudDogc3RyaW5nXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5OiBDdXJyZW5jeVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRvbGVyYW5jZSBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgdG9sZXJhbmNlX3R5cGU6IG51bWJlclxyXG4gIG1pbl9hbW91bnQ6IG51bWJlclxyXG4gIG1heF9hbW91bnQ6IG51bWJlclxyXG4gIHRvbGVyYW5jZTogbnVtYmVyXHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludm9pY2VzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1pbnZvaWNlcy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb3VudHJ5UGF5bWVudFR5cGUsXHJcbiAgQ291bnRyeVBheW1lbnRUeXBlRmllbGQsXHJcbiAgQ3VzdG9tZXIsXHJcbiAgQ3VzdG9tZXJUeXBlLFxyXG4gIERvY3VtZW50LFxyXG4gIFBheW1lbnRUeXBlLFxyXG4gIFBheW1lbnRUeXBlRmllbGRBY2NvdW50LFxyXG4gIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZSxcclxuICBUb2xlcmFuY2VcclxufSBmcm9tICcuL2FwaS1pbnZvaWNlcy5pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBDdXN0b21lckNvdW50cnlEb2N1bWVudFR5cGUgfSBmcm9tICcuL2FwaS1iaWxsaW5nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvbkFjY291bnRQYXltZW50SW4ge1xyXG4gIGRvY3VtZW50X3R5cGVfcmFuZ2VfaWQ6IG51bWJlciB8IG51bGxcclxuICBkb2N1bWVudF9udW1iZXI6IHN0cmluZyB8IG51bGxcclxuICBvYnNlcnZhdGlvbjogc3RyaW5nIHwgbnVsbFxyXG4gIGRvY3VtZW50X2RhdGU6IHN0cmluZyB8IG51bGxcclxuICB0b3RhbF9hbW91bnQ6IG51bWJlclxyXG4gIGNvdW50cnlfcmVmZXJlbmNlX2N1cnJlbmN5X2lkOiBudW1iZXJcclxuICBjdXN0b21lcjoge1xyXG4gICAgY29tcGFueV9uYW1lOiBzdHJpbmdcclxuICAgIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgICBhY2NvdW50X251bWJlcjogc3RyaW5nXHJcbiAgICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICB9XHJcbiAgcGF5bWVudHM6IEFjY291bnRQYXltZW50W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQWNjb3VudFBheW1lbnQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfcmVmZXJlbmNlX2N1cnJlbmN5X2lkOiBudW1iZXJcclxuICBhbW91bnQ6IG51bWJlclxyXG4gIGV4Y2hhbmdlOiBzdHJpbmdcclxuICBkdWVfZGF0ZTogc3RyaW5nXHJcbiAgcmVjZWl2ZWQ6IG51bWJlclxyXG4gIHN0YXR1cz86IGJvb2xlYW5cclxuICBkZXRhaWxzPzoge31cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25BY2NvdW50UGF5bWVudE91dCB7XHJcbiAgZG9jdW1lbnQ6IERvY3VtZW50XHJcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmludENvbGxlY3Rpb25SZWNlaXB0T3V0ID0ge1xyXG4gIGNvbGxlY3Rpb25fcmVjZWlwdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbmNlbFBheW1lbnRSZWNlaXB0SW4gPSB7XHJcbiAgZG9jdW1lbnRfaWQ6IG51bWJlclxyXG4gIGlzX2NhbmNlbGVkX2ludm9pY2U6IGJvb2xlYW5cclxuICBjYW5jZWxsYXRpb25fcmVhc29uX2lkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ0luID0ge1xyXG4gIGludm9pY2VJZDogbnVtYmVyXHJcbiAgY2FuY2VsbGF0aW9uX3JlYXNvbl9pZDogbnVtYmVyXHJcbiAgY2FuY2VsX3BheW1lbnQ6IGJvb2xlYW5cclxuICBzZW5kX3NoaXBtZW50czogYm9vbGVhblxyXG4gIGxvY2FsX2NhbmNlbD86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uQ2FuY2VsQmlsbGluZ091dCA9IHtcclxuICBjcmVkaXROb3RlRG9jdW1lbnQ6IERvY3VtZW50IHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Eb2N1bWVudEluID0ge1xyXG4gIGNvdW50cnlfZG9jdW1lbnRfdHlwZV9pZDogbnVtYmVyXHJcbiAgZG9jdW1lbnRfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyOiB7XHJcbiAgICBjdXN0b21lcl90eXBlX2lkOiBudW1iZXJcclxuICAgIGNvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgICBmdWxsX25hbWU6IHN0cmluZ1xyXG4gICAgZW1haWw6IHN0cmluZ1xyXG4gICAgcGhvbmVfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gICAgcGhvbmVfbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgICBhZGRyZXNzX2xpbmUxOiBzdHJpbmcgfCBudWxsXHJcbiAgICBhZGRyZXNzX2xpbmUyOiBzdHJpbmcgfCBudWxsXHJcbiAgICBhZGRyZXNzX2xpbmUzOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZGVudGlmaWNhdGlvbl9udW1iZXI6IHN0cmluZ1xyXG4gICAgaWRlbnRpZmljYXRpb25fdHlwZV9pZDogbnVtYmVyXHJcbiAgICBwb3N0YWxfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gICAgc3RhdGU6IHN0cmluZyB8IG51bGxcclxuICAgIGNvdW50eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjaXR5X25hbWU6IHN0cmluZyB8IG51bGxcclxuICAgIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gICAgZXh0cmFfZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSB8IG51bGxcclxuICB9LFxyXG4gIGRvY3VtZW50X2V4dHJhX2ZpZWxkczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkRvY3VtZW50T3V0ID0ge1xyXG4gIGRvY3VtZW50OiBEb2N1bWVudFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJbnZvaWNlVHlwZUN1c3RvbVBhcmFtc0luID0ge1xyXG4gIGlkZW50aWZpY2F0aW9uTnVtYmVyOiBzdHJpbmdcclxuICBpZGVudGlmaWNhdGlvblR5cGVpZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wZXJhdGlvblByaW50RG9jdW1lbnRPdXQgPSB7XHJcbiAgZG9jdW1lbnQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21lclR5cGVzT3V0ID0ge1xyXG4gIGN1c3RvbWVyX3R5cGVzOiBDdXN0b21lclR5cGVbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJzT3V0ID0ge1xyXG4gIGN1c3RvbWVyczogQ3VzdG9tZXJbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsT3V0ID0ge1xyXG4gIGRvY3VtZW50OiBEb2N1bWVudFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25TaGlwbWVudEV4dGVybmFsSW4gPSB7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbWVyRG9jdW1lbnRUeXBlc091dCA9IHtcclxuICBjdXN0b21lcl9jb3VudHJ5X2RvY3VtZW50X3R5cGVzOiBDdXN0b21lckNvdW50cnlEb2N1bWVudFR5cGVbXTtcclxuICB0b3RhbDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5UGF5bWVudFR5cGVzT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlczogQ291bnRyeVBheW1lbnRUeXBlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZU91dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZTogQ291bnRyeVBheW1lbnRUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUluID0ge1xyXG4gIHBheW1lbnRfdHlwZV9pZDogbnVtYmVyXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgYmlsbGluZ19wYXltZW50X2NvZGU6IHN0cmluZ1xyXG4gIGNhbl90b2xlcmFuY2U6IGJvb2xlYW5cclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeVBheW1lbnRUeXBlRmllbGRzT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkczogQ291bnRyeVBheW1lbnRUeXBlRmllbGRbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeVBheW1lbnRUeXBlRmllbGRPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGQ6IENvdW50cnlQYXltZW50VHlwZUZpZWxkXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlQYXltZW50VHlwZUZpZWxkSW4gPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICBmb3JtYXQ6IHN0cmluZ1xyXG4gIGlzX3JlcXVpcmVkOiBib29sZWFuXHJcbiAgY2F0YWxvZzogW10gfCBudWxsXHJcbiAgaXNfaW50ZXJmYWNlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlc091dCA9IHtcclxuICBwYXltZW50X3R5cGVzOiBQYXltZW50VHlwZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVzT3V0ID0ge1xyXG4gIGNvdW50cnlfcGF5bWVudF90eXBlX2ZpZWxkX2NhcmRfdHlwZXM6IFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXltZW50VHlwZUZpZWxkQ2FyZFR5cGVJbiA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9pZDogbnVtYmVyXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgYWNjb3VudGFibGVfYWNjb3VudDogc3RyaW5nXHJcbiAgaXNfYWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZU91dCA9IHtcclxuICBjb3VudHJ5X3BheW1lbnRfdHlwZV9maWVsZF9jYXJkX3R5cGU6IFBheW1lbnRUeXBlRmllbGRDYXJkVHlwZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXltZW50VHlwZUZpZWxkQWNjb3VudHNPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRfYWNjb3VudHM6IFBheW1lbnRUeXBlRmllbGRBY2NvdW50W11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBheW1lbnRUeXBlRmllbGRBY2NvdW50SW4gPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRfaWQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGFjY291bnQ6IHN0cmluZ1xyXG4gIGFjY291bnRhYmxlX2FjY291bnQ6IHN0cmluZ1xyXG4gIGN1cnJlbmN5X2lkOiBudW1iZXJcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGF5bWVudFR5cGVGaWVsZEFjY291bnRPdXQgPSB7XHJcbiAgY291bnRyeV9wYXltZW50X3R5cGVfZmllbGRfYWNjb3VudDogUGF5bWVudFR5cGVGaWVsZEFjY291bnRcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVG9sZXJhbmNlc091dCA9IHtcclxuICB0b2xlcmFuY2VzOiBUb2xlcmFuY2VbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVG9sZXJhbmNlSW4gPSB7XHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxuICB0b2xlcmFuY2VfdHlwZTogbnVtYmVyXHJcbiAgbWluX2Ftb3VudDogbnVtYmVyXHJcbiAgbWF4X2Ftb3VudDogbnVtYmVyXHJcbiAgdG9sZXJhbmNlOiBudW1iZXJcclxuICBpc19hY3RpdmU6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgdHlwZSBUb2xlcmFuY2VPdXQgPSB7XHJcbiAgdG9sZXJhbmNlOiBUb2xlcmFuY2VcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGkubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcclxuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdmYWlsJyB8ICdlcnJvcidcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlTdWNjZXNzPFQ+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGkubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcclxuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdmYWlsJyB8ICdlcnJvcidcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlTdWNjZXNzPFQ+IGV4dGVuZHMgQXBpUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogJ3N1Y2Nlc3MnXHJcbiAgZGF0YTogVFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwaU1vZGVsIHtcclxuICBpZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFyYXZlbE1vZGVsIGV4dGVuZHMgQXBpTW9kZWwge1xyXG4gIGlzX2FjdGl2ZTogYm9vbGVhblxyXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUxlc3NMYXJhdmVsTW9kZWwgZXh0ZW5kcyBBcGlNb2RlbCB7XHJcbiAgY3JlYXRlZF9hdDogc3RyaW5nXHJcbiAgdXBkYXRlZF9hdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3ltZm9ueU1vZGVsIGV4dGVuZHMgQXBpTW9kZWwge1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgY3JlYXRlZEF0OiBzdHJpbmdcclxuICB1cGRhdGVkQXQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUxlc3NTeW1mb255TW9kZWwgZXh0ZW5kcyBBcGlNb2RlbCB7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmdcclxuICB1cGRhdGVkQXQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBRdWVyeVBhcmFtcyA9IHtcclxuICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25zIHtcclxuICBba2V5OiBzdHJpbmddOiB7XHJcbiAgICBbbGFuZ0NvZGU6IHN0cmluZ106IHN0cmluZ1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -8,4 +8,4 @@ import { InjectionToken } from '@angular/core';
|
|
|
8
8
|
* `Environment` type that defines the structure of the configuration.
|
|
9
9
|
*/
|
|
10
10
|
export const ENVIRONMENT_TOKEN = new InjectionToken('Environments token');
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNlcnZpY2VzLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9uZ3gtc2VydmljZXMubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUErQzlDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBYyxvQkFBb0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGVudmlyb25tZW50LlxyXG4gKiBUaGlzIHR5cGUgaW5jbHVkZXMgdmFyaW91cyBBUEkgZW5kcG9pbnQgVVJMcywgYXV0aGVudGljYXRpb24gZGV0YWlscywgY2FjaGluZyBvcHRpb25zLCBhbmQgb3RoZXIgcmVsZXZhbnQgc2V0dGluZ3MuXHJcbiAqXHJcbiAqIFByb3BlcnRpZXM6XHJcbiAqIC0gYXBpQ29tcGFuaWVzVXJsOiBUaGUgVVJMIGZvciB0aGUgY29tcGFuaWVzIEFQSSBlbmRwb2ludC5cclxuICogLSBhcGlJbnZvaWNlc1VybDogVGhlIFVSTCBmb3IgdGhlIGludm9pY2VzIEFQSSBlbmRwb2ludC5cclxuICogLSBhcGlSZXBvcnRzVXJsOiBUaGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZW5kcG9pbnQuXHJcbiAqIC0gYXBpU2VjdXJpdHlVcmw6IFRoZSBVUkwgZm9yIHRoZSBzZWN1cml0eS1yZWxhdGVkIEFQSSBlbmRwb2ludC5cclxuICogLSBhcGlTaGlwbWVudFVybDogVGhlIFVSTCBmb3IgdGhlIHNoaXBtZW50IEFQSSBlbmRwb2ludC5cclxuICogLSBhdXRoQ29va2llOiBUaGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRpb24gY29va2llIHVzZWQgZm9yIHVzZXIgc2Vzc2lvbnMuXHJcbiAqIC0gY2FjaGVUdGw6IE9wdGlvbmFsLiBTcGVjaWZpZXMgdGhlIHRpbWUtdG8tbGl2ZSAoVFRMKSBmb3IgY2FjaGVkIGl0ZW1zLlxyXG4gKiAtIHByaW50VXJsOiBPcHRpb25hbC4gVGhlIFVSTCB1c2VkIGZvciBnZW5lcmF0aW5nIG9yIGRvd25sb2FkaW5nIHByaW50YWJsZSBkb2N1bWVudHMuXHJcbiAqIC0gc2VjcmV0S2V5OiBBIHNlY3JldCBrZXkgdXNlZCBmb3IgYXV0aGVudGljYXRpb24gb3Igb3RoZXIgc2VjdXJlIG9wZXJhdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9IHtcclxuICBhcGlCaWxsaW5nRE8/OiBzdHJpbmdcclxuICBhcGlCaWxsaW5nTVg/OiBzdHJpbmdcclxuICBhcGlCaWxsaW5nUEE/OiBzdHJpbmdcclxuICBhcGlDYXNoT3BlcmF0aW9uc1VybD86IHN0cmluZ1xyXG4gIGFwaUNhdGFsb2dzVXJsPzogc3RyaW5nXHJcbiAgYXBpQ29tcGFuaWVzVXJsPzogc3RyaW5nXHJcbiAgYXBpQ29tcG9zaXRpb25Vcmw/OiBzdHJpbmdcclxuICBhcGlEaXNjb3VudHM/OiBzdHJpbmdcclxuICBhcGlFVG9vbHNBdXRvQmlsbGluZz86IHN0cmluZ1xyXG4gIGFwaUV4dGVybmFsT3BlcmF0aW9uc0tleT86IHN0cmluZ1xyXG4gIGFwaUV4dGVybmFsT3BlcmF0aW9uc1VybD86IHN0cmluZ1xyXG4gIGFwaUludmVudG9yaWVzVXJsPzogc3RyaW5nXHJcbiAgYXBpSW52b2ljZXNVcmw/OiBzdHJpbmdcclxuICBhcGlPcGVuSXRlbXNVcmw/OiBzdHJpbmdcclxuICBhcGlSZXBvcnRzVXJsPzogc3RyaW5nXHJcbiAgYXBpU2VjdXJpdHlVcmw/OiBzdHJpbmdcclxuICBhcGlTaGlwbWVudFVybD86IHN0cmluZ1xyXG4gIGF1dGhDb29raWU6IHN0cmluZ1xyXG4gIGNhY2hlVHRsPzogbnVtYmVyXHJcbiAgcHJpbnRVcmw/OiBzdHJpbmdcclxuICBzZWNyZXRLZXk6IHN0cmluZ1xyXG4gIHNvY2tldHM/OiB7XHJcbiAgICBhcHBfa2V5OiBzdHJpbmdcclxuICAgIGRlYnVnPzogYm9vbGVhblxyXG4gICAgcG9ydDogbnVtYmVyXHJcbiAgICB1cmw6IHN0cmluZ1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIHRvIGluamVjdCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICpcclxuICogYEVOVklST05NRU5UX1RPS0VOYCBpcyBhIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHRva2VuIHRoYXQgYWxsb3dzXHJcbiAqIGZvciB0aGUgcHJvdmlzaW9uIGFuZCByZXRyaWV2YWwgb2YgZW52aXJvbm1lbnQtc3BlY2lmaWMgY29uZmlndXJhdGlvbnNcclxuICogd2l0aGluIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyB0b2tlbiBpcyB0eXBpY2FsbHkgYXNzb2NpYXRlZCB3aXRoIGFuXHJcbiAqIGBFbnZpcm9ubWVudGAgdHlwZSB0aGF0IGRlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29uZmlndXJhdGlvbi5cclxuICovXHJcbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0Vudmlyb25tZW50cyB0b2tlbicpXHJcbiJdfQ==
|