simpo-component-library 3.6.156 → 3.6.158
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/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -1
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
- package/esm2022/lib/services/storage.service.mjs +5 -3
- package/fesm2022/simpo-component-library.mjs +10 -6
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +1 -1
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/services/storage.service.d.ts +1 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.158.tgz +0 -0
- package/simpo-component-library-3.6.156.tgz +0 -0
@@ -22,6 +22,7 @@ export class StorageServiceService {
|
|
22
22
|
this.cartCollectionRef = null;
|
23
23
|
this.favouriteCollectionRef = null;
|
24
24
|
this.userCollectionRef = null;
|
25
|
+
this.trialCartCollectionRef = null;
|
25
26
|
this.createDataBase();
|
26
27
|
const userDetails = this.getUser();
|
27
28
|
if (!!userDetails) {
|
@@ -66,6 +67,7 @@ export class StorageServiceService {
|
|
66
67
|
request.onupgradeneeded = (event) => {
|
67
68
|
this.database = event.target.result;
|
68
69
|
this.cartCollectionRef = this.database.createObjectStore(this.cartCollectionName, { keyPath: "varientId" });
|
70
|
+
this.trialCartCollectionRef = this.database.createObjectStore(this.trialCartCollectionName, { keyPath: "varientId" });
|
69
71
|
this.favouriteCollectionRef = this.database.createObjectStore(this.favouriteCollectionName, { keyPath: "varientId" });
|
70
72
|
this.userCollectionRef = this.database.createObjectStore(this.userCollectionName, { keyPath: "userId" });
|
71
73
|
};
|
@@ -172,8 +174,8 @@ export class StorageServiceService {
|
|
172
174
|
return await transaction.objectStore(this.favouriteCollectionName).getAll();
|
173
175
|
}
|
174
176
|
async getTrialCart() {
|
175
|
-
const transaction = this.database.transaction(this.
|
176
|
-
return await transaction.objectStore(this.
|
177
|
+
const transaction = this.database.transaction(this.trialCartCollectionName, "readwrite");
|
178
|
+
return await transaction.objectStore(this.trialCartCollectionName).getAll();
|
177
179
|
}
|
178
180
|
addProductToWishlist(product) {
|
179
181
|
const transaction = this.database.transaction(this.favouriteCollectionName, "readwrite");
|
@@ -224,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
224
226
|
providedIn: 'root'
|
225
227
|
}]
|
226
228
|
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.CookieService }, { type: i3.RestService }, { type: i4.Router }] });
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUtuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQU1sRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ21CLFlBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ2pDLE1BQWU7UUFITixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBV2pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBUW5DLGlCQUFZLEdBQVcsTUFBTSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLFdBQVcsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCw0QkFBdUIsR0FBVyxZQUFZLENBQUE7UUFDOUMsdUJBQWtCLEdBQVcsTUFBTSxDQUFDO1FBR3BDLHNCQUFpQixHQUEwQixJQUFJLENBQUM7UUFDaEQsMkJBQXNCLEdBQTBCLElBQUksQ0FBQztRQUNyRCxzQkFBaUIsR0FBMEIsSUFBSSxDQUFDO1FBM0I5QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUdELElBQUksaUJBQWlCO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBY0QsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxPQUFPLEdBQXFCLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU8sS0FBSyxDQUFDLE1BQTJCLENBQUMsTUFBTSxDQUFDO1lBQ2hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUFFLFFBQWEsRUFBRSxFQUFFO2dCQUMxQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsZ0JBQXFCLEVBQUUsRUFBRTtvQkFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDNUQsSUFBSSxDQUFDO3dCQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzNFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRSxFQUFFOzRCQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbEQsQ0FBQyxDQUFBO3dCQUNELFFBQVEsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFOzRCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbEQsQ0FBQyxDQUFBO29CQUNILENBQUM7b0JBQUMsT0FBTSxTQUFjLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xELENBQUM7b0JBQUEsQ0FBQztnQkFDSixDQUFDLENBQUE7Z0JBQ0Qsd0RBQXdEO1lBQzFELENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLE1BQU0sQ0FBQztZQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM1RyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxPQUFPO1FBRVQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2FBQzlELENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFpQixFQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQVUsQ0FBQztnQkFDM0MsTUFBTSxRQUFRLEdBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUMsVUFBVSxFQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFHLFdBQVcsRUFBRSxVQUFVLEVBQUcsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFFL0ssSUFBSSxRQUFRLEVBQUUsTUFBTTtvQkFDbEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQUMsRUFBRTtvQkFDMUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLENBQUMsZUFBb0IsRUFBRSxFQUFFO3dCQUNwRCxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRTlHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ2pELG1FQUFtRTt3QkFDbkUsNkRBQTZEO3dCQUM3RCx1REFBdUQ7d0JBQ3ZELEtBQUs7b0JBQ1AsQ0FBQyxDQUFBO2dCQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVGLE1BQU0sWUFBWSxHQUFTLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQVksQ0FBQztnQkFDMUQsSUFBSSxZQUFZLENBQUMsTUFBTTtvQkFDckIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsRUFBQyxFQUFFO29CQUNuRCxvQkFBb0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxtQkFBd0IsRUFBQyxFQUFFO3dCQUMzRCxZQUFZLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDakgsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdDLENBQUMsQ0FBQTtnQkFDSCxDQUFDLENBQUMsQ0FBQTtnQkFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sMEJBQTBCO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFlBQW1CLEVBQUUsVUFBaUI7UUFDbEQsS0FBSSxJQUFJLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdEIsS0FBSSxJQUFJLFFBQVEsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakMsSUFBRyxRQUFRLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDNUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDakIsd0NBQXdDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWU7SUFDZixLQUFLLENBQUMsV0FBVztRQUVmLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEcsT0FBTyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXFCO1FBRXBDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEcsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hGLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxZQUFpQixFQUFFLEVBQUU7WUFDekMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUEsQ0FBQztpQkFDN0IsQ0FBQztnQkFDSixJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBd0I7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUMsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxRQUF3QjtRQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUMsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxTQUFpQjtRQUNyQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLEtBQUssQ0FBQyxnQkFBZ0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUVoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekYsT0FBTyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQXFCO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxPQUFxQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekYsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QseUJBQXlCLENBQUMsU0FBaUI7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxRixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELDBCQUEwQixDQUFDLFNBQWlCO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxlQUFlO0lBQ2YsT0FBTyxDQUFDLElBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0EzT1UscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7Q29va2llU2VydmljZX0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IENhcnQsIGNhcnRUeXBlIH0gZnJvbSAnLi8uLi9lY29tbWVyY2Uvc3R5bGVzL2NhcnQubW9kYWwnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyIDogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNyZWF0ZURhdGFCYXNlKCk7XHJcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgaWYgKCEhdXNlckRldGFpbHMpIHtcclxuICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySW5mbyh1c2VyRGV0YWlscy51c2VySWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b3RhbENhcnRJdGVtczogbnVtYmVyID0gMDtcclxuICBnZXQgZ2V0VG90YWxDYXJ0SXRlbXMoKSB7XHJcbiAgICBpZiAodGhpcy50b3RhbENhcnRJdGVtcyA8IDApXHJcbiAgICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgPSAwO1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0JhZ0ljb24uZW1pdCh0aGlzLnRvdGFsQ2FydEl0ZW1zID4gMCk7XHJcbiAgICByZXR1cm4gdGhpcy50b3RhbENhcnRJdGVtcztcclxuICB9XHJcblxyXG4gIGRhdGFiYXNlTmFtZTogc3RyaW5nID0gXCJVU0VSXCI7XHJcbiAgZGF0YWJhc2VWZXJzaW9uOiBudW1iZXIgPSAxO1xyXG4gIGNhcnRDb2xsZWN0aW9uTmFtZTogc3RyaW5nID0gXCJVU0VSX0NBUlRcIjtcclxuICBmYXZvdXJpdGVDb2xsZWN0aW9uTmFtZTogc3RyaW5nID0gXCJVU0VSX0ZBVk9VUklURVwiO1xyXG4gIHRyaWFsQ2FydENvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSAnVFJJQUxfQ0FSVCdcclxuICB1c2VyQ29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IFwiVVNFUlwiO1xyXG4gIGRhdGFiYXNlITogSURCRGF0YWJhc2U7XHJcblxyXG4gIGNhcnRDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG4gIGZhdm91cml0ZUNvbGxlY3Rpb25SZWY6IElEQk9iamVjdFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlckNvbGxlY3Rpb25SZWY6IElEQk9iamVjdFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGFzeW5jIGNyZWF0ZURhdGFCYXNlKCkge1xyXG4gICAgY29uc3QgcmVxdWVzdDogSURCT3BlbkRCUmVxdWVzdCA9IGF3YWl0IHdpbmRvdy5pbmRleGVkREIub3Blbih0aGlzLmRhdGFiYXNlTmFtZSwgMSk7XHJcblxyXG4gICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdCh0cnVlKTtcclxuICAgIHJlcXVlc3Qub25lcnJvciA9ICgpID0+IHsgfTtcclxuICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXN5bmMgKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YWJhc2UgPSBhd2FpdCAoZXZlbnQudGFyZ2V0IGFzIElEQk9wZW5EQlJlcXVlc3QpLnJlc3VsdDtcclxuICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMuZ2V0VXNlckNhcnQoKTtcclxuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIChhd2FpdCB0aGlzLmdldFVzZXJDYXJ0KCkpLm9uc3VjY2VzcyA9ICh1c2VyQ2FydFJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgPSB1c2VyQ2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQubGVuZ3RoO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLmFkZEFsbFByb2R1Y3RzVG9DYXJ0KHVzZXJDYXJ0UmVzcG9uc2UudGFyZ2V0LnJlc3VsdCk7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLm9uY29tcGxldGUgPSAoKT0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXNwb25zZS5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGNhdGNoKGV4Y2VwdGlvbjogYW55KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVXNlckNhcnQub3JkZXJlZEl0ZW1zID0gYXdhaXQgcmVzcG9uc2UudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKGV2ZW50KSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmRhdGFiYXNlID0gKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XHJcbiAgICAgIHRoaXMuY2FydENvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCB7IGtleVBhdGg6IFwidmFyaWVudElkXCIgfSk7XHJcbiAgICAgIHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvblJlZiA9IHRoaXMuZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcInZhcmllbnRJZFwiIH0pO1xyXG4gICAgICB0aGlzLnVzZXJDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLnVzZXJDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcInVzZXJJZFwiIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVBbGxEYXRhKCkge1xyXG4gICAgaWYodGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdjYXJ0JykpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgaWYgKCEhdXNlckRldGFpbHMpIHtcclxuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdCh0cnVlKTtcclxuICAgICAgY29uc3QgcmVxdWVzdCA9IGZvcmtKb2luKFtcclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJdGVtcyh1c2VyRGV0YWlscy51c2VySWQsIFwiQ0FSVFwiKSxcclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJdGVtcyh1c2VyRGV0YWlscy51c2VySWQsIFwiV0lTSExJU1RcIilcclxuICAgICAgXSk7XHJcbiAgICAgIHJlcXVlc3Quc3Vic2NyaWJlKChjYXJ0UmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgICAgIGNvbnN0IHVzZXJDYXJ0OiBDYXJ0ID0gY2FydFJlc3BvbnNlPy5bMF0uZGF0YVswXSA/IGNhcnRSZXNwb25zZT8uWzBdLmRhdGFbMF0gYXMgQ2FydCA6IG5ldyBDYXJ0KHsnY2FydFR5cGUnIDogY2FydFR5cGUuQ0FSVCwgJ3VzZXJEZXRhaWxzJyA6IHVzZXJEZXRhaWxzLCAncGxhdGZvcm0nIDogJ1dFQid9KTtcclxuXHJcbiAgICAgICAgaWYgKHVzZXJDYXJ0Py5jYXJ0SWQpXHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNhcnRJZFwiLCB1c2VyQ2FydD8uY2FydElkKTtcclxuICAgICAgICB0aGlzLmdldFVzZXJDYXJ0KCkudGhlbigodXNlckNhcnRSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICB1c2VyQ2FydFJlc3BvbnNlLm9uc3VjY2VzcyA9ICh1c2VyQ2FydEluZGV4REI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB1c2VyQ2FydC5vcmRlcmVkSXRlbXMgPSB0aGlzLm1lcmdlQWxsSXRlbXModXNlckNhcnRJbmRleERCLnRhcmdldC5yZXN1bHQgPz8gW10sIHVzZXJDYXJ0Py5vcmRlcmVkSXRlbXMgPz8gW10pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGRBbGxQcm9kdWN0c1RvQ2FydCh1c2VyQ2FydC5vcmRlcmVkSXRlbXMpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHVzZXJDYXJ0KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgaWYocmVzPy5kYXRhPy5jYXJ0SWQgJiYgIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjYXJ0SWQnKSlcclxuICAgICAgICAgICAgLy8gICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0SWQnLCByZXMuZGF0YS5jYXJ0SWQpO1xyXG4gICAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIGNvbnN0IHVzZXJXaXNobGlzdDogQ2FydCA9IGNhcnRSZXNwb25zZT8uWzFdLmRhdGEgYXMgQ2FydDtcclxuICAgICAgICBpZiAodXNlcldpc2hsaXN0LmNhcnRJZClcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwid2lzaGxpc3RJZFwiLCB1c2VyV2lzaGxpc3QuY2FydElkKTtcclxuICAgICAgICB0aGlzLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKCh1c2VyV2lzaGxpc3RSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICB1c2VyV2lzaGxpc3RSZXNwb25zZS5vbnN1Y2Nlc3MgPSAodXNlcldpc2hsaXN0SW5kZXhEQjogYW55KT0+IHtcclxuICAgICAgICAgICAgdXNlcldpc2hsaXN0Lm9yZGVyZWRJdGVtcyA9IFsuLi4odXNlcldpc2hsaXN0SW5kZXhEQi50YXJnZXQucmVzdWx0ID8/IFtdKSwgLi4uKHVzZXJXaXNobGlzdC5vcmRlcmVkSXRlbXMgPz8gW10pXTtcclxuICAgICAgICAgICAgdGhpcy5hZGRBbGxQcm9kdWN0VG9XaXNobGlzdCh1c2VyV2lzaGxpc3Qub3JkZXJlZEl0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih1c2VyV2lzaGxpc3QpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5zdG9yZURhdGFUb0pTT04oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lcmdlQWxsSXRlbXModW5TeW5jZWRJdGVtOiBhbnlbXSwgc3luY2VkSXRlbTogYW55W10pIHtcclxuICAgIGZvcihsZXQgcHJvZHVjdCBvZiBzeW5jZWRJdGVtKSB7XHJcbiAgICAgIGxldCBpdGVtRm91bmQgPSBmYWxzZTtcclxuICAgICAgZm9yKGxldCBjYXJ0SXRlbSBvZiB1blN5bmNlZEl0ZW0pIHtcclxuICAgICAgICBpZihjYXJ0SXRlbS52YXJpZW50SWQgPT09IHByb2R1Y3QudmFyaWVudElkKSB7XHJcbiAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgLy8gY2FydEl0ZW0ucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZighaXRlbUZvdW5kKSB7XHJcbiAgICAgICAgdW5TeW5jZWRJdGVtLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1blN5bmNlZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLyBDQVJUIFNFUlZJQ0VcclxuICBhc3luYyBnZXRVc2VyQ2FydCgpOiBQcm9taXNlPElEQlJlcXVlc3Q8T3JkZXJlZEl0ZW1zW10+PiB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlPy50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSA/PyBcIlVTRVJfQ0FSVFwiLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiBhd2FpdCB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkuZ2V0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBhZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG5cclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUgPz8gXCJVU0VSX0NBUlRcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5nZXQocHJvZHVjdC52YXJpZW50SWQpXHJcbiAgICByZXNwb25zZS5vbnN1Y2Nlc3MgPSAoY2FydFJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGNhcnRSZXNwb25zZS50YXJnZXQucmVzdWx0KSB7fVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLnB1dChwcm9kdWN0KTtcclxuICB9XHJcblxyXG4gIGFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3RzOiBPcmRlcmVkSXRlbXNbXSk6IElEQlRyYW5zYWN0aW9uIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSA/PyBcIlVTRVJfRkFWT1VSSVRFXCIsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCk9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gICAgfSlcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbjtcclxuICB9XHJcbiAgYWRkQWxsUHJvZHVjdHNUb0NhcnQocHJvZHVjdHM6IE9yZGVyZWRJdGVtc1tdKTogSURCVHJhbnNhY3Rpb24ge1xyXG5cclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUgPz8gXCJVU0VSX0NBUlRcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICBwcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KT0+IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gICAgfSlcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbjtcclxuICB9XHJcbiAgcmVtb3ZlUHJvZHVjdEZyb21DYXJ0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zIC09IDE7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2U/LnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lID8/IFwiVVNFUl9DQVJUXCIsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5kZWxldGUocHJvZHVjdElkKTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0UHJvZHVjdEZyb21DYXJ0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2U/LnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lID8/IFwiVVNFUl9DQVJUXCIsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5nZXQocHJvZHVjdElkKTtcclxuICB9XHJcblxyXG4gIC8vIFdJU0hMSVNUIFNFUlZJQ0VcclxuICBhc3luYyBnZXRVc2VyV2hpc2hsaXN0KCk6IFByb21pc2U8SURCUmVxdWVzdDxPcmRlcmVkSXRlbXNbXT4+IHtcclxuXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuZ2V0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRUcmlhbENhcnQoKTogUHJvbWlzZTxJREJSZXF1ZXN0PE9yZGVyZWRJdGVtc1tdPj4ge1xyXG5cclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiBhd2FpdCB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5nZXRBbGwoKTtcclxuICB9XHJcblxyXG4gIGFkZFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLnB1dChwcm9kdWN0KTtcclxuICB9XHJcbiAgYWRkUHJvZHVjdFRvVHJpYWwocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gIH1cclxuICByZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuZGVsZXRlKHByb2R1Y3RJZCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclVzZXJDYXJ0KCkge1xyXG4gICAgdGhpcy50b3RhbENhcnRJdGVtcyA9IDA7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2U/LnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lID8/IFwiVVNFUl9DQVJUXCIsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJUcmlhbENhcnQoKSB7XHJcbiAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gMDtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSkuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVByb2R1Y3RGcm9tVHJpYWxDYXJ0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy50cmlhbENhcnRDb2xsZWN0aW9uTmFtZSkuZGVsZXRlKHByb2R1Y3RJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBVU0VSIFNFUlZJQ0VcclxuICBzZXRVc2VyKHVzZXI6IFVzZXIpOiBVc2VyIHtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoXCJ1c2VyXCIsIEpTT04uc3RyaW5naWZ5KHVzZXIgPz8gXCJ7fVwiKSwgNyk7XHJcbiAgICByZXR1cm4gdXNlcjtcclxuICB9XHJcbiAgZ2V0VXNlcigpOiBVc2VyIHwgbnVsbCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB1c2VyOiBVc2VyID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFwidXNlclwiKSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwicGVySWRcIiwgdXNlcj8udXNlcklkKTtcclxuICAgICAgcmV0dXJuIHVzZXI7XHJcbiAgICB9IGNhdGNoKGV4Y2VwdGlvbikge31cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUtuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQU1sRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ21CLFlBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ2pDLE1BQWU7UUFITixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBV2pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBUW5DLGlCQUFZLEdBQVcsTUFBTSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLFdBQVcsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCw0QkFBdUIsR0FBVyxZQUFZLENBQUE7UUFDOUMsdUJBQWtCLEdBQVcsTUFBTSxDQUFDO1FBR3BDLHNCQUFpQixHQUEwQixJQUFJLENBQUM7UUFDaEQsMkJBQXNCLEdBQTBCLElBQUksQ0FBQztRQUNyRCxzQkFBaUIsR0FBMEIsSUFBSSxDQUFDO1FBQ2hELDJCQUFzQixHQUEwQixJQUFJLENBQUM7UUE1Qm5ELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLENBQUMsV0FBVyxF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QUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM5RCxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTSxTQUFTLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQTdPVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb29raWVTZXJ2aWNlfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FydCwgY2FydFR5cGUgfSBmcm9tICcuLy4uL2Vjb21tZXJjZS9zdHlsZXMvY2FydC5tb2RhbCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXIgOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHRoaXMuY3JlYXRlRGF0YUJhc2UoKTtcclxuICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5nZXRVc2VyKCk7XHJcbiAgICBpZiAoISF1c2VyRGV0YWlscykge1xyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJbmZvKHVzZXJEZXRhaWxzLnVzZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICB0aGlzLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvdGFsQ2FydEl0ZW1zOiBudW1iZXIgPSAwO1xyXG4gIGdldCBnZXRUb3RhbENhcnRJdGVtcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsQ2FydEl0ZW1zIDwgMClcclxuICAgICAgdGhpcy50b3RhbENhcnRJdGVtcyA9IDA7XHJcbiAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93QmFnSWNvbi5lbWl0KHRoaXMudG90YWxDYXJ0SXRlbXMgPiAwKTtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsQ2FydEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBcIlVTRVJcIjtcclxuICBkYXRhYmFzZVZlcnNpb246IG51bWJlciA9IDE7XHJcbiAgY2FydENvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfQ0FSVFwiO1xyXG4gIGZhdm91cml0ZUNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfRkFWT1VSSVRFXCI7XHJcbiAgdHJpYWxDYXJ0Q29sbGVjdGlvbk5hbWU6IHN0cmluZyA9ICdUUklBTF9DQVJUJ1xyXG4gIHVzZXJDb2xsZWN0aW9uTmFtZTogc3RyaW5nID0gXCJVU0VSXCI7XHJcbiAgZGF0YWJhc2UhOiBJREJEYXRhYmFzZTtcclxuXHJcbiAgY2FydENvbGxlY3Rpb25SZWY6IElEQk9iamVjdFN0b3JlIHwgbnVsbCA9IG51bGw7XHJcbiAgZmF2b3VyaXRlQ29sbGVjdGlvblJlZjogSURCT2JqZWN0U3RvcmUgfCBudWxsID0gbnVsbDtcclxuICB1c2VyQ29sbGVjdGlvblJlZjogSURCT2JqZWN0U3RvcmUgfCBudWxsID0gbnVsbDtcclxuICB0cmlhbENhcnRDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBhc3luYyBjcmVhdGVEYXRhQmFzZSgpIHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IElEQk9wZW5EQlJlcXVlc3QgPSBhd2FpdCB3aW5kb3cuaW5kZXhlZERCLm9wZW4odGhpcy5kYXRhYmFzZU5hbWUsIDEpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7IH07XHJcbiAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFiYXNlID0gYXdhaXQgKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFVzZXJDYXJ0KCk7XHJcbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAoYXdhaXQgdGhpcy5nZXRVc2VyQ2FydCgpKS5vbnN1Y2Nlc3MgPSAodXNlckNhcnRSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gdXNlckNhcnRSZXNwb25zZS50YXJnZXQucmVzdWx0Lmxlbmd0aDtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5hZGRBbGxQcm9kdWN0c1RvQ2FydCh1c2VyQ2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpO1xyXG4gICAgICAgICAgICByZXNwb25zZS5vbmNvbXBsZXRlID0gKCk9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzcG9uc2Uub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBjYXRjaChleGNlcHRpb246IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IGF3YWl0IHJlc3BvbnNlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IChldmVudCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5kYXRhYmFzZSA9IChldmVudC50YXJnZXQgYXMgSURCT3BlbkRCUmVxdWVzdCkucmVzdWx0O1xyXG4gICAgICB0aGlzLmNhcnRDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcInZhcmllbnRJZFwiIH0pO1xyXG4gICAgICB0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMudHJpYWxDYXJ0Q29sbGVjdGlvbk5hbWUsIHsga2V5UGF0aDogXCJ2YXJpZW50SWRcIiB9KTtcclxuICAgICAgdGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCB7IGtleVBhdGg6IFwidmFyaWVudElkXCIgfSk7XHJcbiAgICAgIHRoaXMudXNlckNvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMudXNlckNvbGxlY3Rpb25OYW1lLCB7IGtleVBhdGg6IFwidXNlcklkXCIgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZUFsbERhdGEoKSB7XHJcbiAgICBpZih0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2NhcnQnKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5nZXRVc2VyKCk7XHJcbiAgICBpZiAoISF1c2VyRGV0YWlscykge1xyXG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KHRydWUpO1xyXG4gICAgICBjb25zdCByZXF1ZXN0ID0gZm9ya0pvaW4oW1xyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJEZXRhaWxzLnVzZXJJZCwgXCJDQVJUXCIpLFxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJEZXRhaWxzLnVzZXJJZCwgXCJXSVNITElTVFwiKVxyXG4gICAgICBdKTtcclxuICAgICAgcmVxdWVzdC5zdWJzY3JpYmUoKGNhcnRSZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuZ2V0VXNlcigpIGFzIFVzZXI7XHJcbiAgICAgICAgY29uc3QgdXNlckNhcnQ6IENhcnQgPSBjYXJ0UmVzcG9uc2U/LlswXS5kYXRhWzBdID8gY2FydFJlc3BvbnNlPy5bMF0uZGF0YVswXSBhcyBDYXJ0IDogbmV3IENhcnQoeydjYXJ0VHlwZScgOiBjYXJ0VHlwZS5DQVJULCAndXNlckRldGFpbHMnIDogdXNlckRldGFpbHMsICdwbGF0Zm9ybScgOiAnV0VCJ30pO1xyXG5cclxuICAgICAgICBpZiAodXNlckNhcnQ/LmNhcnRJZClcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY2FydElkXCIsIHVzZXJDYXJ0Py5jYXJ0SWQpO1xyXG4gICAgICAgIHRoaXMuZ2V0VXNlckNhcnQoKS50aGVuKCh1c2VyQ2FydFJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgIHVzZXJDYXJ0UmVzcG9uc2Uub25zdWNjZXNzID0gKHVzZXJDYXJ0SW5kZXhEQjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IHRoaXMubWVyZ2VBbGxJdGVtcyh1c2VyQ2FydEluZGV4REIudGFyZ2V0LnJlc3VsdCA/PyBbXSwgdXNlckNhcnQ/Lm9yZGVyZWRJdGVtcyA/PyBbXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmFkZEFsbFByb2R1Y3RzVG9DYXJ0KHVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlckNhcnQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICBpZihyZXM/LmRhdGE/LmNhcnRJZCAmJiAhbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NhcnRJZCcpKVxyXG4gICAgICAgICAgICAvLyAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnRJZCcsIHJlcy5kYXRhLmNhcnRJZCk7XHJcbiAgICAgICAgICAgIC8vIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgY29uc3QgdXNlcldpc2hsaXN0OiBDYXJ0ID0gY2FydFJlc3BvbnNlPy5bMV0uZGF0YSBhcyBDYXJ0O1xyXG4gICAgICAgIGlmICh1c2VyV2lzaGxpc3QuY2FydElkKVxyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ3aXNobGlzdElkXCIsIHVzZXJXaXNobGlzdC5jYXJ0SWQpO1xyXG4gICAgICAgIHRoaXMuZ2V0VXNlcldoaXNobGlzdCgpLnRoZW4oKHVzZXJXaXNobGlzdFJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgIHVzZXJXaXNobGlzdFJlc3BvbnNlLm9uc3VjY2VzcyA9ICh1c2VyV2lzaGxpc3RJbmRleERCOiBhbnkpPT4ge1xyXG4gICAgICAgICAgICB1c2VyV2lzaGxpc3Qub3JkZXJlZEl0ZW1zID0gWy4uLih1c2VyV2lzaGxpc3RJbmRleERCLnRhcmdldC5yZXN1bHQgPz8gW10pLCAuLi4odXNlcldpc2hsaXN0Lm9yZGVyZWRJdGVtcyA/PyBbXSldO1xyXG4gICAgICAgICAgICB0aGlzLmFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHVzZXJXaXNobGlzdC5vcmRlcmVkSXRlbXMpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHVzZXJXaXNobGlzdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyB0aGlzLnN0b3JlRGF0YVRvSlNPTigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWVyZ2VBbGxJdGVtcyh1blN5bmNlZEl0ZW06IGFueVtdLCBzeW5jZWRJdGVtOiBhbnlbXSkge1xyXG4gICAgZm9yKGxldCBwcm9kdWN0IG9mIHN5bmNlZEl0ZW0pIHtcclxuICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xyXG4gICAgICBmb3IobGV0IGNhcnRJdGVtIG9mIHVuU3luY2VkSXRlbSkge1xyXG4gICAgICAgIGlmKGNhcnRJdGVtLnZhcmllbnRJZCA9PT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW1Gb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAvLyBjYXJ0SXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKCFpdGVtRm91bmQpIHtcclxuICAgICAgICB1blN5bmNlZEl0ZW0ucHVzaChwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuU3luY2VkSXRlbTtcclxuICB9XHJcblxyXG4gIC8vIENBUlQgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJDYXJ0KCk6IFByb21pc2U8SURCUmVxdWVzdDxPcmRlcmVkSXRlbXNbXT4+IHtcclxuXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2U/LnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lID8/IFwiVVNFUl9DQVJUXCIsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5nZXRBbGwoKTtcclxuICB9XHJcblxyXG4gIGFkZFByb2R1Y3RUb0NhcnQocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlPy50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSA/PyBcIlVTRVJfQ0FSVFwiLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0LnZhcmllbnRJZClcclxuICAgIHJlc3BvbnNlLm9uc3VjY2VzcyA9IChjYXJ0UmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoY2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpIHt9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gIH1cclxuXHJcbiAgYWRkQWxsUHJvZHVjdFRvV2lzaGxpc3QocHJvZHVjdHM6IE9yZGVyZWRJdGVtc1tdKTogSURCVHJhbnNhY3Rpb24ge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlPy50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lID8/IFwiVVNFUl9GQVZPVVJJVEVcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICBwcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KT0+IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICBhZGRBbGxQcm9kdWN0c1RvQ2FydChwcm9kdWN0czogT3JkZXJlZEl0ZW1zW10pOiBJREJUcmFuc2FjdGlvbiB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlPy50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSA/PyBcIlVTRVJfQ0FSVFwiLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpPT4ge1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICByZW1vdmVQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgLT0gMTtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUgPz8gXCJVU0VSX0NBUlRcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmRlbGV0ZShwcm9kdWN0SWQpO1xyXG4gIH1cclxuICBhc3luYyBnZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUgPz8gXCJVU0VSX0NBUlRcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gV0lTSExJU1QgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJXaGlzaGxpc3QoKTogUHJvbWlzZTxJREJSZXF1ZXN0PE9yZGVyZWRJdGVtc1tdPj4ge1xyXG5cclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiBhd2FpdCB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5nZXRBbGwoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFRyaWFsQ2FydCgpOiBQcm9taXNlPElEQlJlcXVlc3Q8T3JkZXJlZEl0ZW1zW10+PiB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMudHJpYWxDYXJ0Q29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMudHJpYWxDYXJ0Q29sbGVjdGlvbk5hbWUpLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJvZHVjdFRvV2lzaGxpc3QocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkucHV0KHByb2R1Y3QpO1xyXG4gIH1cclxuICBhZGRQcm9kdWN0VG9UcmlhbChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgfVxyXG4gIHJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5kZWxldGUocHJvZHVjdElkKTtcclxuICB9XHJcblxyXG4gIGNsZWFyVXNlckNhcnQoKSB7XHJcbiAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gMDtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZT8udHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUgPz8gXCJVU0VSX0NBUlRcIiwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclRyaWFsQ2FydCgpIHtcclxuICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgPSAwO1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlPy50cmFuc2FjdGlvbih0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lKS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUHJvZHVjdEZyb21UcmlhbENhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLnRyaWFsQ2FydENvbGxlY3Rpb25OYW1lKS5kZWxldGUocHJvZHVjdElkKTtcclxuICB9XHJcblxyXG4gIC8vIFVTRVIgU0VSVklDRVxyXG4gIHNldFVzZXIodXNlcjogVXNlcik6IFVzZXIge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcInVzZXJcIiwgSlNPTi5zdHJpbmdpZnkodXNlciA/PyBcInt9XCIpLCA3KTtcclxuICAgIHJldHVybiB1c2VyO1xyXG4gIH1cclxuICBnZXRVc2VyKCk6IFVzZXIgfCBudWxsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHVzZXI6IFVzZXIgPSBKU09OLnBhcnNlKHRoaXMuY29va2llU2VydmljZS5nZXQoXCJ1c2VyXCIpKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJwZXJJZFwiLCB1c2VyPy51c2VySWQpO1xyXG4gICAgICByZXR1cm4gdXNlcjtcclxuICAgIH0gY2F0Y2goZXhjZXB0aW9uKSB7fVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|