@vendasta/billing 10.9.3 → 10.11.0

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.
@@ -136,6 +136,9 @@ export class BillableItem {
136
136
  if (proto.retailUnitPrice) {
137
137
  m.retailUnitPrice = parseInt(proto.retailUnitPrice, 10);
138
138
  }
139
+ if (proto.status) {
140
+ m.status = enumStringToValue(e.SubscriptionStatus, proto.status);
141
+ }
139
142
  return m;
140
143
  }
141
144
  toApiJson() {
@@ -191,6 +194,9 @@ export class BillableItem {
191
194
  if (typeof this.retailUnitPrice !== 'undefined') {
192
195
  toReturn['retailUnitPrice'] = this.retailUnitPrice;
193
196
  }
197
+ if (typeof this.status !== 'undefined') {
198
+ toReturn['status'] = this.status;
199
+ }
194
200
  return toReturn;
195
201
  }
196
202
  }
@@ -354,6 +360,59 @@ export class ExpireBillableItemRequest {
354
360
  return toReturn;
355
361
  }
356
362
  }
363
+ export class ListSubscriptionsRequestFilters {
364
+ constructor(kwargs) {
365
+ if (!kwargs) {
366
+ return;
367
+ }
368
+ Object.assign(this, kwargs);
369
+ }
370
+ static fromProto(proto) {
371
+ let m = new ListSubscriptionsRequestFilters();
372
+ m = Object.assign(m, proto);
373
+ if (proto.status) {
374
+ m.status = enumStringToValue(e.SubscriptionStatus, proto.status);
375
+ }
376
+ if (proto.expiredDateGte) {
377
+ m.expiredDateGte = new Date(proto.expiredDateGte);
378
+ }
379
+ if (proto.expiredDateLte) {
380
+ m.expiredDateLte = new Date(proto.expiredDateLte);
381
+ }
382
+ if (proto.frequencies) {
383
+ m.frequencies = proto.frequencies.map((v) => enumStringToValue(e.Frequency, v));
384
+ }
385
+ return m;
386
+ }
387
+ toApiJson() {
388
+ const toReturn = {};
389
+ if (typeof this.skus !== 'undefined') {
390
+ toReturn['skus'] = this.skus;
391
+ }
392
+ if (typeof this.merchantId !== 'undefined') {
393
+ toReturn['merchantId'] = this.merchantId;
394
+ }
395
+ if (typeof this.customerId !== 'undefined') {
396
+ toReturn['customerId'] = this.customerId;
397
+ }
398
+ if (typeof this.searchTerm !== 'undefined') {
399
+ toReturn['searchTerm'] = this.searchTerm;
400
+ }
401
+ if (typeof this.status !== 'undefined') {
402
+ toReturn['status'] = this.status;
403
+ }
404
+ if (typeof this.expiredDateGte !== 'undefined' && this.expiredDateGte !== null) {
405
+ toReturn['expiredDateGte'] = 'toApiJson' in this.expiredDateGte ? this.expiredDateGte.toApiJson() : this.expiredDateGte;
406
+ }
407
+ if (typeof this.expiredDateLte !== 'undefined' && this.expiredDateLte !== null) {
408
+ toReturn['expiredDateLte'] = 'toApiJson' in this.expiredDateLte ? this.expiredDateLte.toApiJson() : this.expiredDateLte;
409
+ }
410
+ if (typeof this.frequencies !== 'undefined') {
411
+ toReturn['frequencies'] = this.frequencies;
412
+ }
413
+ return toReturn;
414
+ }
415
+ }
357
416
  export class ListBillableItemsRequestFilters {
358
417
  constructor(kwargs) {
359
418
  if (!kwargs) {
@@ -600,4 +659,62 @@ export class ListBillableItemsResponse {
600
659
  return toReturn;
601
660
  }
602
661
  }
603
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFnQnhCLFlBQVksTUFBbUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFiRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM5QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FBQztRQUN4RSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFBQyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUFDO1FBQ2xFLE9BQU8sQ0FBQyxDQUFD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SyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQUM7UUFDckcsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQzdKLElBQUksT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsY0FBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUFDO1FBQ25OLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2VkUmVxdWVzdE9wdGlvbnMsIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgcHJvcmF0ZWRUbzogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8ucHJvcmF0ZWRUbykge20ucHJvcmF0ZWRUbyA9IG5ldyBEYXRlKHByb3RvLnByb3JhdGVkVG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9yYXRlZFRvICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb3JhdGVkVG8gIT09IG51bGwpIHt0b1JldHVyblsncHJvcmF0ZWRUbyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9yYXRlZFRvID8gKHRoaXMucHJvcmF0ZWRUbyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9yYXRlZFRvO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgaXRlbXM6IEl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsnaXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbXMgPyAodGhpcy5pdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5CaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1JbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGV4cGlyeTogRGF0ZTtcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICB1cGRhdGVkOiBEYXRlO1xuICAgIGZyZXF1ZW5jeTogZS5GcmVxdWVuY3k7XG4gICAgbmV4dFJlbmV3YWw6IERhdGU7XG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmc7XG4gICAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgICBjdXN0b21lckFkZHJlc3M6IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcztcbiAgICBjdXN0b21Vbml0UHJpY2U6IG51bWJlcjtcbiAgICByZXRhaWxGcmVxdWVuY3k6IGUuRnJlcXVlbmN5O1xuICAgIG5leHRSZXRhaWxSZW5ld2FsOiBEYXRlO1xuICAgIHJldGFpbFVuaXRQcmljZTogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV4cGlyeSkge20uZXhwaXJ5ID0gbmV3IERhdGUocHJvdG8uZXhwaXJ5KTt9XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnVwZGF0ZWQpIHttLnVwZGF0ZWQgPSBuZXcgRGF0ZShwcm90by51cGRhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY3kpIHttLmZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8uZnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmVuZXdhbCkge20ubmV4dFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tZXJBZGRyZXNzKSB7bS5jdXN0b21lckFkZHJlc3MgPSBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyQWRkcmVzcyk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tVW5pdFByaWNlKSB7bS5jdXN0b21Vbml0UHJpY2UgPSBwYXJzZUludChwcm90by5jdXN0b21Vbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxGcmVxdWVuY3kpIHttLnJldGFpbEZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8ucmV0YWlsRnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmV0YWlsUmVuZXdhbCkge20ubmV4dFJldGFpbFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmV0YWlsUmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0YWlsVW5pdFByaWNlKSB7bS5yZXRhaWxVbml0UHJpY2UgPSBwYXJzZUludChwcm90by5yZXRhaWxVbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbGFibGVJdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY3knXSA9IHRoaXMuZnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZW5ld2FsID8gKHRoaXMubmV4dFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lck5hbWUnXSA9IHRoaXMuY3VzdG9tZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2R1Y3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9kdWN0TmFtZSddID0gdGhpcy5wcm9kdWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lckFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyQWRkcmVzcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jdXN0b21lckFkZHJlc3MgPyAodGhpcy5jdXN0b21lckFkZHJlc3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXJBZGRyZXNzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbVVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tVW5pdFByaWNlJ10gPSB0aGlzLmN1c3RvbVVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxGcmVxdWVuY3kgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbEZyZXF1ZW5jeSddID0gdGhpcy5yZXRhaWxGcmVxdWVuY3k7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09IG51bGwpIHt0b1JldHVyblsnbmV4dFJldGFpbFJlbmV3YWwnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgPyAodGhpcy5uZXh0UmV0YWlsUmVuZXdhbCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5uZXh0UmV0YWlsUmVuZXdhbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxVbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbFVuaXRQcmljZSddID0gdGhpcy5yZXRhaWxVbml0UHJpY2U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FuQmlsbEl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5DYW5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENhbkJpbGxJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbkJpbGxJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVVc2FnZVJlcXVlc3QgaW1wbGVtZW50cyBpLkNyZWF0ZVVzYWdlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICB1c2FnZURhdGU6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDcmVhdGVVc2FnZVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDcmVhdGVVc2FnZVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucXVhbnRpdHkpIHttLnF1YW50aXR5ID0gcGFyc2VJbnQocHJvdG8ucXVhbnRpdHksIDEwKTt9XG4gICAgICAgIGlmIChwcm90by51c2FnZURhdGUpIHttLnVzYWdlRGF0ZSA9IG5ldyBEYXRlKHByb3RvLnVzYWdlRGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNyZWF0ZVVzYWdlUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5xdWFudGl0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncXVhbnRpdHknXSA9IHRoaXMucXVhbnRpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNhZ2VEYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnVzYWdlRGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWyd1c2FnZURhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudXNhZ2VEYXRlID8gKHRoaXMudXNhZ2VEYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVzYWdlRGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MgaW1wbGVtZW50cyBpLkJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGNpdHk6IHN0cmluZztcbiAgICBzdGF0ZTogc3RyaW5nO1xuICAgIHppcDogc3RyaW5nO1xuICAgIGNvdW50cnk6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWRkcmVzcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWRkcmVzcyddID0gdGhpcy5hZGRyZXNzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NpdHknXSA9IHRoaXMuY2l0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdGUnXSA9IHRoaXMuc3RhdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuemlwICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd6aXAnXSA9IHRoaXMuemlwO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvdW50cnknXSA9IHRoaXMuY291bnRyeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5EZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGV4cGlyeTogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV4cGlyeSkge20uZXhwaXJ5ID0gbmV3IERhdGUocHJvdG8uZXhwaXJ5KTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBpcnkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJ5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyeSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHBpcnkgPyAodGhpcy5leHBpcnkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJ5O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNrdXM6IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdXMnXSA9IHRoaXMuc2t1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkdldEJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0QmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldEJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldEJpbGxhYmxlSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtOiBCaWxsYWJsZUl0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW0pIHttLml0ZW0gPSBCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKHByb3RvLml0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRCaWxsYWJsZUl0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW0gPyAodGhpcy5pdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc3Vic2NyaXB0aW9uS2V5czogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9uS2V5cykge20uc3Vic2NyaXB0aW9uS2V5cyA9IHByb3RvLnN1YnNjcmlwdGlvbktleXMubWFwKEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbktleXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9uS2V5cyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25LZXlzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbktleXMgPyAodGhpcy5zdWJzY3JpcHRpb25LZXlzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbktleXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBzdWJzY3JpcHRpb25zOiBCaWxsYWJsZUl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9ucykge20uc3Vic2NyaXB0aW9ucyA9IHByb3RvLnN1YnNjcmlwdGlvbnMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbnMgPyAodGhpcy5zdWJzY3JpcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXRlbSBpbXBsZW1lbnRzIGkuSXRlbUludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nU3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2JpbGxpbmdTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iaWxsaW5nU3RhcnQgPyAodGhpcy5iaWxsaW5nU3RhcnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmlsbGluZ1N0YXJ0O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnM7XG4gICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9ucztcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nT3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdPcHRpb25zID8gKHRoaXMucGFnaW5nT3B0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdPcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlYXJjaFRlcm0gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlYXJjaFRlcm0nXSA9IHRoaXMuc2VhcmNoVGVybTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtczogQmlsbGFibGVJdGVtW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW1zKSB7bS5pdGVtcyA9IHByb3RvLml0ZW1zLm1hcChCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nTWV0YWRhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nTWV0YWRhdGEgPyAodGhpcy5wYWdpbmdNZXRhZGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdNZXRhZGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
662
+ export class ListSubscriptionsRequest {
663
+ constructor(kwargs) {
664
+ if (!kwargs) {
665
+ return;
666
+ }
667
+ Object.assign(this, kwargs);
668
+ }
669
+ static fromProto(proto) {
670
+ let m = new ListSubscriptionsRequest();
671
+ m = Object.assign(m, proto);
672
+ if (proto.filters) {
673
+ m.filters = ListSubscriptionsRequestFilters.fromProto(proto.filters);
674
+ }
675
+ if (proto.pagingOptions) {
676
+ m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);
677
+ }
678
+ return m;
679
+ }
680
+ toApiJson() {
681
+ const toReturn = {};
682
+ if (typeof this.filters !== 'undefined' && this.filters !== null) {
683
+ toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;
684
+ }
685
+ if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {
686
+ toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;
687
+ }
688
+ return toReturn;
689
+ }
690
+ }
691
+ export class ListSubscriptionsResponse {
692
+ constructor(kwargs) {
693
+ if (!kwargs) {
694
+ return;
695
+ }
696
+ Object.assign(this, kwargs);
697
+ }
698
+ static fromProto(proto) {
699
+ let m = new ListSubscriptionsResponse();
700
+ m = Object.assign(m, proto);
701
+ if (proto.subscriptions) {
702
+ m.subscriptions = proto.subscriptions.map(BillableItem.fromProto);
703
+ }
704
+ if (proto.pagingMetadata) {
705
+ m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);
706
+ }
707
+ return m;
708
+ }
709
+ toApiJson() {
710
+ const toReturn = {};
711
+ if (typeof this.subscriptions !== 'undefined' && this.subscriptions !== null) {
712
+ toReturn['subscriptions'] = 'toApiJson' in this.subscriptions ? this.subscriptions.toApiJson() : this.subscriptions;
713
+ }
714
+ if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {
715
+ toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;
716
+ }
717
+ return toReturn;
718
+ }
719
+ }
720
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFnQnhCLFlBQVksTUFBbUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFiRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM5QixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FBQztRQUN4RSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFBQyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUFDO1FBQ2xFLE9BQU8sQ0FBQyxDQUFD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LFlBQVksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDdk0sSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDekssSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDekssSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FBQztRQUNwRixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxXQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUM7UUFDak0sSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FBQztRQUM3RixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFDO1FBQzFGLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZUFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUFDO1FBQ3pOLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FBQztRQUN0RyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQUM7UUFDdEcsSUFBSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxpQkFBeUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQUM7UUFDck8sSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUFDO1FBQ3RHLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQixZQUFZLE1BQXNDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBWEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0IzQixZQUFZLE1BQXNDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBYkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUFDO1FBQ2hFLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDL0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDckwsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtJQWFwQyxZQUFZLE1BQStDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBWEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUMxQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBWWxDLFlBQVksTUFBNkM7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFYRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUFDO1FBQ2xFLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBY2xDLFlBQVksTUFBNkM7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUFDO1FBQ3RELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFDO1FBQ25LLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywrQkFBK0I7SUFvQnhDLFlBQVksTUFBbUQ7UUFDM0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFmRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1FBQzlDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFBQyxDQUFDLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUF1QixDQUFDLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQUM7UUFDM0csSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFO1lBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7U0FBQztRQUM5RSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFBQyxDQUFDLENBQUMsY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUFDO1FBQzlFLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFjLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUFDO1FBQzlILE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFDO1FBQ3JFLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxjQUFzQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQUM7UUFDbk4sSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxjQUFzQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQUM7UUFDbk4sSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FBQztRQUMxRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sK0JBQStCO0lBV3hDLFlBQVksTUFBbUQ7UUFDM0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFYRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1FBQzlDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHNCQUFzQjtJQVkvQixZQUFZLE1BQTBDO1FBQ2xELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBWEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUFZLE1BQTJDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBWkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUN0QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUFDO1FBQzlELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxJQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUN2SixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sNEJBQTRCO0lBVXJDLFlBQVksTUFBZ0Q7UUFDeEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1FBQzNDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRTtZQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDekgsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZ0JBQXdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFDO1FBQy9OLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyw2QkFBNkI7SUFVdEMsWUFBWSxNQUFpRDtRQUN6RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVpELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFDNUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDN0YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGFBQXFCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FBQztRQUM3TSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sSUFBSTtJQWFiLFlBQVksTUFBd0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FBQztRQUN4RSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsSUFBSSxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUFDO1FBQ3ZNLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywrQkFBK0I7SUFZeEMsWUFBWSxNQUFtRDtRQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVhELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLCtCQUErQixFQUFFLENBQUM7UUFDOUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFhakMsWUFBWSxNQUE0QztRQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQWJELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDdkMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsK0JBQStCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUFDO1FBQzFGLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUFDO1FBQ2hHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxhQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQUM7UUFDN00sSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBWWxDLFlBQVksTUFBNkM7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFiRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3hDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUFDO1FBQ3JHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUM3SixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGNBQXNCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuTixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQVksTUFBNEM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFiRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFBQyxDQUFDLENBQUMsT0FBTyxHQUFHLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FBQztRQUMxRixJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFBQyxDQUFDLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7U0FBQztRQUNoRyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDekssSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsYUFBcUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUFDO1FBQzdNLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFZbEMsWUFBWSxNQUE2QztRQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQWJELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDeEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDN0YsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFO1lBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQUM7UUFDckcsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGFBQXFCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FBQztRQUM3TSxJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGNBQXNCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuTixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYWdlZFJlcXVlc3RPcHRpb25zLCBQYWdlZFJlc3BvbnNlTWV0YWRhdGEgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgYmlsbGluZ1N0YXJ0OiBEYXRlO1xuICAgIHByb3JhdGVkVG86IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYmlsbGluZ1N0YXJ0KSB7bS5iaWxsaW5nU3RhcnQgPSBuZXcgRGF0ZShwcm90by5iaWxsaW5nU3RhcnQpO31cbiAgICAgICAgaWYgKHByb3RvLnByb3JhdGVkVG8pIHttLnByb3JhdGVkVG8gPSBuZXcgRGF0ZShwcm90by5wcm9yYXRlZFRvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5iaWxsaW5nU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnYmlsbGluZ1N0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJpbGxpbmdTdGFydCA/ICh0aGlzLmJpbGxpbmdTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iaWxsaW5nU3RhcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcmF0ZWRUbyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcm9yYXRlZFRvICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Byb3JhdGVkVG8nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucHJvcmF0ZWRUbyA/ICh0aGlzLnByb3JhdGVkVG8gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJvcmF0ZWRUbzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3QgaW1wbGVtZW50cyBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGl0ZW1zOiBJdGVtW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaXRlbXMpIHttLml0ZW1zID0gcHJvdG8uaXRlbXMubWFwKEl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxhYmxlSXRlbSBpbXBsZW1lbnRzIGkuQmlsbGFibGVJdGVtSW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBleHBpcnk6IERhdGU7XG4gICAgYmlsbGluZ1N0YXJ0OiBEYXRlO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbiAgICBmcmVxdWVuY3k6IGUuRnJlcXVlbmN5O1xuICAgIG5leHRSZW5ld2FsOiBEYXRlO1xuICAgIGN1c3RvbWVyTmFtZTogc3RyaW5nO1xuICAgIHByb2R1Y3ROYW1lOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJBZGRyZXNzOiBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3M7XG4gICAgY3VzdG9tVW5pdFByaWNlOiBudW1iZXI7XG4gICAgcmV0YWlsRnJlcXVlbmN5OiBlLkZyZXF1ZW5jeTtcbiAgICBuZXh0UmV0YWlsUmVuZXdhbDogRGF0ZTtcbiAgICByZXRhaWxVbml0UHJpY2U6IG51bWJlcjtcbiAgICBzdGF0dXM6IGUuU3Vic2NyaXB0aW9uU3RhdHVzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV4cGlyeSkge20uZXhwaXJ5ID0gbmV3IERhdGUocHJvdG8uZXhwaXJ5KTt9XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnVwZGF0ZWQpIHttLnVwZGF0ZWQgPSBuZXcgRGF0ZShwcm90by51cGRhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY3kpIHttLmZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8uZnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmVuZXdhbCkge20ubmV4dFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tZXJBZGRyZXNzKSB7bS5jdXN0b21lckFkZHJlc3MgPSBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyQWRkcmVzcyk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tVW5pdFByaWNlKSB7bS5jdXN0b21Vbml0UHJpY2UgPSBwYXJzZUludChwcm90by5jdXN0b21Vbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxGcmVxdWVuY3kpIHttLnJldGFpbEZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8ucmV0YWlsRnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmV0YWlsUmVuZXdhbCkge20ubmV4dFJldGFpbFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmV0YWlsUmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0YWlsVW5pdFByaWNlKSB7bS5yZXRhaWxVbml0UHJpY2UgPSBwYXJzZUludChwcm90by5yZXRhaWxVbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU3Vic2NyaXB0aW9uU3RhdHVzPihlLlN1YnNjcmlwdGlvblN0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbGFibGVJdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY3knXSA9IHRoaXMuZnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZW5ld2FsID8gKHRoaXMubmV4dFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lck5hbWUnXSA9IHRoaXMuY3VzdG9tZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2R1Y3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9kdWN0TmFtZSddID0gdGhpcy5wcm9kdWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lckFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyQWRkcmVzcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jdXN0b21lckFkZHJlc3MgPyAodGhpcy5jdXN0b21lckFkZHJlc3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXJBZGRyZXNzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbVVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tVW5pdFByaWNlJ10gPSB0aGlzLmN1c3RvbVVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxGcmVxdWVuY3kgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbEZyZXF1ZW5jeSddID0gdGhpcy5yZXRhaWxGcmVxdWVuY3k7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09IG51bGwpIHt0b1JldHVyblsnbmV4dFJldGFpbFJlbmV3YWwnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgPyAodGhpcy5uZXh0UmV0YWlsUmVuZXdhbCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5uZXh0UmV0YWlsUmVuZXdhbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxVbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbFVuaXRQcmljZSddID0gdGhpcy5yZXRhaWxVbml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbkJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ2FuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYW5CaWxsSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYW5CaWxsSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhbkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlVXNhZ2VSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgdXNhZ2VEYXRlOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVXNhZ2VSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVXNhZ2VSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnF1YW50aXR5KSB7bS5xdWFudGl0eSA9IHBhcnNlSW50KHByb3RvLnF1YW50aXR5LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udXNhZ2VEYXRlKSB7bS51c2FnZURhdGUgPSBuZXcgRGF0ZShwcm90by51c2FnZURhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzYWdlRGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51c2FnZURhdGUgIT09IG51bGwpIHt0b1JldHVyblsndXNhZ2VEYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVzYWdlRGF0ZSA/ICh0aGlzLnVzYWdlRGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51c2FnZURhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3NJbnRlcmZhY2Uge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBjaXR5OiBzdHJpbmc7XG4gICAgc3RhdGU6IHN0cmluZztcbiAgICB6aXA6IHN0cmluZztcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FkZHJlc3MnXSA9IHRoaXMuYWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jaXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjaXR5J10gPSB0aGlzLmNpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXRlJ10gPSB0aGlzLnN0YXRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnppcCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnemlwJ10gPSB0aGlzLnppcDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5J10gPSB0aGlzLmNvdW50cnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5FeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBleHBpcnk6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5leHBpcnkpIHttLmV4cGlyeSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyeSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJ5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyeSAhPT0gbnVsbCkge3RvUmV0dXJuWydleHBpcnknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJ5ID8gKHRoaXMuZXhwaXJ5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV4cGlyeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIHtcbiAgICBza3VzOiBzdHJpbmdbXTtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBzdGF0dXM6IGUuU3Vic2NyaXB0aW9uU3RhdHVzO1xuICAgIGV4cGlyZWREYXRlR3RlOiBEYXRlO1xuICAgIGV4cGlyZWREYXRlTHRlOiBEYXRlO1xuICAgIGZyZXF1ZW5jaWVzOiBlLkZyZXF1ZW5jeVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3RhdHVzKSB7bS5zdGF0dXMgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlN1YnNjcmlwdGlvblN0YXR1cz4oZS5TdWJzY3JpcHRpb25TdGF0dXMsIHByb3RvLnN0YXR1cyk7fVxuICAgICAgICBpZiAocHJvdG8uZXhwaXJlZERhdGVHdGUpIHttLmV4cGlyZWREYXRlR3RlID0gbmV3IERhdGUocHJvdG8uZXhwaXJlZERhdGVHdGUpO31cbiAgICAgICAgaWYgKHByb3RvLmV4cGlyZWREYXRlTHRlKSB7bS5leHBpcmVkRGF0ZUx0ZSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyZWREYXRlTHRlKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY2llcykge20uZnJlcXVlbmNpZXMgPSBwcm90by5mcmVxdWVuY2llcy5tYXAoKHY6IHN0cmluZykgPT4gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCB2KSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3VzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3VzJ10gPSB0aGlzLnNrdXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWFyY2hUZXJtICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWFyY2hUZXJtJ10gPSB0aGlzLnNlYXJjaFRlcm07fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyZWREYXRlR3RlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyZWREYXRlR3RlID8gKHRoaXMuZXhwaXJlZERhdGVHdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJlZERhdGVHdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJlZERhdGVMdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJlZERhdGVMdGUgPyAodGhpcy5leHBpcmVkRGF0ZUx0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcmVkRGF0ZUx0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mcmVxdWVuY2llcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZnJlcXVlbmNpZXMnXSA9IHRoaXMuZnJlcXVlbmNpZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyBpbXBsZW1lbnRzIGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSB7XG4gICAgc2t1czogc3RyaW5nW107XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1cyddID0gdGhpcy5za3VzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0QmlsbGFibGVJdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGl0ZW06IEJpbGxhYmxlSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaXRlbSkge20uaXRlbSA9IEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8ocHJvdG8uaXRlbSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldEJpbGxhYmxlSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW0nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbSA/ICh0aGlzLml0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzdWJzY3JpcHRpb25LZXlzOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25LZXlzKSB7bS5zdWJzY3JpcHRpb25LZXlzID0gcHJvdG8uc3Vic2NyaXB0aW9uS2V5cy5tYXAoR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9uS2V5cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdWJzY3JpcHRpb25LZXlzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbktleXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3Vic2NyaXB0aW9uS2V5cyA/ICh0aGlzLnN1YnNjcmlwdGlvbktleXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3Vic2NyaXB0aW9uS2V5czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbnM6IEJpbGxhYmxlSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25zKSB7bS5zdWJzY3JpcHRpb25zID0gcHJvdG8uc3Vic2NyaXB0aW9ucy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdWJzY3JpcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3Vic2NyaXB0aW9ucyA/ICh0aGlzLnN1YnNjcmlwdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3Vic2NyaXB0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtIGltcGxlbWVudHMgaS5JdGVtSW50ZXJmYWNlIHtcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEl0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5iaWxsaW5nU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnYmlsbGluZ1N0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJpbGxpbmdTdGFydCA/ICh0aGlzLmJpbGxpbmdTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iaWxsaW5nU3RhcnQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleUludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycztcbiAgICBwYWdpbmdPcHRpb25zOiBQYWdlZFJlcXVlc3RPcHRpb25zO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycy5mcm9tUHJvdG8ocHJvdG8uZmlsdGVycyk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nT3B0aW9ucykge20ucGFnaW5nT3B0aW9ucyA9IFBhZ2VkUmVxdWVzdE9wdGlvbnMuZnJvbVByb3RvKHByb3RvLnBhZ2luZ09wdGlvbnMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdPcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ09wdGlvbnMgPyAodGhpcy5wYWdpbmdPcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ09wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VhcmNoVGVybSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VhcmNoVGVybSddID0gdGhpcy5zZWFyY2hUZXJtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGl0ZW1zOiBCaWxsYWJsZUl0ZW1bXTtcbiAgICBwYWdpbmdNZXRhZGF0YTogUGFnZWRSZXNwb25zZU1ldGFkYXRhO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaXRlbXMpIHttLml0ZW1zID0gcHJvdG8uaXRlbXMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ01ldGFkYXRhKSB7bS5wYWdpbmdNZXRhZGF0YSA9IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YS5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nTWV0YWRhdGEpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsnaXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbXMgPyAodGhpcy5pdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdNZXRhZGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdNZXRhZGF0YSA/ICh0aGlzLnBhZ2luZ01ldGFkYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ01ldGFkYXRhO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXJzOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nT3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdPcHRpb25zID8gKHRoaXMucGFnaW5nT3B0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdPcHRpb25zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbnM6IEJpbGxhYmxlSXRlbVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhOiBQYWdlZFJlc3BvbnNlTWV0YWRhdGE7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25zKSB7bS5zdWJzY3JpcHRpb25zID0gcHJvdG8uc3Vic2NyaXB0aW9ucy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nTWV0YWRhdGEpIHttLnBhZ2luZ01ldGFkYXRhID0gUGFnZWRSZXNwb25zZU1ldGFkYXRhLmZyb21Qcm90byhwcm90by5wYWdpbmdNZXRhZGF0YSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25zID8gKHRoaXMuc3Vic2NyaXB0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
@@ -5,7 +5,7 @@
5
5
  // Objects Index.
6
6
  // *********************************
7
7
  export { PagedRequestOptions, PagedResponseMetadata, } from './common';
8
- export { BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, BillableItem, CanBillItemRequest, CreateUsageRequest, BillableItemCustomerAddress, DeleteBillableItemRequest, ExpireBillableItemRequest, ListBillableItemsRequestFilters, GetBillableItemRequest, GetBillableItemResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsResponse, Item, GetMultiSubscriptionsRequestKey, ListBillableItemsRequest, ListBillableItemsResponse, } from './billable-item';
8
+ export { BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, BillableItem, CanBillItemRequest, CreateUsageRequest, BillableItemCustomerAddress, DeleteBillableItemRequest, ExpireBillableItemRequest, ListSubscriptionsRequestFilters, ListBillableItemsRequestFilters, GetBillableItemRequest, GetBillableItemResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsResponse, Item, GetMultiSubscriptionsRequestKey, ListBillableItemsRequest, ListBillableItemsResponse, ListSubscriptionsRequest, ListSubscriptionsResponse, } from './billable-item';
9
9
  export { AppliedDiscount, } from './applied-discount';
10
10
  export { Bundle, BundleItem, BundlePricing, GetMultiBundleResponseBundlesEntry, ListBundlesRequestFilters, GetMultiBundleRequest, GetMultiBundleResponse, ListBundlesRequest, ListBundlesResponse, BundleItemPrice, BundlePricingPriceAndFrequency, UpsertBundleRequest, } from './bundle';
11
11
  export { Commitment, } from './commitment';
@@ -46,4 +46,4 @@ export { DeleteRecurringInvoiceRequest, GetRecurringInvoiceRequest, ListRecurrin
46
46
  export { CreateMerchantServicesReportRun, GetMerchantServicesReportRun, MerchantServicesReportRun, } from './report-run';
47
47
  export { Access, } from './annotations';
48
48
  export { DeleteRetailPricingRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetStatisticsRequest, GetStatisticsResponse, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonRequest, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetMultiBundleRetailPricingResponsePricesEntry, UpsertRetailPricingRequestPricingEntry, GetMultiRetailPricingResponseProductPricesEntry, GetMultiProductPricingResponseProductPricesEntry, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, StartRevRecTemplateBackfillRequest, UpsertRetailPricingRequest, } from './api';
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLElBQUksRUFDSiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUM1QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCxlQUFlLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILE1BQU0sRUFDTixVQUFVLEVBQ1YsYUFBYSxFQUNiLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxVQUFVLEdBQ2IsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNILFFBQVEsRUFDUix1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4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Q0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDBEQUEwRCxFQUMxRCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBEQUEwRCxFQUMxRCw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLCtDQUErQyxFQUMvQyxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLDBDQUEwQyxFQUMxQyxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzdCLE1BQU0sT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzIEluZGV4LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5leHBvcnQge1xuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxufSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQ3JlYXRlVXNhZ2VSZXF1ZXN0LFxuICAgIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyxcbiAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgSXRlbSxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlLFxufSBmcm9tICcuL2JpbGxhYmxlLWl0ZW0nO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWREaXNjb3VudCxcbn0gZnJvbSAnLi9hcHBsaWVkLWRpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBCdW5kbGUsXG4gICAgQnVuZGxlSXRlbSxcbiAgICBCdW5kbGVQcmljaW5nLFxuICAgIEdldE11bHRpQnVuZGxlUmVzcG9uc2VCdW5kbGVzRW50cnksXG4gICAgTGlzdEJ1bmRsZXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3QsXG4gICAgTGlzdEJ1bmRsZXNSZXNwb25zZSxcbiAgICBCdW5kbGVJdGVtUHJpY2UsXG4gICAgQnVuZGxlUHJpY2luZ1ByaWNlQW5kRnJlcXVlbmN5LFxuICAgIFVwc2VydEJ1bmRsZVJlcXVlc3QsXG59IGZyb20gJy4vYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBDb21taXRtZW50LFxufSBmcm9tICcuL2NvbW1pdG1lbnQnO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2VDb250cmFjdHNFbnRyeSxcbiAgICBDcmVhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgQ3JlYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRDb250cmFjdFJlcXVlc3QsXG4gICAgR2V0Q29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZSxcbiAgICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3RzUmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0TXV0YXRpb24sXG4gICAgUmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0U3Vic2NyaXB0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9jb250cmFjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3VzdG9tZXJTdW1tYXJ5LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXNwb25zZSxcbn0gZnJvbSAnLi9jdXN0b21lci1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBCYW5rQWNjb3VudCxcbiAgICBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0LFxuICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVzcG9uc2UsXG4gICAgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9leHRlcm5hbC1hY2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0U3VtbWFyeURpc2NvdW50LFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0LFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlLFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5U0tVUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3QsXG4gICAgUHJpY2luZyxcbiAgICBQcm9kdWN0U3VtbWFyeSxcbiAgICBSZXRlbnRpb25NZXRyaWNzLFxuICAgIFByaWNpbmdSdWxlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2VTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwLFxufSBmcm9tICcuL3Byb2R1Y3Qtc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlRGlzY291bnRSZXF1ZXN0LFxuICAgIERpc2NvdW50LFxuICAgIEV4cGlyZURpc2NvdW50UmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZURpc2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZFRheFJhdGUsXG59IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgRmllbGRNYXNrLFxufSBmcm9tICcuL2ZpZWxkLW1hc2snO1xuXG5leHBvcnQge1xuICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2UsXG4gICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlUYXhSZXF1ZXN0LFxuICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgTGlzdFRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlc3BvbnNlLFxuICAgIFRheFJhdGUsXG4gICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi90YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEJ1bmRsZSxcbiAgICBBcHBsaWVkQnVuZGxlSXRlbSxcbn0gZnJvbSAnLi9hcHBsaWVkLWJ1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQWRkQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0LFxuICAgIENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2UsXG4gICAgSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVyc0RhdGVGaWx0ZXIsXG4gICAgRGVsZXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgIEdldEludm9pY2VSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUGF5bWVudExpbmtJdGVtLFxuICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVzcG9uc2UsXG4gICAgU2VuZEludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBVcGRhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVm9pZEludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL2ludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIEFjY291bnRCYWxhbmNlLFxuICAgIEJhbGFuY2UsXG4gICAgQmFsYW5jZUFtb3VudCxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbiAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBEZWZhdWx0Q3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIEdldE1lcmNoYW50UmVxdWVzdCxcbiAgICBHZXRNZXJjaGFudFJlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZSxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0LFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFBheW91dFN1bW1hcnlSZXF1ZXN0LFxuICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UsXG4gICAgTWVyY2hhbnQsXG4gICAgUmV0YWlsQ29uZmlndXJhdGlvbixcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2VSZXRhaWxDb25maWd1cmF0aW9uc0VudHJ5LFxuICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3QsXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVzcG9uc2UsXG4gICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdCxcbiAgICBTZXRBdXRvUG9zdEludm9pY2VzUmVxdWVzdCxcbiAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgU2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3Jkc1JlcXVlc3QsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL21lcmNoYW50JztcblxuZXhwb3J0IHtcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3QsXG4gICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXNwb25zZSxcbiAgICBNZXJjaGFudFJlcG9ydCxcbn0gZnJvbSAnLi9tZXJjaGFudC1yZXBvcnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0LFxuICAgIE1ldGVyZWRDb21wb25lbnQsXG4gICAgVGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXRlcmVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgQWRqdXN0bWVudCxcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlUHJvdmlkZXJQdWJsaWNLZXlSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXF1ZXN0TGlzdFJldGFpbFRyYW5zYWN0aW9uc0ZpbHRlcnMsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXltZW50LFxuICAgIFJldGFpbFBheW1lbnRzRW5hYmxlZFJlcXVlc3QsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVzcG9uc2UsXG4gICAgUmV0YWlsUmVmdW5kLFxuICAgIFJldGFpbFN0YXR1c1JlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2UsXG4gICAgUmV0YWlsVHJhbnNhY3Rpb24sXG4gICAgU3VibWl0RXZpZGVuY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25FcnJvcixcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvblJlcXVpcmVtZW50cyxcbn0gZnJvbSAnLi9wYXltZW50JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgRGVsZXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZSxcbiAgICBQYXltZW50Q2FyZCxcbiAgICBTZXREZWZhdWx0UGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxufSBmcm9tICcuL3BheW1lbnQtY2FyZCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEZlZSxcbiAgICBGZWUsXG59IGZyb20gJy4vZmVlJztcblxuZXhwb3J0IHtcbiAgICBDb21wb25lbnRQcmljaW5nLFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBQcmljaW5nUGxhbixcbiAgICBQcmljaW5nUGxhblByb2R1Y3RQcmljaW5nLFxuICAgIFByb2R1Y3RQcmljaW5nUnVsZSxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4nO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgRGVsZXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBHZXRQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdExpc3RQcmljaW5nUGxhblByb2R1Y3RzRmlsdGVycyxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3QsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcmljaW5nUGxhblByb2R1Y3RQcmljaW5nRW50cnksXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIFVwc2VydFdob2xlc2FsZVByaWNpbmdSZXF1ZXN0LFxufSBmcm9tICcuL3ByaWNpbmctcGxhbi1wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQcm9kdWN0UmVxdWVzdCxcbiAgICBEZWxldGVQcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlLFxuICAgIExpc3RQcm9kdWN0c1JlcXVlc3RMaXN0UHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcm9kdWN0c1JlcXVlc3QsXG4gICAgTGlzdFByb2R1Y3RzUmVzcG9uc2UsXG4gICAgUHJvZHVjdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZVByb2R1Y3RzRW50cnksXG4gICAgVXBkYXRlUHJvZHVjdFJlcXVlc3QsXG59IGZyb20gJy4vcHJvZHVjdCc7XG5cbmV4cG9ydCB7XG4gICAgUHJvZHVjdFByaWNlcyxcbiAgICBQcm9kdWN0UHJpY2luZyxcbiAgICBXaG9sZXNhbGVDb3N0SXRlbVJlcXVlc3QsXG59IGZyb20gJy4vcHJvZHVjdC1wcmljaW5nJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQ3JlZGl0LFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VCaWxsaW5nU3RyYXRlZ3lGaWx0ZXIsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0TGlzdFB1cmNoYXNlSXRlbXNGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlUmVzcG9uc2UsXG4gICAgUHVyY2hhc2UsXG4gICAgUHVyY2hhc2VJdGVtLFxuICAgIFJldHJ5UHVyY2hhc2VSZXF1ZXN0LFxuICAgIFZvaWRQdXJjaGFzZVJlcXVlc3QsXG59IGZyb20gJy4vcHVyY2hhc2UnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVJlZnVuZFJlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVzcG9uc2UsXG4gICAgUmVmdW5kLFxufSBmcm9tICcuL3JlZnVuZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlU2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdExpc3RTYWxlc0NyZWRpdE5vdGVGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXNwb25zZSxcbiAgICBTYWxlc0NyZWRpdE5vdGUsXG59IGZyb20gJy4vc2FsZXMtY3JlZGl0LW5vdGUnO1xuXG5leHBvcnQge1xuICAgIEdldFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgR2V0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3RMaXN0U2FsZXNJbnZvaWNlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgUG9zdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgU2FsZXNJbnZvaWNlLFxuICAgIFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3QsXG4gICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QsXG59IGZyb20gJy4vc2FsZXMtaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgU3Vic2NyaWJlVmFsaWRhdGlvbixcbn0gZnJvbSAnLi9zdWJzY3JpYmUtdmFsaWRhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWxpZ25tZW50U3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0LFxuICAgIENoYW5nZUZyZXF1ZW5jeVJlcXVlc3QsXG4gICAgQ2hhbmdlUmVuZXdhbERhdGVSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIFNldFJlbmV3YWxTdGFydFJlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTa3VzRW50cnksXG4gICAgU3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U3Vic2NyaXB0aW9uSXRlbSxcbiAgICBWYWxpZGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQ29udHJhY3REb2N1bWVudCxcbiAgICBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1Jlc3BvbnNlLFxufSBmcm9tICcuL2NvbnRyYWN0LWRvY3VtZW50JztcblxuZXhwb3J0IHtcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlc3BvbnNlLFxuICAgIFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBVcHNlcnRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL3JldGFpbC1jdXN0b21lci1jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBZGRDcmVkaXRSZXF1ZXN0LFxuICAgIENyZWRpdEJhbGFuY2UsXG4gICAgR2V0QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0QmFsYW5jZVJlc3BvbnNlLFxufSBmcm9tICcuL2NyZWRpdCc7XG5cbmV4cG9ydCB7XG4gICAgQWRkVGVtcGxhdGVCdW5kbGVSZXF1ZXN0LFxuICAgIEFkZFRlbXBsYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIENyZWF0ZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBDcmVhdGVUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIERlbGV0ZUludm9pY2VUZW1wbGF0ZVJlcXVlc3QsXG4gICAgRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIEdldEludm9pY2VUZW1wbGF0ZVJlcXVlc3QsXG4gICAgR2V0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2UsXG4gICAgSW52b2ljZVRlbXBsYXRlLFxuICAgIEludm9pY2VUZW1wbGF0ZUl0ZW0sXG4gICAgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL2ludm9pY2UtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICAgIERlbGV0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIEdldFJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnMsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXNwb25zZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlLFxuICAgIFJlY3VycmluZ0ludm9pY2VCdW5kbGUsXG4gICAgUmVjdXJyaW5nSW52b2ljZUl0ZW0sXG4gICAgUmVjdXJyaW5nSW52b2ljZUxpbmVJdGVtLFxuICAgIFVwZGF0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL3JlY3VycmluZy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbn0gZnJvbSAnLi9yZXBvcnQtcnVuJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQge1xuICAgIERlbGV0ZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVzcG9uc2UsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXF1ZXN0LFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVdob2xlc2FsZUNvc3RSZXF1ZXN0LFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlc3BvbnNlLFxuICAgIEdldFB1cmNoYXNlQ29zdFJlcXVlc3QsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVzcG9uc2UsXG4gICAgR2V0UmV2ZW51ZVN0YXRzUmVxdWVzdCxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXNwb25zZSxcbiAgICBHZXRTdGF0aXN0aWNzUmVxdWVzdCxcbiAgICBHZXRTdGF0aXN0aWNzUmVzcG9uc2UsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlcXVlc3RHZXRXaG9sZXNhbGVDb21wYXJpc29uRmlsdGVycyxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdCxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2UsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3BvbnNlR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3VsdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXNwb25zZVByaWNlc0VudHJ5LFxuICAgIFVwc2VydFJldGFpbFByaWNpbmdSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZVByb2R1Y3RQcmljZXNFbnRyeSxcbiAgICBTZXRXaG9sZXNhbGVQcm9kdWN0U3RyYXRlZ3lSZXF1ZXN0LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RWb2x1bWVDb21taXRtZW50UmVxdWVzdCxcbiAgICBTdGFydFJldlJlY1RlbXBsYXRlQmFja2ZpbGxSZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbFByaWNpbmdSZXF1ZXN0LFxufSBmcm9tICcuL2FwaSc7XG5cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUM1QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCxlQUFlLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILE1BQU0sRUFDTixVQUFVLEVBQ1YsYUFBYSxFQUNiLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxVQUFVLEdBQ2IsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNILFFBQVEsRUFDUix1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0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QixPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDBEQUEwRCxFQUMxRCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBEQUEwRCxFQUMxRCw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLCtDQUErQyxFQUMvQyxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLDBDQUEwQyxFQUMxQyxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzdCLE1BQU0sT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzIEluZGV4LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5leHBvcnQge1xuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxufSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQ3JlYXRlVXNhZ2VSZXF1ZXN0LFxuICAgIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyxcbiAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG59IGZyb20gJy4vYmlsbGFibGUtaXRlbSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZERpc2NvdW50LFxufSBmcm9tICcuL2FwcGxpZWQtZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEJ1bmRsZSxcbiAgICBCdW5kbGVJdGVtLFxuICAgIEJ1bmRsZVByaWNpbmcsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZUJ1bmRsZXNFbnRyeSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpQnVuZGxlUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgICBMaXN0QnVuZGxlc1Jlc3BvbnNlLFxuICAgIEJ1bmRsZUl0ZW1QcmljZSxcbiAgICBCdW5kbGVQcmljaW5nUHJpY2VBbmRGcmVxdWVuY3ksXG4gICAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIENvbW1pdG1lbnQsXG59IGZyb20gJy4vY29tbWl0bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQ29udHJhY3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZUNvbnRyYWN0c0VudHJ5LFxuICAgIENyZWF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBDcmVhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIEdldENvbnRyYWN0UmVxdWVzdCxcbiAgICBHZXRDb250cmFjdFJlc3BvbnNlLFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIExpc3RDb250cmFjdHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdHNSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3RNdXRhdGlvbixcbiAgICBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RTdWJzY3JpcHRpb25SZXF1ZXN0LFxufSBmcm9tICcuL2NvbnRyYWN0JztcblxuZXhwb3J0IHtcbiAgICBDdXN0b21lclN1bW1hcnksXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1Jlc3BvbnNlLFxufSBmcm9tICcuL2N1c3RvbWVyLXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIEJhbmtBY2NvdW50LFxuICAgIENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3QsXG4gICAgRGVsZXRlQmFua0FjY291bnRSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXNwb25zZSxcbiAgICBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2V4dGVybmFsLWFjY291bnQnO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RTdW1tYXJ5RGlzY291bnQsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3QsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlTS1VSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdCxcbiAgICBQcmljaW5nLFxuICAgIFByb2R1Y3RTdW1tYXJ5LFxuICAgIFJldGVudGlvbk1ldHJpY3MsXG4gICAgUHJpY2luZ1J1bGUsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZVN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXAsXG59IGZyb20gJy4vcHJvZHVjdC1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVEaXNjb3VudFJlcXVlc3QsXG4gICAgRGlzY291bnQsXG4gICAgRXhwaXJlRGlzY291bnRSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVzcG9uc2UsXG4gICAgVXBkYXRlRGlzY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2Rpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkVGF4UmF0ZSxcbn0gZnJvbSAnLi9hcHBsaWVkLXRheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBGaWVsZE1hc2ssXG59IGZyb20gJy4vZmllbGQtbWFzayc7XG5cbmV4cG9ydCB7XG4gICAgQXJjaGl2ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVUYXhSZXNwb25zZSxcbiAgICBDcmVhdGVUYXhSZXF1ZXN0LFxuICAgIExpc3RUYXhSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgR2V0TXVsdGlUYXhSZXNwb25zZSxcbiAgICBMaXN0VGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVzcG9uc2UsXG4gICAgVGF4UmF0ZSxcbiAgICBVcGRhdGVUYXhSZXF1ZXN0LFxufSBmcm9tICcuL3RheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQnVuZGxlLFxuICAgIEFwcGxpZWRCdW5kbGVJdGVtLFxufSBmcm9tICcuL2FwcGxpZWQtYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBBZGRCdW5kbGVSZXF1ZXN0LFxuICAgIEFkZEJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZExpbmVJdGVtUmVxdWVzdCxcbiAgICBBZGRMaW5lSXRlbVJlc3BvbnNlLFxuICAgIENoYXJnZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBDcmVhdGVQYXltZW50TGlua1JlcXVlc3QsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXNwb25zZSxcbiAgICBJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzRGF0ZUZpbHRlcixcbiAgICBEZWxldGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEZWxldGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0SW52b2ljZVJlcXVlc3QsXG4gICAgR2V0SW52b2ljZVJlc3BvbnNlLFxuICAgIEludm9pY2UsXG4gICAgSW52b2ljZUl0ZW0sXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0SW52b2ljZXNSZXNwb25zZSxcbiAgICBQYXlJbnZvaWNlUmVxdWVzdCxcbiAgICBQYXltZW50TGlua0l0ZW0sXG4gICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICBSZW1vdmVCdW5kbGVSZXNwb25zZSxcbiAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQWNjb3VudEJhbGFuY2UsXG4gICAgQmFsYW5jZSxcbiAgICBCYWxhbmNlQW1vdW50LFxufSBmcm9tICcuL2JhbGFuY2UnO1xuXG5leHBvcnQge1xuICAgIERhdGVSYW5nZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlJztcblxuZXhwb3J0IHtcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UGF5b3V0c1Jlc3BvbnNlLFxuICAgIFBheW91dCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXF1ZXN0LFxuICAgIFJlY29uY2lsZVBheW91dFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW91dCxcbn0gZnJvbSAnLi9wYXlvdXQnO1xuXG5leHBvcnQge1xuICAgIENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIERlZmF1bHRDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgR2V0TWVyY2hhbnRSZXF1ZXN0LFxuICAgIEdldE1lcmNoYW50UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlLFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3QsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW91dFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXNwb25zZSxcbiAgICBNZXJjaGFudCxcbiAgICBSZXRhaWxDb25maWd1cmF0aW9uLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZVJldGFpbENvbmZpZ3VyYXRpb25zRW50cnksXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVxdWVzdCxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXNwb25zZSxcbiAgICBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdCxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vbWVyY2hhbnQnO1xuXG5leHBvcnQge1xuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCxcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50UmVwb3J0LFxufSBmcm9tICcuL21lcmNoYW50LXJlcG9ydCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgTWV0ZXJlZENvbXBvbmVudCxcbiAgICBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0LFxufSBmcm9tICcuL21ldGVyZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHtcbiAgICBBZGp1c3RtZW50LFxuICAgIFJldGFpbFBheW1lbnRDYXJkRGV0YWlscyxcbiAgICBDbG9zZVJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgQ29uZmlndXJlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgQ29uZmlybVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIERpc3B1dGUsXG4gICAgRGlzcHV0ZUV2aWRlbmNlLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdERpc3B1dGVFdmlkZW5jZSxcbiAgICBEaXNwdXRlRXZpZGVuY2VEZXRhaWxzLFxuICAgIEZpbGUsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZVByb3ZpZGVyUHVibGljS2V5UmVxdWVzdCxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlc3BvbnNlLFxuICAgIExpc3RQYXltZW50UmVxdWVzdExpc3RQYXltZW50RmlsdGVycyxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxEaXNwdXRlc1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3RMaXN0UmV0YWlsUGF5bWVudHNGaWx0ZXJzLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW1lbnRzUmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3RMaXN0UmV0YWlsVHJhbnNhY3Rpb25zRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVzcG9uc2UsXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0T3JkZXIsXG4gICAgUGF5bWVudCxcbiAgICBQYXltZW50UGF5bWVudEFsbG9jYXRpb24sXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVzcG9uc2UsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW1lbnQsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVxdWVzdCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXNwb25zZSxcbiAgICBSZXRhaWxSZWZ1bmQsXG4gICAgUmV0YWlsU3RhdHVzUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZSxcbiAgICBSZXRhaWxUcmFuc2FjdGlvbixcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3QsXG4gICAgVXBkYXRlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvbkVycm9yLFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRzLFxufSBmcm9tICcuL3BheW1lbnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBEZWxldGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlLFxuICAgIFBheW1lbnRDYXJkLFxuICAgIFNldERlZmF1bHRQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG59IGZyb20gJy4vcGF5bWVudC1jYXJkJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRmVlLFxuICAgIEZlZSxcbn0gZnJvbSAnLi9mZWUnO1xuXG5leHBvcnQge1xuICAgIENvbXBvbmVudFByaWNpbmcsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmcsXG4gICAgUHJvZHVjdFByaWNpbmdSdWxlLFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxufSBmcm9tICcuL3ByaWNpbmctcGxhbic7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0UHJpY2VzLFxuICAgIFByb2R1Y3RQcmljaW5nLFxuICAgIFdob2xlc2FsZUNvc3RJdGVtUmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0LXByaWNpbmcnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRDcmVkaXQsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUJpbGxpbmdTdHJhdGVneUZpbHRlcixcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3RMaXN0UHVyY2hhc2VJdGVtc0ZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VSZXNwb25zZSxcbiAgICBQdXJjaGFzZSxcbiAgICBQdXJjaGFzZUl0ZW0sXG4gICAgUmV0cnlQdXJjaGFzZVJlcXVlc3QsXG4gICAgVm9pZFB1cmNoYXNlUmVxdWVzdCxcbn0gZnJvbSAnLi9wdXJjaGFzZSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUmVmdW5kUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1JlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXNwb25zZSxcbiAgICBSZWZ1bmQsXG59IGZyb20gJy4vcmVmdW5kJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0TGlzdFNhbGVzQ3JlZGl0Tm90ZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlc3BvbnNlLFxuICAgIFNhbGVzQ3JlZGl0Tm90ZSxcbn0gZnJvbSAnLi9zYWxlcy1jcmVkaXQtbm90ZSc7XG5cbmV4cG9ydCB7XG4gICAgR2V0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBHZXRTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdExpc3RTYWxlc0ludm9pY2VGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBQb3N0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBTYWxlc0ludm9pY2UsXG4gICAgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdCxcbiAgICBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdCxcbn0gZnJvbSAnLi9zYWxlcy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBTdWJzY3JpYmVWYWxpZGF0aW9uLFxufSBmcm9tICcuL3N1YnNjcmliZS12YWxpZGF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBbGlnbm1lbnRTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QsXG4gICAgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdCxcbiAgICBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgUmV2ZXJzZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFNrdXNFbnRyeSxcbiAgICBTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTdWJzY3JpcHRpb25JdGVtLFxuICAgIFZhbGlkYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdERvY3VtZW50LFxuICAgIERlbGV0ZUNvbnRyYWN0RG9jdW1lbnRSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4vY29udHJhY3QtZG9jdW1lbnQnO1xuXG5leHBvcnQge1xuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgUmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIFVwc2VydFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vcmV0YWlsLWN1c3RvbWVyLWNvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFkZENyZWRpdFJlcXVlc3QsXG4gICAgQ3JlZGl0QmFsYW5jZSxcbiAgICBHZXRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRCYWxhbmNlUmVzcG9uc2UsXG59IGZyb20gJy4vY3JlZGl0JztcblxuZXhwb3J0IHtcbiAgICBBZGRUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgQWRkVGVtcGxhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBBZGRUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIENyZWF0ZVRlbXBsYXRlUmVzcG9uc2UsXG4gICAgRGVsZXRlSW52b2ljZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBEZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBEZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgR2V0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBHZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSxcbiAgICBJbnZvaWNlVGVtcGxhdGUsXG4gICAgSW52b2ljZVRlbXBsYXRlSXRlbSxcbiAgICBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0SW52b2ljZVRlbXBsYXRlSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXF1ZXN0LFxuICAgIFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2UsXG4gICAgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3QsXG4gICAgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vaW52b2ljZS10ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgRGVsZXRlUmVjdXJyaW5nSW52b2ljZVJlcXVlc3QsXG4gICAgR2V0UmVjdXJyaW5nSW52b2ljZVJlcXVlc3QsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzRmlsdGVycyxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc1Jlc3BvbnNlLFxuICAgIFJlY3VycmluZ0ludm9pY2UsXG4gICAgUmVjdXJyaW5nSW52b2ljZUJ1bmRsZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlSXRlbSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlTGluZUl0ZW0sXG4gICAgVXBkYXRlUmVjdXJyaW5nSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vcmVjdXJyaW5nLWludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgR2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbiAgICBNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxufSBmcm9tICcuL3JlcG9ydC1ydW4nO1xuXG5leHBvcnQge1xuICAgIEFjY2Vzcyxcbn0gZnJvbSAnLi9hbm5vdGF0aW9ucyc7XG5cbmV4cG9ydCB7XG4gICAgRGVsZXRlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXNwb25zZSxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlcXVlc3QsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19