@bnsights/bbsf-controls 1.0.45 → 1.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/bnsights-bbsf-controls-1.0.46.tgz +0 -0
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +67 -34
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/lib/Shared/Models/PagingOptions.js +3 -1
- package/esm2015/lib/controls/Paging/Paging.component.js +66 -35
- package/fesm2015/bnsights-bbsf-controls.js +67 -34
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/Shared/Models/PagingOptions.d.ts +2 -0
- package/lib/controls/Paging/Paging.component.d.ts +2 -0
- package/package.json +2 -2
- package/bnsights-bbsf-controls-1.0.45.tgz +0 -0
|
@@ -38,6 +38,8 @@ export class PagingOptions {
|
|
|
38
38
|
/**listens to the window scroll instead of the actual element scroll. this allows to invoke a callback function in the scope of the element while listenning to the window scroll. */
|
|
39
39
|
this.ScrollWindow = true;
|
|
40
40
|
this.ForceDirection = ForceDirection.English;
|
|
41
|
+
/** Clear Filter button selector */
|
|
42
|
+
this.ResetFilterButtonName = null;
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9TaGFyZWQvTW9kZWxzL1BhZ2luZ09wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXhELE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0Msb0RBQW9EO1FBQ2xELGtCQUFhLEdBQVEsRUFBRSxDQUFBO1FBQ3ZCLG9CQUFlLEdBQVEsSUFBSSxDQUFBO1FBQzNCO2tKQUMwSTtRQUN6SSxZQUFPLEdBQWMsRUFBRSxDQUFBO1FBQ3ZCLHFEQUFxRDtRQUNyRCxlQUFVLEdBQVEsQ0FBQyxDQUFBO1FBQ25COztVQUVFO1FBQ0YsYUFBUSxHQUFRLEVBQUUsQ0FBQTtRQUNsQixvSEFBb0g7UUFDcEgsZ0NBQTJCLEdBQVUsRUFBRSxDQUFBO1FBQ3ZDLDJJQUEySTtRQUMzSSxnQ0FBMkIsR0FBVSxFQUFFLENBQUE7UUFDdkMsdUpBQXVKO1FBQ3ZKLDRDQUF1QyxHQUFVLEVBQUUsQ0FBQTtRQUNuRCx3SUFBd0k7UUFDeEksK0JBQTBCLEdBQVUsRUFBRSxDQUFBO1FBQ3RDLGtKQUFrSjtRQUNsSixrQ0FBNkIsR0FBVSxFQUFFLENBQUE7UUFPekMseURBQXlEO1FBQ3pELHVCQUFrQixHQUFTLEtBQUssQ0FBQTtRQUdoQyxxRUFBcUU7UUFDckUsdUJBQWtCLEdBQVMsSUFBSSxDQUFBO1FBQy9CLDhDQUE4QztRQUM5Qyx1Q0FBa0MsR0FBUyxJQUFJLENBQUE7UUFDL0MseUJBQXlCO1FBQ3pCLHFCQUFnQixHQUFTLElBQUksQ0FBQTtRQUM1Qiw0Q0FBNEM7UUFDNUMsc0JBQWlCLEdBQVMsS0FBSyxDQUFBO1FBQy9CLHdDQUF3QztRQUN4QyxxQkFBZ0IsR0FBUyxLQUFLLENBQUE7UUFHOUIscUxBQXFMO1FBQ3JMLGlCQUFZLEdBQVMsSUFBSSxDQUFBO1FBQ3pCLG1CQUFjLEdBQWlCLGNBQWMsQ0FBQyxPQUFPLENBQUE7UUFFeEQsb0NBQW9DO1FBQ3BDLDBCQUFxQixHQUFXLElBQUksQ0FBQztJQUV2QyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJJdGVtIH0gZnJvbSAnLi9GaWx0ZXJJdGVtJ1xyXG5pbXBvcnQgeyBGb3JjZURpcmVjdGlvbiB9IGZyb20gJy4uL0VudW1zL0ZvcmNlRGlyZWN0aW9uJ1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2luZ09wdGlvbnM8VD1hbnk+e1xyXG4gLyoqVVJMIG9mIHRoZSBhY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiB1cGRhdGUqL1xyXG4gICBBY3Rpb25Qb3N0VVJMOnN0cmluZz1cIlwiXHJcbiAgIFZhbGlkYXRpb25Ub2tlbjpzdHJpbmc9bnVsbFxyXG4gICAvKiogQ29tbWEgc2VwYXJhdGVyIGxpc3Qgb2YgcGFyYW1ldGVycyB0aGF0IG5lZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSB1cGRhdGVkIGZ1bmN0aW9uLCB0aGUgcGFyYW1ldGVyIG5hbWUgbXVzdCBiZSB0aGUgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBob2xkcyB0aGUgdmFsdWUgb2YgdGhlIGZpbHRlci5cclxuICAgICAgKiAgZXggXCJzZWFyY2hUZXh0LGZyb21EYXRlVGltZVBpY2tlclwiIHdlIHNob3VsZCBoYXZlIG5vdyBhbiBpbnB1dCB3aXRoIGlkIHNlYXJjaFRleHQgYW5kIGEgZGF0ZXRpbWUgcGlja2VyIHdpdGggaWQgZnJvbURhdGVUaW1lUGlja2VyKi9cclxuICAgIEZpbHRlcnM6RmlsdGVySXRlbVtdPVtdXHJcbiAgICAvKipUaGUgdG90YWwgY291bnQgZm9yIHRoZSBpdGVtcyBpbiB0aGUgZGF0YXNvdXJjZSAqL1xyXG4gICAgVG90YWxDb3VudDpudW1iZXI9MFxyXG4gICAgLyoqIE5vIG9mIGl0ZW1zIGluIG9uZSBwYWdlIFxyXG4gICAgICogRGVmYXVsdCBpcyAxMFxyXG4gICAgKi9cclxuICAgIFBhZ2VTaXplOm51bWJlcj0xMFxyXG4gICAgLyoqVHlwZWFoZWFkIHNlYXJjaCBpbnB1dCwgdXNlZCB0byBhdHRhY2ggb24gY2hhbmdlIGV2ZW50cyB0byB0aGUgc2VhcmNoIGlucHV0IHRvIHJlZnJlc2ggdGhlIHBhZ2luZyBhZnRlciBjaGFuZ2UgKi9cclxuICAgIFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lczpzdHJpbmdbXT1bXVxyXG4gICAgLyoqQ29tbWEgc2VwYXJhdGVyIGxpc3Qgb2YgRHJvcGRvd25zIGZpbHRlcnMgLCB1c2VkIHRvIGF0dGFjaCBvbiBjaGFuZ2UgZXZlbnRzIHRvIHRoZSBkcm9wZG93biBmaWx0ZXIgdG8gcmVmcmVzaCB0aGUgcGFnaW5nIGFmdGVyIGNoYW5nZSAqL1xyXG4gICAgRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzOnN0cmluZ1tdPVtdXHJcbiAgICAvKipDb21tYSBzZXBhcmF0ZXIgbGlzdCBvZiBCb290c3RyYXAgZGF0ZXBpY2tlciBmaWx0ZXJzLCB1c2VkIHRvIGF0dGFjaCBvbiBjaGFuZ2UgZXZlbnRzIHRvIHRoZSBkYXRlcGlja2VyIGZpbHRlciB0byByZWZyZXNoIHRoZSBwYWdpbmcgYWZ0ZXIgY2hhbmdlICovXHJcbiAgICBCb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXM6c3RyaW5nW109W11cclxuICAgIC8qKkNvbW1hIHNlcGFyYXRlciBsaXN0IG9mIGFueSBidXR0b24vZWxlbWVudCBmaWx0ZXJzIHRvIGF0dGFjaCBvbiBjbGljayBldmVudCwgdGhpcyB3aWxsIHJlZnJlc2ggdGhlIHBhZ2luZyBhZnRlciB0aGUgZXZlbnQgaXMgZmlyZWQgKi9cclxuICAgIE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzOnN0cmluZ1tdPVtdXHJcbiAgICAvKiogQ29tbWEgc2VwYXJhdGVyIGxpc3Qgb2YgYW55IGJ1dHRvbi9lbGVtZW50IGZpbHRlcnMgdG8gYXR0YWNoIG9uIGtleXByZXNzL0VudGVyIGV2ZW50LCB0aGlzIHdpbGwgcmVmcmVzaCB0aGUgcGFnaW5nIGFmdGVyIHRoZSBldmVudCBpcyBmaXJlZCAqL1xyXG4gICAgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXM6c3RyaW5nW109W11cclxuICAgIC8qKiBUaGUganMgZnVuY3Rpb24gbmFtZSB0byBiZSBjYWxsZWQgdG8gdXBkYXRlIHRoZSBwYWdpbmcgdG90YWwgY291bnQgYW5kIGtlZXAgdGhlIGN1cnJlbnQgcGFnZSBhcyBpcywgaGF2ZSB0byBwYXNzIHRoZSBuZXcgdG90YWwgY291bnQgb2YgdGhlIGRhdGFzb3VyY2UgaXRlbXNcclxuICAgICAgICAqIERlZmF1bHQgdmFsdWUgaXMgUGFnaW5nX1VwZGF0ZSBmaWxsIHRoaXMgcGFyYW1ldGVyIGluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIHBhZ2luZyBjb250cm9scyAqL1xyXG4gICAgVXBkYXRlRnVuY3Rpb25OYW1lOnN0cmluZ1xyXG4gICAgLyoqICBUaGUganMgZnVuY3Rpb24gbmFtZSB0byBiZSBjYWxsZWQgdG8gcmVpbml0aWFsaXplIHRoZSBwYWdpbmcgY29tcG9uZW50IHdpdGggYSBuZXcgaXRlbXMgY291bnQgYW5kIHJlc2V0IHRoZSBjdXJlbnQgcGFnZSB0byAxLCB5b3UgbXVzdCBwYXNzIHRoZSBuZXcgdG90YWwgY291bnQgb2YgdGhlIGRhdGFzb3VyY2UgaXRlbXNcclxuICAgICAgICAqIERlZmF1bHQgdmFsdWUgaXMgUGFnaW5nX1JlaW5pdGlhbGl6ZSBmaWxsIHRoaXMgcGFyYW1ldGVyIGluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIHBhZ2luZyBjb250cm9scyovXHJcbiAgICBSZWluaXRpYWxpemVGdW5jdGlvbk5hbWU6c3RyaW5nXHJcbiAgICAvKipTaG93IGEgZHJvcGRvd24gdG8gYmUgYWJsZSB0byBjaGFuZ2UgdGhlIHBhZ2Ugc2l6ZSAgKi9cclxuICAgIFNob3dQYWdlU2l6ZU9wdGlvbjpib29sZWFuPWZhbHNlXHJcbiAgICAvKipqcyBmdW5jdGlvbiBuYW1lIHRvIGJlIGNhbGxlZCB3aGVuIGEgcGFnZSBpcyB1cGRhdGVkICovXHJcbiAgICBPblN1Y2Nlc3NDYWxsQmFja0pTRnVuY3Rpb246c3RyaW5nXHJcbiAgICAvKiogYm9vbCB0byBzZXQgYmxvY2sgdWkgYnkgY29udGFpbmVyIHJhdGhlciB0aGFuIHRoZSB3aG9sZSB3aW5kb3cgKi9cclxuICAgIEJsb2NrVUlCeUNvbnRhaW5lcjpib29sZWFuPXRydWVcclxuICAgIC8qKmhpZGUgUGFnaW5hdGlvbiBXaGVuIFBhZ2UgU2l6ZSBFcXVhbCBPbmUgKi9cclxuICAgIEhpZGVQYWdpbmF0aW9uV2hlblBhZ2VTaXplRXF1YWxPbmU6Ym9vbGVhbj10cnVlXHJcbiAgICAvKipTaG93IEZpcnN0IEFuZCBMYXN0ICovXHJcbiAgICBTaG93Rmlyc3RBbmRMYXN0OmJvb2xlYW49dHJ1ZVxyXG4gICAgIC8qKlNob3cgTG9hZCBNb3JlIEJ1dHRvbiAgQW5kIEhpZGUgUGFnaW5nICovXHJcbiAgICAgSXNMb2FkTW9yZUNvbnRyb2w6Ym9vbGVhbj1mYWxzZVxyXG4gICAgIC8qKiBMb2FkIE1vcmUgaXRlbXMgIFdoaWxlIFNjcm9sbGluZyAgKi9cclxuICAgICBJc0luZmluaXRlU2Nyb2xsOmJvb2xlYW49ZmFsc2VcclxuICAgIC8qKnNob3VsZCBnZXQgYSBodG1sIGVsZW1lbnQgb3IgY3NzIHNlbGVjdG9yIGZvciBhIHNjcm9sbGFibGUgZWxlbWVudDsgd2luZG93IG9yIGN1cnJlbnQgZWxlbWVudCB3aWxsIGJlIHVzZWQgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZW1wdHkuICovXHJcbiAgICAgSW5maW5pdGVTY3JvbGxDb250YWluZXJcclxuICAgICAvKipsaXN0ZW5zIHRvIHRoZSB3aW5kb3cgc2Nyb2xsIGluc3RlYWQgb2YgdGhlIGFjdHVhbCBlbGVtZW50IHNjcm9sbC4gdGhpcyBhbGxvd3MgdG8gaW52b2tlIGEgY2FsbGJhY2sgZnVuY3Rpb24gaW4gdGhlIHNjb3BlIG9mIHRoZSBlbGVtZW50IHdoaWxlIGxpc3Rlbm5pbmcgdG8gdGhlIHdpbmRvdyBzY3JvbGwuICovXHJcbiAgICAgU2Nyb2xsV2luZG93OmJvb2xlYW49dHJ1ZVxyXG4gICAgIEZvcmNlRGlyZWN0aW9uOiBGb3JjZURpcmVjdGlvbj1Gb3JjZURpcmVjdGlvbi5FbmdsaXNoXHJcbiAgVHlwZU9mUmVzcG9uc2U/OiBuZXcgKCkgPT4gVFxyXG4gIC8qKiBDbGVhciBGaWx0ZXIgYnV0dG9uIHNlbGVjdG9yICAqL1xyXG4gIFJlc2V0RmlsdGVyQnV0dG9uTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbn0gXHJcbiJdfQ==
|
|
@@ -94,6 +94,16 @@ export class PagingComponent {
|
|
|
94
94
|
}, false);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
+
//Add click event on Reset Filter button
|
|
98
|
+
if (this.options.ResetFilterButtonName != null) {
|
|
99
|
+
const button = document.getElementsByName(this.options.ResetFilterButtonName)[0];
|
|
100
|
+
if (button != undefined) {
|
|
101
|
+
let element = button;
|
|
102
|
+
element.addEventListener("click", (e) => {
|
|
103
|
+
this.clearFilters();
|
|
104
|
+
}, false);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
97
107
|
if (this.options.TypeaheadSearchControlNames != null && this.options.TypeaheadSearchControlNames.length > 0) {
|
|
98
108
|
const TypeaheadSearchControlNames = this.options.TypeaheadSearchControlNames;
|
|
99
109
|
for (let index = 0; index < TypeaheadSearchControlNames.length; index++) {
|
|
@@ -151,40 +161,7 @@ export class PagingComponent {
|
|
|
151
161
|
pagingDTO.TotalCount = this.totalRow;
|
|
152
162
|
pagingDTO.IsFilterUpdated = IsFilterUpdated;
|
|
153
163
|
let filters = {};
|
|
154
|
-
|
|
155
|
-
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
156
|
-
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
157
|
-
const FormControlName = this.options.Filters[index].FormControlName;
|
|
158
|
-
let ControlValue = this.group.controls[FormControlName].value;
|
|
159
|
-
if (ControlValue != undefined && ControlValue != null) {
|
|
160
|
-
if (this.options.Filters[index].FilterType == FilterType.DatePicker) {
|
|
161
|
-
if (Array.isArray(ControlValue)) {
|
|
162
|
-
for (let element = 0; element < ControlValue.length; element++) {
|
|
163
|
-
const value = ControlValue[element];
|
|
164
|
-
filters[this.options.Filters[index].ActionParameterName] = value;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)
|
|
173
|
-
ControlValue = JSON.stringify(ControlValue);
|
|
174
|
-
if (this.options.Filters[index].FilterType == FilterType.TagInput)
|
|
175
|
-
ControlValue = JSON.stringify(ControlValue);
|
|
176
|
-
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;
|
|
182
|
-
let ElementValue = document.querySelector(ElementjQuerySelector).value;
|
|
183
|
-
if (ElementValue != undefined && ElementValue != null)
|
|
184
|
-
filters[this.options.Filters[index].ActionParameterName] = ElementValue;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
164
|
+
filters = this.getFiltersValue();
|
|
188
165
|
//Set Filters object that sent to action URL
|
|
189
166
|
let filtersDTO = {
|
|
190
167
|
PagingDTO: pagingDTO,
|
|
@@ -250,6 +227,60 @@ export class PagingComponent {
|
|
|
250
227
|
this.itemsText = this.utilityService.getResourceValue("Item");
|
|
251
228
|
}
|
|
252
229
|
}
|
|
230
|
+
clearFilters() {
|
|
231
|
+
if (this.options.Filters != null && this.options.Filters != []) {
|
|
232
|
+
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
233
|
+
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
234
|
+
const FormControlName = this.options.Filters[index].FormControlName;
|
|
235
|
+
this.group.controls[FormControlName].setValue(null);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
this.ReinitializePaging();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
getFiltersValue() {
|
|
242
|
+
let filters = {};
|
|
243
|
+
if (this.options.Filters != null && this.options.Filters != []) {
|
|
244
|
+
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
245
|
+
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
246
|
+
const FormControlName = this.options.Filters[index].FormControlName;
|
|
247
|
+
let ControlValue = this.group.controls[FormControlName].value;
|
|
248
|
+
if (ControlValue != undefined && ControlValue != null && ControlValue != "") {
|
|
249
|
+
if (this.options.Filters[index].FilterType == FilterType.DatePicker) {
|
|
250
|
+
if (Array.isArray(ControlValue)) {
|
|
251
|
+
for (let element = 0; element < ControlValue.length; element++) {
|
|
252
|
+
const value = ControlValue[element];
|
|
253
|
+
filters[this.options.Filters[index].ActionParameterName] = value;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)
|
|
262
|
+
ControlValue = JSON.stringify(ControlValue);
|
|
263
|
+
if (this.options.Filters[index].FilterType == FilterType.TagInput)
|
|
264
|
+
ControlValue = JSON.stringify(ControlValue);
|
|
265
|
+
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
filters[this.options.Filters[index].ActionParameterName] = null;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;
|
|
274
|
+
let ElementValue = document.querySelector(ElementjQuerySelector).value;
|
|
275
|
+
if (ElementValue != undefined && ElementValue != null)
|
|
276
|
+
filters[this.options.Filters[index].ActionParameterName] = ElementValue;
|
|
277
|
+
else
|
|
278
|
+
filters[this.options.Filters[index].ActionParameterName] = null;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return filters;
|
|
283
|
+
}
|
|
253
284
|
}
|
|
254
285
|
PagingComponent.decorators = [
|
|
255
286
|
{ type: Component, args: [{
|
|
@@ -270,4 +301,4 @@ PagingComponent.propDecorators = {
|
|
|
270
301
|
options: [{ type: Input }],
|
|
271
302
|
group: [{ type: Input }]
|
|
272
303
|
};
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBOEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQscURBQXFEO0FBTXJELE1BQU0sT0FBTyxlQUFlO0lBMEIxQixZQUFtQixjQUE4QixFQUFVLElBQWdCLEVBQVUsTUFBYyxFQUFVLGVBQTZDLEVBQVUscUJBQTRDO1FBQTdMLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXhCaE4sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBUSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFRLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVEsRUFBRSxDQUFBO1FBQ2xCLFVBQUssR0FBUSxDQUFDLENBQUE7UUFHZCxnQkFBVyxHQUFRLENBQUMsQ0FBQTtRQUNwQix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLHVDQUFrQyxHQUFHLElBQUksQ0FBQTtRQUN6QyxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNmLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDbEIsVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBa003RCx1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFBO1FBRUQsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQTtJQXJNRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7WUFDaEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRyxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQTtnQkFDckYsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO29CQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQzFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25JLE1BQU0sdUNBQXVDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNsRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFBO2dCQUNqRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDMUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxlQUFlO1FBRWIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekcsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDO1lBQzNFLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RFLE1BQU0seUJBQXlCLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BFLFFBQVEsQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNoRixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztvQkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ1g7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9HLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQztZQUNqRixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUN6RSxNQUFNLDRCQUE0QixHQUFHLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLE9BQU8sR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBRSxDQUFDLGFBQTRCLENBQUM7Z0JBQy9GLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDekMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sRUFBRTt3QkFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQzFDO2dCQUNILENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNYO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRyxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUM7WUFDN0UsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdkUsTUFBTSwwQkFBMEIsR0FBRywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEUsUUFBUSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNyRixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFFO3dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzt3QkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDMUM7Z0JBQ0gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBRVg7U0FDRjtJQUVILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ3JCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLElBQUksQ0FBQztZQUNYLE9BQU87UUFDVCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFLRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUlELFdBQVcsQ0FBQyxJQUFJLEVBQUUsZUFBZSxHQUFHLEtBQUs7UUFDdkMsSUFBSSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQjtZQUNoQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7O1lBRS9CLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDbkMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQzVDLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUU7WUFDOUQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUU7b0JBQzVHLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQztvQkFDcEUsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUM5RCxJQUFJLFlBQVksSUFBSSxTQUFTLElBQUksWUFBWSxJQUFJLElBQUksRUFBRTt3QkFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRTs0QkFDbkUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dDQUMvQixLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtvQ0FDOUQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29DQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxLQUFLLENBQUM7aUNBQ2xFOzZCQUNGO2lDQUNJO2dDQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFFLFlBQVksQ0FBQzs2QkFDeEU7eUJBQ0Y7NkJBQ0k7NEJBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLG1CQUFtQjtnQ0FDMUUsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRO2dDQUMvRCxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQzs0QkFFOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUUsWUFBWSxDQUFDO3lCQUN4RTtxQkFDRjtpQkFDRjtxQkFDSTtvQkFDSCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQztvQkFDekUsSUFBSSxZQUFZLEdBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBc0IsQ0FBQyxLQUFLLENBQUM7b0JBQzdGLElBQUksWUFBWSxJQUFJLFNBQVMsSUFBSSxZQUFZLElBQUksSUFBSTt3QkFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsWUFBWSxDQUFDO2lCQUMzRTthQUNGO1NBQ0Y7UUFFRCw0Q0FBNEM7UUFDNUMsSUFBSSxVQUFVLEdBQWtCO1lBQzlCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQzFJLFNBQVMsQ0FBQyxDQUFDLFlBQWlCLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUEsQ0FBQyxxQ0FBcUM7WUFDdEUsSUFBSSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzVHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUV4QyxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWxDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFFekM7UUFDSCxDQUFDLEVBQUUsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVlELFNBQVMsQ0FBQyxTQUFnQjtRQUN4QixJQUFJLGFBQWEsR0FBUSxFQUFFLENBQUE7UUFDM0IsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFBO1lBQ2xCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDZCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUE7Z0JBQ2QsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2RTtZQUNELElBQUksV0FBVyxHQUFHLFNBQWMsQ0FBQTtZQUNoQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQ2hDO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUFtQixFQUFFLFdBQW1CO1FBQzlDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFO1lBQ2pELGdCQUFnQjtZQUNoQixJQUFJLFdBQVcsR0FBRyxDQUFDLElBQUksV0FBVyxHQUFHLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBRTlELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRSxnQkFBZ0I7WUFDaEIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7O2dCQUU5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEU7YUFDSTtZQUNILGdCQUFnQjtZQUNoQixJQUFJLFdBQVcsR0FBRyxDQUFDO2dCQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7O2dCQUUvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsZ0JBQWdCO1lBQ2hCLElBQUksV0FBVyxHQUFHLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Z0JBRS9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7OztZQW5SRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLGsxREFBc0M7O2FBRXZDOzs7WUFUK0IsY0FBYztZQVJyQyxVQUFVO1lBRFYsTUFBTTtZQU9OLDRCQUE0QjtZQUU1QixxQkFBcUI7OztvQkFnQzNCLE1BQU07c0JBQ04sS0FBSztvQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFBhZ2luZ0RUTyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvUGFnaW5nRFRPJztcclxuaW1wb3J0IHsgUGFnaW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvUGFnaW5nT3B0aW9ucyc7XHJcbmltcG9ydCB7IFJlcXVlc3RPcHRpb25zLCBSZXNwb25zZUNvbnRlbnRUeXBlLCBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL09uUGFnaW5nRmlsdGVyc0NoYW5nZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9GaWx0ZXJUeXBlJztcclxuaW1wb3J0IHsgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuaW1wb3J0IHsgUGFnaW5nUGF5bG9hZCB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvUGFnaW5nUGF5bG9hZCc7XHJcblxyXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbmZsaWN0aW5nLWxpZmVjeWNsZVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtUGFnaW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vUGFnaW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9QYWdpbmcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5nQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgaXRlbXMgPSBbXTtcclxuICBwYWdlT2ZJdGVtczogQXJyYXk8YW55PjtcclxuICByZXN1bHQ6IFRbXSA9IFtdO1xyXG4gIHBhZ2VyQ29uZmlnOiBhbnkgPSBudWxsO1xyXG4gIHRvdGFsUm93OiBhbnkgPSAwO1xyXG4gIHBhZ2VTaXplOiBhbnkgPSAxMFxyXG4gIFBhZ2VzOiBhbnkgPSAwXHJcbiAgcGFnZXNUZXh0IDogc3RyaW5nO1xyXG4gIGl0ZW1zVGV4dCA6IHN0cmluZztcclxuICBDdXJyZW50UGFnZTogYW55ID0gMVxyXG4gIFNob3dQYWdlU2l6ZU9wdGlvbiA9IHRydWU7XHJcbiAgU2hvd0ZpcnN0QW5kTGFzdCA9IHRydWU7XHJcbiAgaGlkZVBhZ2luYXRpb25XaGVuUGFnZVNpemVFcXVhbE9uZSA9IHRydWVcclxuICBTdW0gPSAwO1xyXG4gIFRocm90dGxlID0gMzAwO1xyXG4gIFNjcm9sbERpc3RhbmNlID0gMTtcclxuICBTY3JvbGxVcERpc3RhbmNlID0gMjtcclxuICBkaXJlY3Rpb24gPSAnJztcclxuICBIZWFkZXJzOiBIdHRwSGVhZGVycztcclxuICBJc0ZpcnN0Q2FsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQE91dHB1dCgpIEl0ZW1zOiBFdmVudEVtaXR0ZXI8VFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFBhZ2luZ09wdGlvbnM7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzTG9hZE1vcmVDb250cm9sKVxyXG4gICAgICB0aGlzLlN1bSA9IHRoaXMub3B0aW9ucy5QYWdlU2l6ZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBEcm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5HZXRWYWx1ZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcztcclxuICAgICAgdGhpcy5vbkNoYW5nZVNlcnZpY2UuR2V0VmFsdWUoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtID09IHZhbHVlKVxyXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lID0gT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gKDxhbnk+dGhpcy5ncm91cC5nZXQoT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZSkpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgKGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLmtleSA9PSBcIkVudGVyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZSA9IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWUpLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlwcmVzc1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUua2V5ID09IFwiRW50ZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG9uRHJvcERvd25DaGFuZ2UocmVzdWx0KSB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlUGFnZShQYWdlKSB7XHJcbiAgICBpZiAoUGFnZSA9PSAwKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBpZiAoUGFnZSA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuSXNGaXJzdENhbGwpIHtcclxuICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSBQYWdlO1xyXG4gICAgICB0aGlzLmdldEl0ZW1MaXN0KFBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VQYWdlU2l6ZShlKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuUGFnZVNpemUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgb25TY3JvbGxEb3duKCkge1xyXG4gICAgdGhpcy5TdW0gKz0gdGhpcy5vcHRpb25zLlBhZ2VTaXplXHJcbiAgICB0aGlzLkN1cnJlbnRQYWdlID0gMVxyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9ICdkb3duJztcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldEl0ZW1MaXN0KHBhZ2UsIElzRmlsdGVyVXBkYXRlZCA9IGZhbHNlKSB7XHJcbiAgICBsZXQgcGFnaW5nRFRPID0gbmV3IFBhZ2luZ0RUTygpO1xyXG4gICAgbGV0IHNpemUgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5vcHRpb25zLlBhZ2VTaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0xvYWRNb3JlQ29udHJvbClcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHRoaXMuU3VtO1xyXG4gICAgZWxzZVxyXG4gICAgICBwYWdpbmdEVE8uUGFnZUNvdW50ID0gc2l6ZTtcclxuICAgIHBhZ2luZ0RUTy5DdXJyZW50UGFnZU51bWJlciA9IHBhZ2U7XHJcbiAgICBwYWdpbmdEVE8uVG90YWxDb3VudCA9IHRoaXMudG90YWxSb3c7XHJcbiAgICBwYWdpbmdEVE8uSXNGaWx0ZXJVcGRhdGVkID0gSXNGaWx0ZXJVcGRhdGVkO1xyXG4gICAgbGV0IGZpbHRlcnMgPSB7fTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IFtdKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuRmlsdGVycy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gXCJcIikge1xyXG4gICAgICAgICAgY29uc3QgRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZTtcclxuICAgICAgICAgIGxldCBDb250cm9sVmFsdWUgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW0Zvcm1Db250cm9sTmFtZV0udmFsdWU7XHJcbiAgICAgICAgICBpZiAoQ29udHJvbFZhbHVlICE9IHVuZGVmaW5lZCAmJiBDb250cm9sVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZpbHRlclR5cGUgPT0gRmlsdGVyVHlwZS5EYXRlUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoQ29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZWxlbWVudCA9IDA7IGVsZW1lbnQgPCBDb250cm9sVmFsdWUubGVuZ3RoOyBlbGVtZW50KyspIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBDb250cm9sVmFsdWVbZWxlbWVudF07XHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV09IENvbnRyb2xWYWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuQXV0b2NvbXBsZXRlVGV4dEJveClcclxuICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuVGFnSW5wdXQpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBKU09OLnN0cmluZ2lmeShDb250cm9sVmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXT0gQ29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgRWxlbWVudGpRdWVyeVNlbGVjdG9yID0gdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLmpRdWVyeVNlbGVjdG9yO1xyXG4gICAgICAgICAgbGV0IEVsZW1lbnRWYWx1ZSA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKEVsZW1lbnRqUXVlcnlTZWxlY3RvcikgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICAgICAgICBpZiAoRWxlbWVudFZhbHVlICE9IHVuZGVmaW5lZCAmJiBFbGVtZW50VmFsdWUgIT0gbnVsbClcclxuICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV0gPSBFbGVtZW50VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9TZXQgRmlsdGVycyBvYmplY3QgdGhhdCBzZW50IHRvIGFjdGlvbiBVUkxcclxuICAgIGxldCBmaWx0ZXJzRFRPOiBQYWdpbmdQYXlsb2FkID0ge1xyXG4gICAgICBQYWdpbmdEVE86IHBhZ2luZ0RUTyxcclxuICAgICAgRmlsdGVyczogZmlsdGVyc1xyXG4gICAgfTtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLnBvc3QodGhpcy5vcHRpb25zLkFjdGlvblBvc3RVUkwsIHRoaXMub3B0aW9ucy5GaWx0ZXJzICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzLmxlbmd0aCA+IDAgPyBmaWx0ZXJzRFRPIDogcGFnaW5nRFRPKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZURhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzdWx0ID0gcmVzcG9uc2VEYXRhLml0ZW1zIC8vdGhpcy5jYXN0SXRlbXMocmVzcG9uc2VEYXRhLml0ZW1zKTtcclxuICAgICAgICBsZXQgY2FzdGVkUmVzdWx0ID0gcGxhaW5Ub0NsYXNzKHRoaXMub3B0aW9ucy5UeXBlT2ZSZXNwb25zZSwgdGhpcy5yZXN1bHQsIHsgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXM6IHRydWUgfSlcclxuICAgICAgICB0aGlzLkl0ZW1zLmVtaXQoY2FzdGVkUmVzdWx0KTtcclxuICAgICAgICB0aGlzLnRvdGFsUm93ID0gcmVzcG9uc2VEYXRhLnRvdGFsQ291bnQ7XHJcblxyXG4gICAgICAgIGlmIChJc0ZpbHRlclVwZGF0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMudG90YWxSb3cgLyB0aGlzLm9wdGlvbnMuUGFnZVNpemUpKTtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBBcnJheSh0aGlzLnRvdGFsUm93KTtcclxuXHJcbiAgICAgICAgICB0aGlzLnNldFRleHQodGhpcy5QYWdlcywgdGhpcy50b3RhbFJvdyk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSwgKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAxKVxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL0FkbWluL2FjY291bnQvbG9naW5cIl0pXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgUmVpbml0aWFsaXplUGFnaW5nID0gKCkgPT4ge1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KDEsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgVXBkYXRlUGFnaW5nID0gKCkgPT4ge1xyXG4gICAgLy90aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY2FzdEl0ZW1zKG9iamVjdEFycjogYW55W10pOiBUW10ge1xyXG4gICAgbGV0IG9yaWdpbmFsQXJyYXk6IFRbXSA9IFtdXHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgb2JqZWN0QXJyLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gb2JqZWN0QXJyW2luZGV4XTtcclxuICAgICAgbGV0IGtleSwga2V5cyA9IE9iamVjdC5rZXlzKGVsZW1lbnQpO1xyXG4gICAgICBsZXQgbiA9IGtleXMubGVuZ3RoO1xyXG4gICAgICBsZXQgbmV3T2JqZWN0ID0ge31cclxuICAgICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICAgIGtleSA9IGtleXNbbl07XHJcbiAgICAgICAgbGV0IE9rZXkgPSBrZXlcclxuICAgICAgICBuZXdPYmplY3Rba2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgT2tleS5zbGljZSgxKV0gPSBlbGVtZW50W2tleV07XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpbmFsT2JqZWN0ID0gbmV3T2JqZWN0IGFzIFRcclxuICAgICAgb3JpZ2luYWxBcnJheS5wdXNoKGZpbmFsT2JqZWN0KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcmlnaW5hbEFycmF5O1xyXG4gIH1cclxuXHJcbiAgc2V0VGV4dChwYWdlc051bWJlcjogbnVtYmVyLCBpdGVtc051bWJlcjogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpKSB7XHJcbiAgICAgIC8vU2V0IHBhZ2VzIHRleHRcclxuICAgICAgaWYgKHBhZ2VzTnVtYmVyIDwgMyB8fCBwYWdlc051bWJlciA+IDEwKVxyXG4gICAgICAgIHRoaXMucGFnZXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFnZVwiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucGFnZXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFnZXNcIik7XHJcbiAgICAgIC8vU2V0IGl0ZW1zIHRleHRcclxuICAgICAgaWYgKGl0ZW1zTnVtYmVyIDwgMyB8fCBpdGVtc051bWJlciA+IDEwKVxyXG4gICAgICAgIHRoaXMuaXRlbXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSXRlbVwiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuaXRlbXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSXRlbXNcIik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy9TZXQgcGFnZXMgdGV4dFxyXG4gICAgICBpZiAocGFnZXNOdW1iZXIgPiAxKVxyXG4gICAgICAgIHRoaXMucGFnZXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFnZXNcIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VcIik7XHJcbiAgICAgIC8vU2V0IGl0ZW1zIHRleHRcclxuICAgICAgaWYgKGl0ZW1zTnVtYmVyID4gMSlcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1zXCIpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5pdGVtc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJdGVtXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBOEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQscURBQXFEO0FBTXJELE1BQU0sT0FBTyxlQUFlO0lBMEIxQixZQUFtQixjQUE4QixFQUFVLElBQWdCLEVBQVUsTUFBYyxFQUFVLGVBQTZDLEVBQVUscUJBQTRDO1FBQTdMLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXhCaE4sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBUSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFRLENBQUMs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LHFCQUFxQjs7O29CQWdDM0IsTUFBTTtzQkFDTixLQUFLO29CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUGFnaW5nRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QYWdpbmdEVE8nO1xyXG5pbXBvcnQgeyBQYWdpbmdPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QYWdpbmdPcHRpb25zJztcclxuaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMsIFJlc3BvbnNlQ29udGVudFR5cGUsIEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvT25QYWdpbmdGaWx0ZXJzQ2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL0ZpbHRlclR5cGUnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBQYWdpbmdQYXlsb2FkIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QYWdpbmdQYXlsb2FkJztcclxuXHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnQkJTRi1QYWdpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9QYWdpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL1BhZ2luZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmdDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBpdGVtcyA9IFtdO1xyXG4gIHBhZ2VPZkl0ZW1zOiBBcnJheTxhbnk+O1xyXG4gIHJlc3VsdDogVFtdID0gW107XHJcbiAgcGFnZXJDb25maWc6IGFueSA9IG51bGw7XHJcbiAgdG90YWxSb3c6IGFueSA9IDA7XHJcbiAgcGFnZVNpemU6IGFueSA9IDEwXHJcbiAgUGFnZXM6IGFueSA9IDBcclxuICBwYWdlc1RleHQgOiBzdHJpbmc7XHJcbiAgaXRlbXNUZXh0IDogc3RyaW5nO1xyXG4gIEN1cnJlbnRQYWdlOiBhbnkgPSAxXHJcbiAgU2hvd1BhZ2VTaXplT3B0aW9uID0gdHJ1ZTtcclxuICBTaG93Rmlyc3RBbmRMYXN0ID0gdHJ1ZTtcclxuICBoaWRlUGFnaW5hdGlvbldoZW5QYWdlU2l6ZUVxdWFsT25lID0gdHJ1ZVxyXG4gIFN1bSA9IDA7XHJcbiAgVGhyb3R0bGUgPSAzMDA7XHJcbiAgU2Nyb2xsRGlzdGFuY2UgPSAxO1xyXG4gIFNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIGRpcmVjdGlvbiA9ICcnO1xyXG4gIEhlYWRlcnM6IEh0dHBIZWFkZXJzO1xyXG4gIElzRmlyc3RDYWxsOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgSXRlbXM6IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgb25DaGFuZ2VTZXJ2aWNlOiBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLCBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHRoaXMuU3VtID0gdGhpcy5vcHRpb25zLlBhZ2VTaXplO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IERyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkdldFZhbHVlKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PSB2YWx1ZSlcclxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBCb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5HZXRWYWx1ZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lID0gT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWUpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWUgPSBPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAoPGFueT50aGlzLmdyb3VwLmdldChPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lKSkubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlwcmVzc1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUua2V5ID09IFwiRW50ZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL0FkZCBjbGljayBldmVudCBvbiBSZXNldCBGaWx0ZXIgYnV0dG9uXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlJlc2V0RmlsdGVyQnV0dG9uTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKHRoaXMub3B0aW9ucy5SZXNldEZpbHRlckJ1dHRvbk5hbWUpWzBdO1xyXG4gICAgICBpZiAoYnV0dG9uICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gYnV0dG9uIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVycygpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcztcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZSA9IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lc1tpbmRleF07XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWUpLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlwcmVzc1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUua2V5ID09IFwiRW50ZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG9uRHJvcERvd25DaGFuZ2UocmVzdWx0KSB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLklzRmlyc3RDYWxsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlUGFnZShQYWdlKSB7XHJcbiAgICBpZiAoUGFnZSA9PSAwKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBpZiAoUGFnZSA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuSXNGaXJzdENhbGwpIHtcclxuICAgICAgICB0aGlzLklzRmlyc3RDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSBQYWdlO1xyXG4gICAgICB0aGlzLmdldEl0ZW1MaXN0KFBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VQYWdlU2l6ZShlKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuUGFnZVNpemUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgb25TY3JvbGxEb3duKCkge1xyXG4gICAgdGhpcy5TdW0gKz0gdGhpcy5vcHRpb25zLlBhZ2VTaXplXHJcbiAgICB0aGlzLkN1cnJlbnRQYWdlID0gMVxyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbCA9IHRydWU7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9ICdkb3duJztcclxuICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldEl0ZW1MaXN0KHBhZ2UsIElzRmlsdGVyVXBkYXRlZCA9IGZhbHNlKSB7XHJcbiAgICBsZXQgcGFnaW5nRFRPID0gbmV3IFBhZ2luZ0RUTygpO1xyXG4gICAgbGV0IHNpemUgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5vcHRpb25zLlBhZ2VTaXplLnRvU3RyaW5nKCkpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0xvYWRNb3JlQ29udHJvbClcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHRoaXMuU3VtO1xyXG4gICAgZWxzZVxyXG4gICAgICBwYWdpbmdEVE8uUGFnZUNvdW50ID0gc2l6ZTtcclxuICAgIHBhZ2luZ0RUTy5DdXJyZW50UGFnZU51bWJlciA9IHBhZ2U7XHJcbiAgICBwYWdpbmdEVE8uVG90YWxDb3VudCA9IHRoaXMudG90YWxSb3c7XHJcbiAgICBwYWdpbmdEVE8uSXNGaWx0ZXJVcGRhdGVkID0gSXNGaWx0ZXJVcGRhdGVkO1xyXG4gICAgbGV0IGZpbHRlcnMgPSB7fTtcclxuICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnNWYWx1ZSgpO1xyXG5cclxuICAgIC8vU2V0IEZpbHRlcnMgb2JqZWN0IHRoYXQgc2VudCB0byBhY3Rpb24gVVJMXHJcbiAgICBsZXQgZmlsdGVyc0RUTzogUGFnaW5nUGF5bG9hZCA9IHtcclxuICAgICAgUGFnaW5nRFRPOiBwYWdpbmdEVE8sXHJcbiAgICAgIEZpbHRlcnM6IGZpbHRlcnNcclxuICAgIH07XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5wb3N0KHRoaXMub3B0aW9ucy5BY3Rpb25Qb3N0VVJMLCB0aGlzLm9wdGlvbnMuRmlsdGVycyAmJiB0aGlzLm9wdGlvbnMuRmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVyc0RUTyA6IHBhZ2luZ0RUTylcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlc3VsdCA9IHJlc3BvbnNlRGF0YS5pdGVtcyAvL3RoaXMuY2FzdEl0ZW1zKHJlc3BvbnNlRGF0YS5pdGVtcyk7XHJcbiAgICAgICAgbGV0IGNhc3RlZFJlc3VsdCA9IHBsYWluVG9DbGFzcyh0aGlzLm9wdGlvbnMuVHlwZU9mUmVzcG9uc2UsIHRoaXMucmVzdWx0LCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgICAgdGhpcy5JdGVtcy5lbWl0KGNhc3RlZFJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvdyA9IHJlc3BvbnNlRGF0YS50b3RhbENvdW50O1xyXG5cclxuICAgICAgICBpZiAoSXNGaWx0ZXJVcGRhdGVkKSB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLlBhZ2VzID0gTWF0aC5jZWlsKCh0aGlzLnRvdGFsUm93IC8gdGhpcy5vcHRpb25zLlBhZ2VTaXplKSk7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gQXJyYXkodGhpcy50b3RhbFJvdyk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zZXRUZXh0KHRoaXMuUGFnZXMsIHRoaXMudG90YWxSb3cpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0sIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMSlcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9BZG1pbi9hY2NvdW50L2xvZ2luXCJdKVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIFJlaW5pdGlhbGl6ZVBhZ2luZyA9ICgpID0+IHtcclxuICAgIHRoaXMuSXNGaXJzdENhbGwgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCgxLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIFVwZGF0ZVBhZ2luZyA9ICgpID0+IHtcclxuICAgIC8vdGhpcy5Jc0ZpcnN0Q2FsbD10cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlKTtcclxuICB9XHJcblxyXG4gIGNhc3RJdGVtcyhvYmplY3RBcnI6IGFueVtdKTogVFtdIHtcclxuICAgIGxldCBvcmlnaW5hbEFycmF5OiBUW10gPSBbXVxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG9iamVjdEFyci5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IG9iamVjdEFycltpbmRleF07XHJcbiAgICAgIGxldCBrZXksIGtleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50KTtcclxuICAgICAgbGV0IG4gPSBrZXlzLmxlbmd0aDtcclxuICAgICAgbGV0IG5ld09iamVjdCA9IHt9XHJcbiAgICAgIHdoaWxlIChuLS0pIHtcclxuICAgICAgICBrZXkgPSBrZXlzW25dO1xyXG4gICAgICAgIGxldCBPa2V5ID0ga2V5XHJcbiAgICAgICAgbmV3T2JqZWN0W2tleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIE9rZXkuc2xpY2UoMSldID0gZWxlbWVudFtrZXldO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBmaW5hbE9iamVjdCA9IG5ld09iamVjdCBhcyBUXHJcbiAgICAgIG9yaWdpbmFsQXJyYXkucHVzaChmaW5hbE9iamVjdClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3JpZ2luYWxBcnJheTtcclxuICB9XHJcblxyXG4gIHNldFRleHQocGFnZXNOdW1iZXI6IG51bWJlciwgaXRlbXNOdW1iZXI6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSkge1xyXG4gICAgICAvL1NldCBwYWdlcyB0ZXh0XHJcbiAgICAgIGlmIChwYWdlc051bWJlciA8IDMgfHwgcGFnZXNOdW1iZXIgPiAxMClcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VcIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VzXCIpO1xyXG4gICAgICAvL1NldCBpdGVtcyB0ZXh0XHJcbiAgICAgIGlmIChpdGVtc051bWJlciA8IDMgfHwgaXRlbXNOdW1iZXIgPiAxMClcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1cIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLml0ZW1zVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkl0ZW1zXCIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vU2V0IHBhZ2VzIHRleHRcclxuICAgICAgaWYgKHBhZ2VzTnVtYmVyID4gMSlcclxuICAgICAgICB0aGlzLnBhZ2VzVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhZ2VzXCIpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5wYWdlc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYWdlXCIpO1xyXG4gICAgICAvL1NldCBpdGVtcyB0ZXh0XHJcbiAgICAgIGlmIChpdGVtc051bWJlciA+IDEpXHJcbiAgICAgICAgdGhpcy5pdGVtc1RleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJdGVtc1wiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuaXRlbXNUZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSXRlbVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IFtdKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuRmlsdGVycy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gXCJcIikge1xyXG4gICAgICAgICAgY29uc3QgRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbRm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZpbHRlcnNWYWx1ZSgpIHtcclxuICAgIGxldCBmaWx0ZXJzID0ge307XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVycyAhPSBbXSkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLkZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWUgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IFwiXCIpIHtcclxuICAgICAgICAgIGNvbnN0IEZvcm1Db250cm9sTmFtZSA9IHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5Gb3JtQ29udHJvbE5hbWU7XHJcbiAgICAgICAgICBsZXQgQ29udHJvbFZhbHVlID0gdGhpcy5ncm91cC5jb250cm9sc1tGb3JtQ29udHJvbE5hbWVdLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKENvbnRyb2xWYWx1ZSAhPSB1bmRlZmluZWQgJiYgQ29udHJvbFZhbHVlICE9IG51bGwgJiYgQ29udHJvbFZhbHVlICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5GaWx0ZXJUeXBlID09IEZpbHRlclR5cGUuRGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KENvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGVsZW1lbnQgPSAwOyBlbGVtZW50IDwgQ29udHJvbFZhbHVlLmxlbmd0aDsgZWxlbWVudCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gQ29udHJvbFZhbHVlW2VsZW1lbnRdO1xyXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gQ29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZpbHRlclR5cGUgPT0gRmlsdGVyVHlwZS5BdXRvY29tcGxldGVUZXh0Qm94KVxyXG4gICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlID0gSlNPTi5zdHJpbmdpZnkoQ29udHJvbFZhbHVlKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZpbHRlclR5cGUgPT0gRmlsdGVyVHlwZS5UYWdJbnB1dClcclxuICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KENvbnRyb2xWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gQ29udHJvbFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZmlsdGVyc1t0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZV0gPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IEVsZW1lbnRqUXVlcnlTZWxlY3RvciA9IHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5qUXVlcnlTZWxlY3RvcjtcclxuICAgICAgICAgIGxldCBFbGVtZW50VmFsdWUgPSAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihFbGVtZW50alF1ZXJ5U2VsZWN0b3IpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKEVsZW1lbnRWYWx1ZSAhPSB1bmRlZmluZWQgJiYgRWxlbWVudFZhbHVlICE9IG51bGwpXHJcbiAgICAgICAgICAgIGZpbHRlcnNbdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWVdID0gRWxlbWVudFZhbHVlO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBmaWx0ZXJzW3RoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsdGVycztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4254,6 +4254,16 @@ class PagingComponent {
|
|
|
4254
4254
|
}, false);
|
|
4255
4255
|
}
|
|
4256
4256
|
}
|
|
4257
|
+
//Add click event on Reset Filter button
|
|
4258
|
+
if (this.options.ResetFilterButtonName != null) {
|
|
4259
|
+
const button = document.getElementsByName(this.options.ResetFilterButtonName)[0];
|
|
4260
|
+
if (button != undefined) {
|
|
4261
|
+
let element = button;
|
|
4262
|
+
element.addEventListener("click", (e) => {
|
|
4263
|
+
this.clearFilters();
|
|
4264
|
+
}, false);
|
|
4265
|
+
}
|
|
4266
|
+
}
|
|
4257
4267
|
if (this.options.TypeaheadSearchControlNames != null && this.options.TypeaheadSearchControlNames.length > 0) {
|
|
4258
4268
|
const TypeaheadSearchControlNames = this.options.TypeaheadSearchControlNames;
|
|
4259
4269
|
for (let index = 0; index < TypeaheadSearchControlNames.length; index++) {
|
|
@@ -4311,40 +4321,7 @@ class PagingComponent {
|
|
|
4311
4321
|
pagingDTO.TotalCount = this.totalRow;
|
|
4312
4322
|
pagingDTO.IsFilterUpdated = IsFilterUpdated;
|
|
4313
4323
|
let filters = {};
|
|
4314
|
-
|
|
4315
|
-
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
4316
|
-
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
4317
|
-
const FormControlName = this.options.Filters[index].FormControlName;
|
|
4318
|
-
let ControlValue = this.group.controls[FormControlName].value;
|
|
4319
|
-
if (ControlValue != undefined && ControlValue != null) {
|
|
4320
|
-
if (this.options.Filters[index].FilterType == FilterType.DatePicker) {
|
|
4321
|
-
if (Array.isArray(ControlValue)) {
|
|
4322
|
-
for (let element = 0; element < ControlValue.length; element++) {
|
|
4323
|
-
const value = ControlValue[element];
|
|
4324
|
-
filters[this.options.Filters[index].ActionParameterName] = value;
|
|
4325
|
-
}
|
|
4326
|
-
}
|
|
4327
|
-
else {
|
|
4328
|
-
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
4329
|
-
}
|
|
4330
|
-
}
|
|
4331
|
-
else {
|
|
4332
|
-
if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)
|
|
4333
|
-
ControlValue = JSON.stringify(ControlValue);
|
|
4334
|
-
if (this.options.Filters[index].FilterType == FilterType.TagInput)
|
|
4335
|
-
ControlValue = JSON.stringify(ControlValue);
|
|
4336
|
-
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
4337
|
-
}
|
|
4338
|
-
}
|
|
4339
|
-
}
|
|
4340
|
-
else {
|
|
4341
|
-
const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;
|
|
4342
|
-
let ElementValue = document.querySelector(ElementjQuerySelector).value;
|
|
4343
|
-
if (ElementValue != undefined && ElementValue != null)
|
|
4344
|
-
filters[this.options.Filters[index].ActionParameterName] = ElementValue;
|
|
4345
|
-
}
|
|
4346
|
-
}
|
|
4347
|
-
}
|
|
4324
|
+
filters = this.getFiltersValue();
|
|
4348
4325
|
//Set Filters object that sent to action URL
|
|
4349
4326
|
let filtersDTO = {
|
|
4350
4327
|
PagingDTO: pagingDTO,
|
|
@@ -4410,6 +4387,60 @@ class PagingComponent {
|
|
|
4410
4387
|
this.itemsText = this.utilityService.getResourceValue("Item");
|
|
4411
4388
|
}
|
|
4412
4389
|
}
|
|
4390
|
+
clearFilters() {
|
|
4391
|
+
if (this.options.Filters != null && this.options.Filters != []) {
|
|
4392
|
+
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
4393
|
+
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
4394
|
+
const FormControlName = this.options.Filters[index].FormControlName;
|
|
4395
|
+
this.group.controls[FormControlName].setValue(null);
|
|
4396
|
+
}
|
|
4397
|
+
}
|
|
4398
|
+
this.ReinitializePaging();
|
|
4399
|
+
}
|
|
4400
|
+
}
|
|
4401
|
+
getFiltersValue() {
|
|
4402
|
+
let filters = {};
|
|
4403
|
+
if (this.options.Filters != null && this.options.Filters != []) {
|
|
4404
|
+
for (let index = 0; index < this.options.Filters.length; index++) {
|
|
4405
|
+
if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != "") {
|
|
4406
|
+
const FormControlName = this.options.Filters[index].FormControlName;
|
|
4407
|
+
let ControlValue = this.group.controls[FormControlName].value;
|
|
4408
|
+
if (ControlValue != undefined && ControlValue != null && ControlValue != "") {
|
|
4409
|
+
if (this.options.Filters[index].FilterType == FilterType.DatePicker) {
|
|
4410
|
+
if (Array.isArray(ControlValue)) {
|
|
4411
|
+
for (let element = 0; element < ControlValue.length; element++) {
|
|
4412
|
+
const value = ControlValue[element];
|
|
4413
|
+
filters[this.options.Filters[index].ActionParameterName] = value;
|
|
4414
|
+
}
|
|
4415
|
+
}
|
|
4416
|
+
else {
|
|
4417
|
+
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
4418
|
+
}
|
|
4419
|
+
}
|
|
4420
|
+
else {
|
|
4421
|
+
if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)
|
|
4422
|
+
ControlValue = JSON.stringify(ControlValue);
|
|
4423
|
+
if (this.options.Filters[index].FilterType == FilterType.TagInput)
|
|
4424
|
+
ControlValue = JSON.stringify(ControlValue);
|
|
4425
|
+
filters[this.options.Filters[index].ActionParameterName] = ControlValue;
|
|
4426
|
+
}
|
|
4427
|
+
}
|
|
4428
|
+
else {
|
|
4429
|
+
filters[this.options.Filters[index].ActionParameterName] = null;
|
|
4430
|
+
}
|
|
4431
|
+
}
|
|
4432
|
+
else {
|
|
4433
|
+
const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;
|
|
4434
|
+
let ElementValue = document.querySelector(ElementjQuerySelector).value;
|
|
4435
|
+
if (ElementValue != undefined && ElementValue != null)
|
|
4436
|
+
filters[this.options.Filters[index].ActionParameterName] = ElementValue;
|
|
4437
|
+
else
|
|
4438
|
+
filters[this.options.Filters[index].ActionParameterName] = null;
|
|
4439
|
+
}
|
|
4440
|
+
}
|
|
4441
|
+
}
|
|
4442
|
+
return filters;
|
|
4443
|
+
}
|
|
4413
4444
|
}
|
|
4414
4445
|
PagingComponent.decorators = [
|
|
4415
4446
|
{ type: Component, args: [{
|
|
@@ -7223,6 +7254,8 @@ class PagingOptions {
|
|
|
7223
7254
|
/**listens to the window scroll instead of the actual element scroll. this allows to invoke a callback function in the scope of the element while listenning to the window scroll. */
|
|
7224
7255
|
this.ScrollWindow = true;
|
|
7225
7256
|
this.ForceDirection = ForceDirection.English;
|
|
7257
|
+
/** Clear Filter button selector */
|
|
7258
|
+
this.ResetFilterButtonName = null;
|
|
7226
7259
|
}
|
|
7227
7260
|
}
|
|
7228
7261
|
|