@vendasta/billing 14.6.0 → 14.8.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.
- package/esm2022/lib/_internal/bank-reconciliation.api.service.mjs +7 -8
- package/esm2022/lib/_internal/billing.api.service.mjs +7 -8
- package/esm2022/lib/_internal/bundle.api.service.mjs +7 -8
- package/esm2022/lib/_internal/contract-document.api.service.mjs +7 -8
- package/esm2022/lib/_internal/contract.api.service.mjs +7 -8
- package/esm2022/lib/_internal/credit.api.service.mjs +7 -8
- package/esm2022/lib/_internal/discount.api.service.mjs +7 -8
- package/esm2022/lib/_internal/enums/index.mjs +2 -2
- package/esm2022/lib/_internal/enums/payment.enum.mjs +15 -1
- package/esm2022/lib/_internal/interfaces/api.interface.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/payment-method.interface.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/payment.interface.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/recurring-invoice.interface.mjs +1 -1
- package/esm2022/lib/_internal/invoice.api.service.mjs +7 -8
- package/esm2022/lib/_internal/merchant.api.service.mjs +7 -8
- package/esm2022/lib/_internal/objects/api.mjs +4 -1
- package/esm2022/lib/_internal/objects/index.mjs +2 -2
- package/esm2022/lib/_internal/objects/payment-method.mjs +10 -1
- package/esm2022/lib/_internal/objects/payment.mjs +42 -1
- package/esm2022/lib/_internal/objects/recurring-invoice.mjs +7 -1
- package/esm2022/lib/_internal/payment-method.api.service.mjs +7 -8
- package/esm2022/lib/_internal/payment.api.service.mjs +7 -8
- package/esm2022/lib/_internal/pricing.api.service.mjs +7 -8
- package/esm2022/lib/_internal/product-summary.api.service.mjs +7 -8
- package/esm2022/lib/_internal/product.api.service.mjs +7 -8
- package/esm2022/lib/_internal/purchase.api.service.mjs +7 -8
- package/esm2022/lib/_internal/recurring-invoice.api.service.mjs +7 -8
- package/esm2022/lib/_internal/refund.api.service.mjs +7 -8
- package/esm2022/lib/_internal/retail-customer-configuration.api.service.mjs +7 -8
- package/esm2022/lib/_internal/sales-credit-note.api.service.mjs +7 -8
- package/esm2022/lib/_internal/sales-invoice.api.service.mjs +7 -8
- package/esm2022/lib/_internal/subscription-relationship.api.service.mjs +7 -8
- package/esm2022/lib/_internal/tax.api.service.mjs +7 -8
- package/esm2022/lib/_internal/vendor.api.service.mjs +7 -8
- package/fesm2022/vendasta-billing.mjs +191 -119
- package/fesm2022/vendasta-billing.mjs.map +1 -1
- package/lib/_internal/bank-reconciliation.api.service.d.ts +2 -5
- package/lib/_internal/billing.api.service.d.ts +3 -5
- package/lib/_internal/bundle.api.service.d.ts +3 -5
- package/lib/_internal/contract-document.api.service.d.ts +3 -5
- package/lib/_internal/contract.api.service.d.ts +3 -5
- package/lib/_internal/credit.api.service.d.ts +3 -5
- package/lib/_internal/discount.api.service.d.ts +3 -5
- package/lib/_internal/enums/index.d.ts +1 -1
- package/lib/_internal/enums/payment.enum.d.ts +12 -0
- package/lib/_internal/interfaces/api.interface.d.ts +1 -0
- package/lib/_internal/interfaces/index.d.ts +1 -1
- package/lib/_internal/interfaces/payment-method.interface.d.ts +3 -0
- package/lib/_internal/interfaces/payment.interface.d.ts +6 -0
- package/lib/_internal/interfaces/recurring-invoice.interface.d.ts +1 -0
- package/lib/_internal/invoice.api.service.d.ts +3 -5
- package/lib/_internal/merchant.api.service.d.ts +3 -5
- package/lib/_internal/objects/api.d.ts +1 -0
- package/lib/_internal/objects/index.d.ts +1 -1
- package/lib/_internal/objects/payment-method.d.ts +3 -0
- package/lib/_internal/objects/payment.d.ts +9 -0
- package/lib/_internal/objects/recurring-invoice.d.ts +1 -0
- package/lib/_internal/payment-method.api.service.d.ts +3 -5
- package/lib/_internal/payment.api.service.d.ts +3 -5
- package/lib/_internal/pricing.api.service.d.ts +3 -5
- package/lib/_internal/product-summary.api.service.d.ts +2 -5
- package/lib/_internal/product.api.service.d.ts +3 -5
- package/lib/_internal/purchase.api.service.d.ts +3 -5
- package/lib/_internal/recurring-invoice.api.service.d.ts +3 -5
- package/lib/_internal/refund.api.service.d.ts +3 -5
- package/lib/_internal/retail-customer-configuration.api.service.d.ts +3 -5
- package/lib/_internal/sales-credit-note.api.service.d.ts +3 -5
- package/lib/_internal/sales-invoice.api.service.d.ts +3 -5
- package/lib/_internal/subscription-relationship.api.service.d.ts +2 -5
- package/lib/_internal/tax.api.service.d.ts +3 -5
- package/lib/_internal/vendor.api.service.d.ts +2 -5
- package/package.json +1 -1
|
@@ -7,15 +7,14 @@
|
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
8
|
import { AddBundleRequest, AddBundleResponse, AddLineItemRequest, AddLineItemResponse, ChargeInvoiceRequest, CreateInvoiceRequest, CreateInvoiceResponse, CreatePaymentLinkRequest, CreatePaymentLinkResponse, DeleteInvoiceRequest, DeleteLineItemRequest, DeleteLineItemResponse, DuplicateInvoiceRequest, DuplicateInvoiceResponse, GetInvoiceRequest, GetInvoiceResponse, GetUpcomingInvoicePreviewRequest, GetUpcomingInvoicePreviewResponse, ListInvoicesRequest, ListInvoicesResponse, PayInvoiceRequest, RemoveBundleRequest, RemoveBundleResponse, SendInvoiceRequest, UpdateBundleRequest, UpdateBundleResponse, UpdateDefaultTaxRatesRequest, UpdateDefaultTaxRatesResponse, UpdateInvoiceRequest, UpdateInvoiceResponse, UpdateLineItemRequest, UpdateLineItemResponse, VoidInvoiceRequest, } from './objects/';
|
|
9
9
|
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
10
|
+
import { inject } from '@angular/core';
|
|
10
11
|
import { HostService } from '../_generated/host.service';
|
|
11
12
|
import { map } from 'rxjs/operators';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/common/http";
|
|
14
|
-
import * as i2 from "../_generated/host.service";
|
|
15
14
|
export class InvoiceApiService {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
15
|
+
constructor() {
|
|
16
|
+
this.hostService = inject(HostService);
|
|
17
|
+
this.http = inject(HttpClient);
|
|
19
18
|
this._host = this.hostService.hostWithScheme;
|
|
20
19
|
}
|
|
21
20
|
apiOptions() {
|
|
@@ -116,11 +115,11 @@ export class InvoiceApiService {
|
|
|
116
115
|
return this.http.post(this._host + "/billing.v1.InvoiceService/GetUpcomingInvoicePreview", request.toApiJson(), this.apiOptions())
|
|
117
116
|
.pipe(map(resp => GetUpcomingInvoicePreviewResponse.fromProto(resp)));
|
|
118
117
|
}
|
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, deps: [
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
120
119
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, providedIn: 'root' }); }
|
|
121
120
|
}
|
|
122
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, decorators: [{
|
|
123
122
|
type: Injectable,
|
|
124
123
|
args: [{ providedIn: 'root' }]
|
|
125
|
-
}]
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludm9pY2UuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0MsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDekIsTUFBTSxZQUFZLENBQUM7QUFvQ3BCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUduQyxNQUFNLE9BQU8saUJB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QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1SCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFxQyxJQUFJLENBQUMsS0FBSyxHQUFHLDhDQUE4QyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDekosSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0lBQ1YsQ0FBQztJQUNELHlCQUF5QixDQUFDLENBQStFO1FBQ3JHLE1BQU0sT0FBTyxHQUFHLENBQW9DLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQW9DLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE2QyxJQUFJLENBQUMsS0FBSyxHQUFHLHNEQUFzRCxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDekssSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNqRSxDQUFDO0lBQ1YsQ0FBQzs4R0FwSVEsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FETCxNQUFNOzsyRkFDbEIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBBZGRCdW5kbGVSZXF1ZXN0LFxuICAgICAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICAgICAgQWRkTGluZUl0ZW1SZXF1ZXN0LFxuICAgICAgICBBZGRMaW5lSXRlbVJlc3BvbnNlLFxuICAgICAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgICAgIENyZWF0ZUludm9pY2VSZXNwb25zZSxcbiAgICAgICAgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlLFxuICAgICAgICBEZWxldGVJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgICAgICBEZWxldGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgICAgICBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgICAgICBHZXRJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgR2V0SW52b2ljZVJlc3BvbnNlLFxuICAgICAgICBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVxdWVzdCxcbiAgICAgICAgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1Jlc3BvbnNlLFxuICAgICAgICBMaXN0SW52b2ljZXNSZXF1ZXN0LFxuICAgICAgICBMaXN0SW52b2ljZXNSZXNwb25zZSxcbiAgICAgICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3QsXG4gICAgICAgIFJlbW92ZUJ1bmRsZVJlc3BvbnNlLFxuICAgICAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgICAgIFVwZGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgICAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgICAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgICAgICBVcGRhdGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgICAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgQWRkQnVuZGxlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQWRkQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEFkZExpbmVJdGVtUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQWRkTGluZUl0ZW1SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ2hhcmdlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlUGF5bWVudExpbmtSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgRGVsZXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgRGVsZXRlTGluZUl0ZW1SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIER1cGxpY2F0ZUludm9pY2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0SW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldEludm9pY2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdEludm9pY2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdEludm9pY2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFBheUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBSZW1vdmVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBSZW1vdmVCdW5kbGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgU2VuZEludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVCdW5kbGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVJbnZvaWNlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVm9pZEludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEludm9pY2VBcGlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9ob3N0ID0gdGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhZGRCdW5kbGUocjogQWRkQnVuZGxlUmVxdWVzdCB8IEFkZEJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEFkZEJ1bmRsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxBZGRCdW5kbGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEFkZEJ1bmRsZVJlcXVlc3Q+cikgOiBuZXcgQWRkQnVuZGxlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFkZEJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9BZGRCdW5kbGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBBZGRCdW5kbGVSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBhZGRMaW5lSXRlbShyOiBBZGRMaW5lSXRlbVJlcXVlc3QgfCBBZGRMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEFkZExpbmVJdGVtUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEFkZExpbmVJdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxBZGRMaW5lSXRlbVJlcXVlc3Q+cikgOiBuZXcgQWRkTGluZUl0ZW1SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWRkTGluZUl0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvQWRkTGluZUl0ZW1cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBBZGRMaW5lSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNoYXJnZShyOiBDaGFyZ2VJbnZvaWNlUmVxdWVzdCB8IENoYXJnZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENoYXJnZUludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENoYXJnZUludm9pY2VSZXF1ZXN0PnIpIDogbmV3IENoYXJnZUludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvQ2hhcmdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGUocjogQ3JlYXRlSW52b2ljZVJlcXVlc3QgfCBDcmVhdGVJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlSW52b2ljZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVJbnZvaWNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVJbnZvaWNlUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZUludm9pY2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvQ3JlYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlSW52b2ljZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZShyOiBEZWxldGVJbnZvaWNlUmVxdWVzdCB8IERlbGV0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPERlbGV0ZUludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUludm9pY2VSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZUludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvRGVsZXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBkZWxldGVMaW5lSXRlbShyOiBEZWxldGVMaW5lSXRlbVJlcXVlc3QgfCBEZWxldGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPERlbGV0ZUxpbmVJdGVtUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPERlbGV0ZUxpbmVJdGVtUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVMaW5lSXRlbVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RGVsZXRlTGluZUl0ZW1SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvRGVsZXRlTGluZUl0ZW1cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBEZWxldGVMaW5lSXRlbVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldChyOiBHZXRJbnZvaWNlUmVxdWVzdCB8IEdldEludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRJbnZvaWNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldEludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldEludm9pY2VSZXF1ZXN0PnIpIDogbmV3IEdldEludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0SW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9HZXRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRJbnZvaWNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgcmVtb3ZlQnVuZGxlKHI6IFJlbW92ZUJ1bmRsZVJlcXVlc3QgfCBSZW1vdmVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxSZW1vdmVCdW5kbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8UmVtb3ZlQnVuZGxlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZW1vdmVCdW5kbGVSZXF1ZXN0PnIpIDogbmV3IFJlbW92ZUJ1bmRsZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxSZW1vdmVCdW5kbGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvUmVtb3ZlQnVuZGxlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gUmVtb3ZlQnVuZGxlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgc2VuZChyOiBTZW5kSW52b2ljZVJlcXVlc3QgfCBTZW5kSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2VuZEludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNlbmRJbnZvaWNlUmVxdWVzdD5yKSA6IG5ldyBTZW5kSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9TZW5kXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0KHI6IExpc3RJbnZvaWNlc1JlcXVlc3QgfCBMaXN0SW52b2ljZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0SW52b2ljZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdEludm9pY2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0SW52b2ljZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RJbnZvaWNlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0SW52b2ljZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvTGlzdFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RJbnZvaWNlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZShyOiBVcGRhdGVJbnZvaWNlUmVxdWVzdCB8IFVwZGF0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVJbnZvaWNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZUludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZUludm9pY2VSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZUludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlSW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9VcGRhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcGRhdGVJbnZvaWNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgcGF5KHI6IFBheUludm9pY2VSZXF1ZXN0IHwgUGF5SW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8UGF5SW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8UGF5SW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgUGF5SW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9QYXlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHVwZGF0ZURlZmF1bHRUYXhSYXRlcyhyOiBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0IHwgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1VwZGF0ZURlZmF1bHRUYXhSYXRlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZUxpbmVJdGVtKHI6IFVwZGF0ZUxpbmVJdGVtUmVxdWVzdCB8IFVwZGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlTGluZUl0ZW1SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTGluZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZUxpbmVJdGVtUmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVMaW5lSXRlbVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9VcGRhdGVMaW5lSXRlbVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdm9pZChyOiBWb2lkSW52b2ljZVJlcXVlc3QgfCBWb2lkSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Vm9pZEludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFZvaWRJbnZvaWNlUmVxdWVzdD5yKSA6IG5ldyBWb2lkSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9Wb2lkXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBkdXBsaWNhdGUocjogRHVwbGljYXRlSW52b2ljZVJlcXVlc3QgfCBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8RHVwbGljYXRlSW52b2ljZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdD5yKSA6IG5ldyBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PER1cGxpY2F0ZUludm9pY2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvRHVwbGljYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZUJ1bmRsZShyOiBVcGRhdGVCdW5kbGVSZXF1ZXN0IHwgVXBkYXRlQnVuZGxlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlQnVuZGxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZUJ1bmRsZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlQnVuZGxlUmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVCdW5kbGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1VwZGF0ZUJ1bmRsZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZUJ1bmRsZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNyZWF0ZVBheW1lbnRMaW5rKHI6IENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdCB8IENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlUGF5bWVudExpbmtSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVQYXltZW50TGlua1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9DcmVhdGVQYXltZW50TGlua1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0VXBjb21pbmdJbnZvaWNlUHJldmlldyhyOiBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVxdWVzdCB8IEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0PnIpIDogbmV3IEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9HZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIFxufVxuIl19
|
|
124
|
+
}] });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludm9pY2UuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0MsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDekIsTUFBTSxZQUFZLENBQUM7QUFvQ3BCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFB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QyxDQUFDLENBQUMsQ0FBNEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXFDLElBQUksQ0FBQyxLQUFLLEdBQUcsOENBQThDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUN6SixJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDVixDQUFDO0lBQ0QseUJBQXlCLENBQUMsQ0FBK0U7UUFDckcsTUFBTSxPQUFPLEdBQUcsQ0FBb0MsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBb0MsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZDLElBQUksQ0FBQyxLQUFLLEdBQUcsc0RBQXNELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUN6SyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2pFLENBQUM7SUFDVixDQUFDOzhHQW5JUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURMLE1BQU07OzJGQUNsQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIEFkZEJ1bmRsZVJlcXVlc3QsXG4gICAgICAgIEFkZEJ1bmRsZVJlc3BvbnNlLFxuICAgICAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgICAgIEFkZExpbmVJdGVtUmVzcG9uc2UsXG4gICAgICAgIENoYXJnZUludm9pY2VSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVQYXltZW50TGlua1JlcXVlc3QsXG4gICAgICAgIENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2UsXG4gICAgICAgIERlbGV0ZUludm9pY2VSZXF1ZXN0LFxuICAgICAgICBEZWxldGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgICAgIER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0LFxuICAgICAgICBEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgICAgICBHZXRJbnZvaWNlUmVzcG9uc2UsXG4gICAgICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0LFxuICAgICAgICBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVzcG9uc2UsXG4gICAgICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgICAgIExpc3RJbnZvaWNlc1Jlc3BvbnNlLFxuICAgICAgICBQYXlJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICAgICAgUmVtb3ZlQnVuZGxlUmVzcG9uc2UsXG4gICAgICAgIFNlbmRJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QsXG4gICAgICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgICAgICBVcGRhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgICAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgICAgIFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgICAgIFZvaWRJbnZvaWNlUmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBBZGRCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBBZGRCdW5kbGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQWRkTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBBZGRMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZUludm9pY2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVJbnZvaWNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRJbnZvaWNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0SW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0SW52b2ljZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0SW52b2ljZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgUGF5SW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFJlbW92ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBTZW5kSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBWb2lkSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgSW52b2ljZUFwaVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdFNlcnZpY2UgPSBpbmplY3QoSG9zdFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBwcml2YXRlIF9ob3N0ID0gdGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZTtcblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGFkZEJ1bmRsZShyOiBBZGRCdW5kbGVSZXF1ZXN0IHwgQWRkQnVuZGxlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8QWRkQnVuZGxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEFkZEJ1bmRsZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QWRkQnVuZGxlUmVxdWVzdD5yKSA6IG5ldyBBZGRCdW5kbGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWRkQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL0FkZEJ1bmRsZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEFkZEJ1bmRsZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGFkZExpbmVJdGVtKHI6IEFkZExpbmVJdGVtUmVxdWVzdCB8IEFkZExpbmVJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8QWRkTGluZUl0ZW1SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8QWRkTGluZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEFkZExpbmVJdGVtUmVxdWVzdD5yKSA6IG5ldyBBZGRMaW5lSXRlbVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBZGRMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9BZGRMaW5lSXRlbVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEFkZExpbmVJdGVtUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY2hhcmdlKHI6IENoYXJnZUludm9pY2VSZXF1ZXN0IHwgQ2hhcmdlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2hhcmdlSW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q2hhcmdlSW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgQ2hhcmdlSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9DaGFyZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNyZWF0ZShyOiBDcmVhdGVJbnZvaWNlUmVxdWVzdCB8IENyZWF0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVJbnZvaWNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZUludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZUludm9pY2VSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZUludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q3JlYXRlSW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9DcmVhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVJbnZvaWNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZGVsZXRlKHI6IERlbGV0ZUludm9pY2VSZXF1ZXN0IHwgRGVsZXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlSW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlSW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9EZWxldGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGRlbGV0ZUxpbmVJdGVtKHI6IERlbGV0ZUxpbmVJdGVtUmVxdWVzdCB8IERlbGV0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8RGVsZXRlTGluZUl0ZW1SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlTGluZUl0ZW1SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUxpbmVJdGVtUmVxdWVzdD5yKSA6IG5ldyBEZWxldGVMaW5lSXRlbVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxEZWxldGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9EZWxldGVMaW5lSXRlbVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0KHI6IEdldEludm9pY2VSZXF1ZXN0IHwgR2V0SW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldEludm9pY2VSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0SW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0SW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgR2V0SW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRJbnZvaWNlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL0dldFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldEludm9pY2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICByZW1vdmVCdW5kbGUocjogUmVtb3ZlQnVuZGxlUmVxdWVzdCB8IFJlbW92ZUJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFJlbW92ZUJ1bmRsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxSZW1vdmVCdW5kbGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFJlbW92ZUJ1bmRsZVJlcXVlc3Q+cikgOiBuZXcgUmVtb3ZlQnVuZGxlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFJlbW92ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9SZW1vdmVCdW5kbGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBSZW1vdmVCdW5kbGVSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZW5kKHI6IFNlbmRJbnZvaWNlUmVxdWVzdCB8IFNlbmRJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZW5kSW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VuZEludm9pY2VSZXF1ZXN0PnIpIDogbmV3IFNlbmRJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1NlbmRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3QocjogTGlzdEludm9pY2VzUmVxdWVzdCB8IExpc3RJbnZvaWNlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RJbnZvaWNlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0SW52b2ljZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RJbnZvaWNlc1JlcXVlc3Q+cikgOiBuZXcgTGlzdEludm9pY2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RJbnZvaWNlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9MaXN0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdEludm9pY2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlKHI6IFVwZGF0ZUludm9pY2VSZXF1ZXN0IHwgVXBkYXRlSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFVwZGF0ZUludm9pY2VSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlSW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlSW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVJbnZvaWNlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1VwZGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZUludm9pY2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBwYXkocjogUGF5SW52b2ljZVJlcXVlc3QgfCBQYXlJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxQYXlJbnZvaWNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxQYXlJbnZvaWNlUmVxdWVzdD5yKSA6IG5ldyBQYXlJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1BheVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgdXBkYXRlRGVmYXVsdFRheFJhdGVzKHI6IFVwZGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QgfCBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvVXBkYXRlRGVmYXVsdFRheFJhdGVzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlTGluZUl0ZW0ocjogVXBkYXRlTGluZUl0ZW1SZXF1ZXN0IHwgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVMaW5lSXRlbVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcGRhdGVMaW5lSXRlbVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlTGluZUl0ZW1SZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZUxpbmVJdGVtUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1VwZGF0ZUxpbmVJdGVtXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVXBkYXRlTGluZUl0ZW1SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB2b2lkKHI6IFZvaWRJbnZvaWNlUmVxdWVzdCB8IFZvaWRJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxWb2lkSW52b2ljZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Vm9pZEludm9pY2VSZXF1ZXN0PnIpIDogbmV3IFZvaWRJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL1ZvaWRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGR1cGxpY2F0ZShyOiBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdCB8IER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0PnIpIDogbmV3IER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RHVwbGljYXRlSW52b2ljZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5JbnZvaWNlU2VydmljZS9EdXBsaWNhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlQnVuZGxlKHI6IFVwZGF0ZUJ1bmRsZVJlcXVlc3QgfCBVcGRhdGVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVCdW5kbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlQnVuZGxlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVCdW5kbGVSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZUJ1bmRsZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVCdW5kbGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuSW52b2ljZVNlcnZpY2UvVXBkYXRlQnVuZGxlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVXBkYXRlQnVuZGxlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlUGF5bWVudExpbmsocjogQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0IHwgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVQYXltZW50TGlua1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL0NyZWF0ZVBheW1lbnRMaW5rXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlUGF5bWVudExpbmtSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3KHI6IEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0IHwgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3Q+cikgOiBuZXcgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlL0dldFVwY29taW5nSW52b2ljZVByZXZpZXdcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
|
|
@@ -7,15 +7,14 @@
|
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
8
|
import { CancelRetailBillingRequest, ChargeSalesInvoiceRequest, CreateMerchantRequest, CreateMerchantServicesReportRun, CreatePaymentCardRequest, CreateStripeExternalAccountRequest, DeleteBankAccountRequest, GetMerchantRequest, GetMerchantResponse, GetMerchantServicesReportRun, GetMultiRetailConfigurationsRequest, GetMultiRetailConfigurationsResponse, GetOutstandingBalanceRequest, GetOutstandingBalanceResponse, GetPayoutSummaryRequest, GetPayoutSummaryResponse, GetRetailAccountBalanceRequest, GetRetailAccountBalanceResponse, GetRetailBalanceRequest, GetRetailBalanceResponse, GetRetailPayoutRequest, GetRetailPayoutResponse, GetStatisticsRequest, GetStatisticsResponse, ListBankAccountsRequest, ListBankAccountsResponse, ListPaymentCardsRequest, ListPaymentCardsResponse, ListRetailPayoutsRequest, ListRetailPayoutsResponse, MerchantServicesReportRun, SearchMerchantsRequest, SearchMerchantsResponse, SendSalesInvoiceEmailRequest, SendSalesInvoiceReceiptEmailRequest, SetAutoChargeInvoicesRequest, SetAutoPostInvoicesRequest, SetDefaultBankAccountRequest, SetDefaultPaymentCardRequest, SetHasAlternativePaymentMethodRequest, SetIncludeInFinancialRecordsRequest, UpdateMerchantRequest, UpdatePaymentCardRequest, UpsertDefaultRetailCustomerConfigurationRequest, UpsertRetailConfigurationRequest, } from './objects/';
|
|
9
9
|
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
10
|
+
import { inject } from '@angular/core';
|
|
10
11
|
import { HostService } from '../_generated/host.service';
|
|
11
12
|
import { map } from 'rxjs/operators';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/common/http";
|
|
14
|
-
import * as i2 from "../_generated/host.service";
|
|
15
14
|
export class MerchantApiService {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
15
|
+
constructor() {
|
|
16
|
+
this.hostService = inject(HostService);
|
|
17
|
+
this.http = inject(HttpClient);
|
|
19
18
|
this._host = this.hostService.hostWithScheme;
|
|
20
19
|
}
|
|
21
20
|
apiOptions() {
|
|
@@ -168,11 +167,11 @@ export class MerchantApiService {
|
|
|
168
167
|
const request = (r.toApiJson) ? r : new CancelRetailBillingRequest(r);
|
|
169
168
|
return this.http.post(this._host + "/billing.v1.MerchantService/CancelRetailBilling", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
|
|
170
169
|
}
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: MerchantApiService, deps: [
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: MerchantApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
172
171
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: MerchantApiService, providedIn: 'root' }); }
|
|
173
172
|
}
|
|
174
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: MerchantApiService, decorators: [{
|
|
175
174
|
type: Injectable,
|
|
176
175
|
args: [{ providedIn: 'root' }]
|
|
177
|
-
}]
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyY2hhbnQuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9tZXJjaGFudC5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsZUFBZTtBQUNmLG9DQUFvQztBQUNwQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDQywwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLGtDQUFrQyxFQUNsQyx3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsK0NBQStDLEVBQy9DLGdDQUFnQyxHQUN2QyxNQUFNLFlBQVksQ0FBQztBQWdE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QyxJQUFJLENBQUMsQ0FBQyxDQUMvRCxDQUFDO0lBQ1YsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQW1FO1FBQ25GLE1BQU0sT0FBTyxHQUFHLENBQThCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQThCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsaURBQWlELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDbEssQ0FBQzs4R0F4TFEsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETixNQUFNOzsyRkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBDYW5jZWxSZXRhaWxCaWxsaW5nUmVxdWVzdCxcbiAgICAgICAgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgICAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3QsXG4gICAgICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCxcbiAgICAgICAgR2V0TWVyY2hhbnRSZXF1ZXN0LFxuICAgICAgICBHZXRNZXJjaGFudFJlc3BvbnNlLFxuICAgICAgICBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgICAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlLFxuICAgICAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0LFxuICAgICAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZSxcbiAgICAgICAgR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3QsXG4gICAgICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZSxcbiAgICAgICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0LFxuICAgICAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlLFxuICAgICAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdCxcbiAgICAgICAgR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlLFxuICAgICAgICBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0LFxuICAgICAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZSxcbiAgICAgICAgR2V0U3RhdGlzdGljc1JlcXVlc3QsXG4gICAgICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICAgICAgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3QsXG4gICAgICAgIExpc3RCYW5rQWNjb3VudHNSZXNwb25zZSxcbiAgICAgICAgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3QsXG4gICAgICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZSxcbiAgICAgICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0LFxuICAgICAgICBMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlLFxuICAgICAgICBNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgICAgICBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0LFxuICAgICAgICBTZWFyY2hNZXJjaGFudHNSZXNwb25zZSxcbiAgICAgICAgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdCxcbiAgICAgICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QsXG4gICAgICAgIFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3QsXG4gICAgICAgIFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0LFxuICAgICAgICBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0LFxuICAgICAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0LFxuICAgICAgICBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgICAgICBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgICAgICBVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICAgICBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBDYW5jZWxSZXRhaWxCaWxsaW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TWVyY2hhbnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXJjaGFudFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0U3RhdGlzdGljc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RCYW5rQWNjb3VudHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlLFxuICAgICAgICBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZWFyY2hNZXJjaGFudHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBNZXJjaGFudEFwaVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2hvc3QgPSB0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGhvc3RTZXJ2aWNlOiBIb3N0U2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNyZWF0ZShyOiBDcmVhdGVNZXJjaGFudFJlcXVlc3QgfCBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlTWVyY2hhbnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZU1lcmNoYW50UmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVNZXJjaGFudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ3JlYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXQocjogR2V0TWVyY2hhbnRSZXF1ZXN0IHwgR2V0TWVyY2hhbnRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNZXJjaGFudFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNZXJjaGFudFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TWVyY2hhbnRSZXF1ZXN0PnIpIDogbmV3IEdldE1lcmNoYW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE1lcmNoYW50UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9HZXRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNZXJjaGFudFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE91dHN0YW5kaW5nQmFsYW5jZShyOiBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0IHwgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdD5yKSA6IG5ldyBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9HZXRPdXRzdGFuZGluZ0JhbGFuY2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cGRhdGUocjogVXBkYXRlTWVyY2hhbnRSZXF1ZXN0IHwgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZU1lcmNoYW50UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVNZXJjaGFudFJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1VwZGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgY3JlYXRlUGF5bWVudENhcmQocjogQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0IHwgQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0NyZWF0ZVBheW1lbnRDYXJkXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBzZXREZWZhdWx0UGF5bWVudENhcmQocjogU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdCB8IFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0PnIpIDogbmV3IFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2V0RGVmYXVsdFBheW1lbnRDYXJkXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0UGF5bWVudENhcmRzKHI6IExpc3RQYXltZW50Q2FyZHNSZXF1ZXN0IHwgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RQYXltZW50Q2FyZHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFBheW1lbnRDYXJkc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFBheW1lbnRDYXJkc1JlcXVlc3Q+cikgOiBuZXcgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0UGF5bWVudENhcmRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9MaXN0UGF5bWVudENhcmRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZVBheW1lbnRDYXJkKHI6IFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdCB8IFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9VcGRhdGVQYXltZW50Q2FyZFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0U3RhdGlzdGljcyhyOiBHZXRTdGF0aXN0aWNzUmVxdWVzdCB8IEdldFN0YXRpc3RpY3NSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRTdGF0aXN0aWNzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFN0YXRpc3RpY3NSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFN0YXRpc3RpY3NSZXF1ZXN0PnIpIDogbmV3IEdldFN0YXRpc3RpY3NSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0U3RhdGlzdGljc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvR2V0U3RhdGlzdGljc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFN0YXRpc3RpY3NSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZWFyY2gocjogU2VhcmNoTWVyY2hhbnRzUmVxdWVzdCB8IFNlYXJjaE1lcmNoYW50c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZWFyY2hNZXJjaGFudHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNlYXJjaE1lcmNoYW50c1JlcXVlc3Q+cikgOiBuZXcgU2VhcmNoTWVyY2hhbnRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2VhcmNoXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gU2VhcmNoTWVyY2hhbnRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgc2V0QXV0b1Bvc3RJbnZvaWNlcyhyOiBTZXRBdXRvUG9zdEludm9pY2VzUmVxdWVzdCB8IFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0PnIpIDogbmV3IFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1NldEF1dG9Qb3N0SW52b2ljZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNldEF1dG9DaGFyZ2VJbnZvaWNlcyhyOiBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0IHwgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3Q+cikgOiBuZXcgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZXRBdXRvQ2hhcmdlSW52b2ljZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMocjogU2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3Jkc1JlcXVlc3QgfCBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdD5yKSA6IG5ldyBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBzZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2QocjogU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdCB8IFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0PnIpIDogbmV3IFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBzZW5kU2FsZXNJbnZvaWNlRW1haWwocjogU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdCB8IFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0PnIpIDogbmV3IFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2VuZFNhbGVzSW52b2ljZUVtYWlsXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjaGFyZ2VTYWxlc0ludm9pY2UocjogQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdCB8IENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0PnIpIDogbmV3IENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ2hhcmdlU2FsZXNJbnZvaWNlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBzZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsKHI6IFNlbmRTYWxlc0ludm9pY2VSZWNlaXB0RW1haWxSZXF1ZXN0IHwgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3Q+cikgOiBuZXcgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgY3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50KHI6IENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3QgfCBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0NyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgbGlzdEJhbmtBY2NvdW50cyhyOiBMaXN0QmFua0FjY291bnRzUmVxdWVzdCB8IExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0QmFua0FjY291bnRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0PnIpIDogbmV3IExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvTGlzdEJhbmtBY2NvdW50c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RCYW5rQWNjb3VudHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZXREZWZhdWx0QmFua0FjY291bnQocjogU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdCB8IFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0PnIpIDogbmV3IFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2V0RGVmYXVsdEJhbmtBY2NvdW50XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBkZWxldGVCYW5rQWNjb3VudChyOiBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3QgfCBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlQmFua0FjY291bnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdD5yKSA6IG5ldyBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvRGVsZXRlQmFua0FjY291bnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnMocjogR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1JlcXVlc3QgfCBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvbihyOiBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdCB8IFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpIDogbmV3IFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1Vwc2VydFJldGFpbENvbmZpZ3VyYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb24ocjogVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QgfCBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdD5yKSA6IG5ldyBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9VcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXRSZXRhaWxCYWxhbmNlKHI6IEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0IHwgR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFJldGFpbEJhbGFuY2VSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0UmV0YWlsQmFsYW5jZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0UmV0YWlsQmFsYW5jZVJlcXVlc3Q+cikgOiBuZXcgR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9HZXRSZXRhaWxCYWxhbmNlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldFBheW91dFN1bW1hcnkocjogR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3QgfCBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdD5yKSA6IG5ldyBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFBheW91dFN1bW1hcnlSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFBheW91dFN1bW1hcnlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRQYXlvdXRTdW1tYXJ5UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdFJldGFpbFBheW91dHMocjogTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0IHwgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFJldGFpbFBheW91dHNSZXF1ZXN0PnIpIDogbmV3IExpc3RSZXRhaWxQYXlvdXRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9MaXN0UmV0YWlsUGF5b3V0c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0UmV0YWlsUGF5b3V0KHI6IEdldFJldGFpbFBheW91dFJlcXVlc3QgfCBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRSZXRhaWxQYXlvdXRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0UmV0YWlsUGF5b3V0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0PnIpIDogbmV3IEdldFJldGFpbFBheW91dFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRSZXRhaWxQYXlvdXRSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFJldGFpbFBheW91dFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFJldGFpbFBheW91dFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNyZWF0ZVJlcG9ydFJ1bihyOiBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuIHwgQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bkludGVyZmFjZSk6IE9ic2VydmFibGU8TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bj5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuPnIpIDogbmV3IENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4ocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ3JlYXRlUmVwb3J0UnVuXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bi5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRSZXBvcnRSdW4ocjogR2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1biB8IEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2UpOiBPYnNlcnZhYmxlPE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4+cikudG9BcGlKc29uKSA/ICg8R2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bj5yKSA6IG5ldyBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuKHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bkludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFJlcG9ydFJ1blwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4uZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0UmV0YWlsQWNjb3VudEJhbGFuY2UocjogR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0IHwgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0PnIpIDogbmV3IEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9HZXRSZXRhaWxBY2NvdW50QmFsYW5jZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY2FuY2VsUmV0YWlsQmlsbGluZyhyOiBDYW5jZWxSZXRhaWxCaWxsaW5nUmVxdWVzdCB8IENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0PnIpIDogbmV3IENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0NhbmNlbFJldGFpbEJpbGxpbmdcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIFxufVxuIl19
|
|
176
|
+
}] });
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyY2hhbnQuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9tZXJjaGFudC5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsZUFBZTtBQUNmLG9DQUFvQztBQUNwQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDQywwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLGtDQUFrQyxFQUNsQyx3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsK0NBQStDLEVBQy9DLGdDQUFnQyxHQUN2QyxNQUFNLFlBQVksQ0FBQztBQWdE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QUFDLElBQUksQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQy9ELENBQUM7SUFDVixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBbUU7UUFDbkYsTUFBTSxPQUFPLEdBQUcsQ0FBOEIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBOEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxpREFBaUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUNsSyxDQUFDOzhHQXZMUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUROLE1BQU07OzJGQUNsQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0LFxuICAgICAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgICAgIENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgICAgIENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdCxcbiAgICAgICAgRGVsZXRlQmFua0FjY291bnRSZXF1ZXN0LFxuICAgICAgICBHZXRNZXJjaGFudFJlcXVlc3QsXG4gICAgICAgIEdldE1lcmNoYW50UmVzcG9uc2UsXG4gICAgICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2UsXG4gICAgICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3QsXG4gICAgICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLFxuICAgICAgICBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdCxcbiAgICAgICAgR2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlLFxuICAgICAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QsXG4gICAgICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2UsXG4gICAgICAgIEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0LFxuICAgICAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UsXG4gICAgICAgIEdldFJldGFpbFBheW91dFJlcXVlc3QsXG4gICAgICAgIEdldFJldGFpbFBheW91dFJlc3BvbnNlLFxuICAgICAgICBHZXRTdGF0aXN0aWNzUmVxdWVzdCxcbiAgICAgICAgR2V0U3RhdGlzdGljc1Jlc3BvbnNlLFxuICAgICAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdCxcbiAgICAgICAgTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlLFxuICAgICAgICBMaXN0UGF5bWVudENhcmRzUmVxdWVzdCxcbiAgICAgICAgTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlLFxuICAgICAgICBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3QsXG4gICAgICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UsXG4gICAgICAgIE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3QsXG4gICAgICAgIFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlLFxuICAgICAgICBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0LFxuICAgICAgICBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdCxcbiAgICAgICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdCxcbiAgICAgICAgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgICAgIFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3QsXG4gICAgICAgIFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgICAgIFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0LFxuICAgICAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgICAgIFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICAgICAgVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL29iamVjdHMvJztcbmltcG9ydCB7XG4gICAgICAgIENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgRGVsZXRlQmFua0FjY291bnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE1lcmNoYW50UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFJldGFpbFBheW91dFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFJldGFpbFBheW91dFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRTdGF0aXN0aWNzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0U3RhdGlzdGljc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0UGF5bWVudENhcmRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2UsXG4gICAgICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE1lcmNoYW50QXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0U2VydmljZSA9IGluamVjdChIb3N0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHByaXZhdGUgX2hvc3QgPSB0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lO1xuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY3JlYXRlKHI6IENyZWF0ZU1lcmNoYW50UmVxdWVzdCB8IENyZWF0ZU1lcmNoYW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVNZXJjaGFudFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlTWVyY2hhbnRSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZU1lcmNoYW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9DcmVhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldChyOiBHZXRNZXJjaGFudFJlcXVlc3QgfCBHZXRNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE1lcmNoYW50UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE1lcmNoYW50UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNZXJjaGFudFJlcXVlc3Q+cikgOiBuZXcgR2V0TWVyY2hhbnRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TWVyY2hhbnRSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE1lcmNoYW50UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0T3V0c3RhbmRpbmdCYWxhbmNlKHI6IEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3QgfCBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0PnIpIDogbmV3IEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldE91dHN0YW5kaW5nQmFsYW5jZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZShyOiBVcGRhdGVNZXJjaGFudFJlcXVlc3QgfCBVcGRhdGVNZXJjaGFudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTWVyY2hhbnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZU1lcmNoYW50UmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVNZXJjaGFudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvVXBkYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVQYXltZW50Q2FyZChyOiBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QgfCBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ3JlYXRlUGF5bWVudENhcmRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNldERlZmF1bHRQYXltZW50Q2FyZChyOiBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0IHwgU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3Q+cikgOiBuZXcgU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZXREZWZhdWx0UGF5bWVudENhcmRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3RQYXltZW50Q2FyZHMocjogTGlzdFBheW1lbnRDYXJkc1JlcXVlc3QgfCBMaXN0UGF5bWVudENhcmRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0UGF5bWVudENhcmRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0UGF5bWVudENhcmRzUmVxdWVzdD5yKSA6IG5ldyBMaXN0UGF5bWVudENhcmRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RQYXltZW50Q2FyZHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0xpc3RQYXltZW50Q2FyZHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0UGF5bWVudENhcmRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlUGF5bWVudENhcmQocjogVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0IHwgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1VwZGF0ZVBheW1lbnRDYXJkXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXRTdGF0aXN0aWNzKHI6IEdldFN0YXRpc3RpY3NSZXF1ZXN0IHwgR2V0U3RhdGlzdGljc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFN0YXRpc3RpY3NSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0U3RhdGlzdGljc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0U3RhdGlzdGljc1JlcXVlc3Q+cikgOiBuZXcgR2V0U3RhdGlzdGljc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRTdGF0aXN0aWNzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9HZXRTdGF0aXN0aWNzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0U3RhdGlzdGljc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNlYXJjaChyOiBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0IHwgU2VhcmNoTWVyY2hhbnRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2VhcmNoTWVyY2hhbnRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNlYXJjaE1lcmNoYW50c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VhcmNoTWVyY2hhbnRzUmVxdWVzdD5yKSA6IG5ldyBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2VhcmNoTWVyY2hhbnRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZWFyY2hcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZWFyY2hNZXJjaGFudHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZXRBdXRvUG9zdEludm9pY2VzKHI6IFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0IHwgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3Q+cikgOiBuZXcgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvU2V0QXV0b1Bvc3RJbnZvaWNlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgc2V0QXV0b0NoYXJnZUludm9pY2VzKHI6IFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3QgfCBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdD5yKSA6IG5ldyBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1NldEF1dG9DaGFyZ2VJbnZvaWNlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgc2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyhyOiBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdCB8IFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0PnIpIDogbmV3IFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1NldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZChyOiBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0IHwgU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3Q+cikgOiBuZXcgU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNlbmRTYWxlc0ludm9pY2VFbWFpbChyOiBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0IHwgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3Q+cikgOiBuZXcgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZW5kU2FsZXNJbnZvaWNlRW1haWxcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNoYXJnZVNhbGVzSW52b2ljZShyOiBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0IHwgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3Q+cikgOiBuZXcgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9DaGFyZ2VTYWxlc0ludm9pY2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHNlbmRTYWxlc0ludm9pY2VSZWNlaXB0RW1haWwocjogU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QgfCBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdD5yKSA6IG5ldyBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnQocjogQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdCB8IENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0QmFua0FjY291bnRzKHI6IExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0IHwgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RCYW5rQWNjb3VudHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdEJhbmtBY2NvdW50c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdEJhbmtBY2NvdW50c1JlcXVlc3Q+cikgOiBuZXcgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0QmFua0FjY291bnRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9MaXN0QmFua0FjY291bnRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNldERlZmF1bHRCYW5rQWNjb3VudChyOiBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0IHwgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3Q+cikgOiBuZXcgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9TZXREZWZhdWx0QmFua0FjY291bnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGRlbGV0ZUJhbmtBY2NvdW50KHI6IERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCB8IERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVCYW5rQWNjb3VudFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlQmFua0FjY291bnRSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9EZWxldGVCYW5rQWNjb3VudFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9ucyhyOiBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdCB8IEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cHNlcnRSZXRhaWxDb25maWd1cmF0aW9uKHI6IFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0IHwgVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3Q+cikgOiBuZXcgVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgdXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvbihyOiBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCB8IFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpIDogbmV3IFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL1Vwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldFJldGFpbEJhbGFuY2UocjogR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3QgfCBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdD5yKSA6IG5ldyBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFJldGFpbEJhbGFuY2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFJldGFpbEJhbGFuY2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0UGF5b3V0U3VtbWFyeShyOiBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdCB8IEdldFBheW91dFN1bW1hcnlSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRQYXlvdXRTdW1tYXJ5UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFBheW91dFN1bW1hcnlSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFBheW91dFN1bW1hcnlSZXF1ZXN0PnIpIDogbmV3IEdldFBheW91dFN1bW1hcnlSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvR2V0UGF5b3V0U3VtbWFyeVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFBheW91dFN1bW1hcnlSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBsaXN0UmV0YWlsUGF5b3V0cyhyOiBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3QgfCBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RSZXRhaWxQYXlvdXRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3Q+cikgOiBuZXcgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdFJldGFpbFBheW91dHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0xpc3RSZXRhaWxQYXlvdXRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFJldGFpbFBheW91dHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRSZXRhaWxQYXlvdXQocjogR2V0UmV0YWlsUGF5b3V0UmVxdWVzdCB8IEdldFJldGFpbFBheW91dFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFJldGFpbFBheW91dFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFJldGFpbFBheW91dFJlcXVlc3Q+cikgOiBuZXcgR2V0UmV0YWlsUGF5b3V0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFJldGFpbFBheW91dFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvR2V0UmV0YWlsUGF5b3V0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0UmV0YWlsUGF5b3V0UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlUmVwb3J0UnVuKHI6IENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4gfCBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuPnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZU1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4+cikgOiBuZXcgQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bihyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW5JbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLk1lcmNoYW50U2VydmljZS9DcmVhdGVSZXBvcnRSdW5cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldFJlcG9ydFJ1bihyOiBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuIHwgR2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bkludGVyZmFjZSk6IE9ic2VydmFibGU8TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bj5yKS50b0FwaUpzb24pID8gKDxHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuPnIpIDogbmV3IEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4ocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvR2V0UmVwb3J0UnVuXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bi5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRSZXRhaWxBY2NvdW50QmFsYW5jZShyOiBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QgfCBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3Q+cikgOiBuZXcgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuTWVyY2hhbnRTZXJ2aWNlL0dldFJldGFpbEFjY291bnRCYWxhbmNlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjYW5jZWxSZXRhaWxCaWxsaW5nKHI6IENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0IHwgQ2FuY2VsUmV0YWlsQmlsbGluZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2FuY2VsUmV0YWlsQmlsbGluZ1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q2FuY2VsUmV0YWlsQmlsbGluZ1JlcXVlc3Q+cikgOiBuZXcgQ2FuY2VsUmV0YWlsQmlsbGluZ1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5NZXJjaGFudFNlcnZpY2UvQ2FuY2VsUmV0YWlsQmlsbGluZ1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgXG59XG4iXX0=
|