@colijnit/product 258.1.5 → 258.1.6
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/app/components/image-carousel/image-carousel.component.d.ts +5 -0
- package/app/components/product-addtocart/product-addtocart.component.d.ts +5 -1
- package/app/components/product-page/product-page.component.d.ts +1 -0
- package/app/service/product-connector-adapter.service.d.ts +1 -0
- package/app/service/product-connector.service.d.ts +2 -0
- package/bundles/colijnit-product.umd.js +166 -67
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/colijnit-product-258.1.5.tgz +0 -0
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/image-carousel/image-carousel.component.js +82 -36
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +38 -8
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +2 -2
- package/esm2015/app/components/product-page/product-page.component.js +19 -6
- package/esm2015/app/product-version.js +3 -3
- package/esm2015/app/service/product-connector-adapter.service.js +9 -1
- package/esm2015/app/service/product-connector.service.js +5 -1
- package/fesm2015/colijnit-product.js +151 -51
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, ViewChild } from '@angular/core';
|
|
3
2
|
import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
|
|
4
3
|
import { ProductConnectorService } from '../../service/product-connector.service';
|
|
@@ -12,6 +11,7 @@ export class ImageCarouselComponent {
|
|
|
12
11
|
this._appEventService = _appEventService;
|
|
13
12
|
this._changeDetector = _changeDetector;
|
|
14
13
|
this._domSanitizer = _domSanitizer;
|
|
14
|
+
this.isPopupOpen = false;
|
|
15
15
|
this.showRefresh = false;
|
|
16
16
|
this.resizing = false;
|
|
17
17
|
this.imageViewModels = [];
|
|
@@ -41,6 +41,12 @@ export class ImageCarouselComponent {
|
|
|
41
41
|
this._changeDetector.detectChanges();
|
|
42
42
|
}));
|
|
43
43
|
}
|
|
44
|
+
// Close on ESC
|
|
45
|
+
onEsc() {
|
|
46
|
+
if (this.isPopupOpen) {
|
|
47
|
+
this.closePopup();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
44
50
|
set images(value) {
|
|
45
51
|
if (value && value.length > 0) {
|
|
46
52
|
this._images = this._filterValidImages(value);
|
|
@@ -87,15 +93,16 @@ export class ImageCarouselComponent {
|
|
|
87
93
|
}
|
|
88
94
|
handleShowImage(imageViewModel) {
|
|
89
95
|
if (imageViewModel && imageViewModel.originalSource) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
popupWindow.document.write(`<img src=${imageViewModel.originalSource} alt="Image" style="width:100%; height:auto;">`);
|
|
94
|
-
popupWindow.document.write('</body></html>');
|
|
95
|
-
// Close the document to render the popup window
|
|
96
|
-
popupWindow.document.close();
|
|
96
|
+
this.selectedImage = imageViewModel;
|
|
97
|
+
this.isPopupOpen = true;
|
|
98
|
+
this._changeDetector.markForCheck();
|
|
97
99
|
}
|
|
98
100
|
}
|
|
101
|
+
closePopup() {
|
|
102
|
+
this.isPopupOpen = false;
|
|
103
|
+
this.selectedImage = undefined;
|
|
104
|
+
this._changeDetector.markForCheck();
|
|
105
|
+
}
|
|
99
106
|
_filterValidImages(value) {
|
|
100
107
|
if (!value) {
|
|
101
108
|
return [];
|
|
@@ -138,38 +145,54 @@ export class ImageCarouselComponent {
|
|
|
138
145
|
}
|
|
139
146
|
_resizeAndSanitizeSource(source, imageViewModel) {
|
|
140
147
|
const resizeCanvas = document.createElement('canvas');
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
let newHeight = this._resizeCanvasHeight;
|
|
155
|
-
if (originalWidth > originalHeight) {
|
|
156
|
-
newHeight = this._resizeCanvasHeight / aspectRatio;
|
|
148
|
+
const ctx = resizeCanvas.getContext('2d');
|
|
149
|
+
const img = document.createElement('img');
|
|
150
|
+
img.crossOrigin = 'anonymous';
|
|
151
|
+
img.onload = () => {
|
|
152
|
+
ctx.imageSmoothingEnabled = true;
|
|
153
|
+
ctx.imageSmoothingQuality = 'high';
|
|
154
|
+
const ow = img.width;
|
|
155
|
+
const oh = img.height;
|
|
156
|
+
const aspect = ow / oh;
|
|
157
|
+
let newW = this._resizeCanvasHeight;
|
|
158
|
+
let newH = this._resizeCanvasHeight;
|
|
159
|
+
if (ow > oh) {
|
|
160
|
+
newH = this._resizeCanvasHeight / aspect;
|
|
157
161
|
}
|
|
158
162
|
else {
|
|
159
|
-
|
|
163
|
+
newW = this._resizeCanvasHeight * aspect;
|
|
160
164
|
}
|
|
161
|
-
|
|
162
|
-
resizeCanvas.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const
|
|
165
|
+
resizeCanvas.width = Math.round(newW);
|
|
166
|
+
resizeCanvas.height = Math.round(newH);
|
|
167
|
+
// Ensure transparent background before drawing
|
|
168
|
+
ctx.clearRect(0, 0, resizeCanvas.width, resizeCanvas.height);
|
|
169
|
+
ctx.drawImage(img, 0, 0, resizeCanvas.width, resizeCanvas.height);
|
|
170
|
+
const mime = this._detectPreferredMime(source);
|
|
171
|
+
const resizedSource = mime === 'image/jpeg'
|
|
172
|
+
? resizeCanvas.toDataURL('image/jpeg', 0.92) // only if original was JPEG
|
|
173
|
+
: resizeCanvas.toDataURL(mime); // PNG/WebP keep alpha
|
|
167
174
|
imageViewModel.source = this._domSanitizer.bypassSecurityTrustUrl(resizedSource);
|
|
168
175
|
imageViewModel.originalSource = source;
|
|
169
176
|
this._changeDetector.detectChanges();
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
177
|
+
};
|
|
178
|
+
img.src = source;
|
|
179
|
+
}
|
|
180
|
+
_detectPreferredMime(source) {
|
|
181
|
+
// Data URI check
|
|
182
|
+
const m = source.match(/^data:(image\/[a-zA-Z+.-]+);base64,/);
|
|
183
|
+
if (m) {
|
|
184
|
+
const t = m[1].toLowerCase();
|
|
185
|
+
if (t === 'image/png' || t === 'image/webp' || t === 'image/jpeg')
|
|
186
|
+
return t;
|
|
187
|
+
}
|
|
188
|
+
const lower = source.toLowerCase();
|
|
189
|
+
if (lower.endsWith('.png'))
|
|
190
|
+
return 'image/png';
|
|
191
|
+
if (lower.endsWith('.webp'))
|
|
192
|
+
return 'image/webp';
|
|
193
|
+
if (lower.endsWith('.jpg') || lower.endsWith('.jpeg'))
|
|
194
|
+
return 'image/jpeg';
|
|
195
|
+
return 'image/png';
|
|
173
196
|
}
|
|
174
197
|
_scrollCarouselToIndex() {
|
|
175
198
|
if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {
|
|
@@ -219,9 +242,31 @@ ImageCarouselComponent.decorators = [
|
|
|
219
242
|
</co-scroll-container>
|
|
220
243
|
</div>
|
|
221
244
|
</div>
|
|
245
|
+
<!-- Modal (real popup) -->
|
|
246
|
+
<div
|
|
247
|
+
class="image-modal"
|
|
248
|
+
*ngIf="isPopupOpen"
|
|
249
|
+
(click)="closePopup()"
|
|
250
|
+
role="dialog"
|
|
251
|
+
aria-modal="true"
|
|
252
|
+
aria-label="Image preview"
|
|
253
|
+
>
|
|
254
|
+
<div class="image-modal__content" (click)="$event.stopPropagation()">
|
|
255
|
+
<button
|
|
256
|
+
class="image-modal__close"
|
|
257
|
+
type="button"
|
|
258
|
+
aria-label="Close"
|
|
259
|
+
(click)="closePopup()"
|
|
260
|
+
>
|
|
261
|
+
×
|
|
262
|
+
</button>
|
|
263
|
+
|
|
264
|
+
<img [src]="selectedImage?.originalSource" alt="Image preview" />
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
222
267
|
`,
|
|
223
268
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
224
|
-
styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
|
|
269
|
+
styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;cursor:zoom-in;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}.image-modal{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;-o-object-fit:contain;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
|
|
225
270
|
},] }
|
|
226
271
|
];
|
|
227
272
|
ImageCarouselComponent.ctorParameters = () => [
|
|
@@ -232,6 +277,7 @@ ImageCarouselComponent.ctorParameters = () => [
|
|
|
232
277
|
];
|
|
233
278
|
ImageCarouselComponent.propDecorators = {
|
|
234
279
|
carousel: [{ type: ViewChild, args: ['carousel', { read: ElementRef },] }],
|
|
280
|
+
onEsc: [{ type: HostListener, args: ['document:keydown.escape',] }],
|
|
235
281
|
showRefresh: [{ type: Input }],
|
|
236
282
|
images: [{ type: Input }],
|
|
237
283
|
handleWindowResize: [{ type: HostListener, args: ['window:resize',] }],
|
|
@@ -239,4 +285,4 @@ ImageCarouselComponent.propDecorators = {
|
|
|
239
285
|
gotoPrevSlide: [{ type: HostListener, args: ['swiperight',] }],
|
|
240
286
|
resizing: [{ type: HostBinding, args: ['class.resizing',] }]
|
|
241
287
|
};
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ltYWdlLWNhcm91c2VsL2ltYWdlLWNhcm91c2VsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBR3hFLE9BQU8sRUFBQyxZQUFZLEVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUdoRSxNQUFNLE9BQU8sY0FBYztDQUkxQjtBQXdDRCxNQUFNLE9BQU8sc0JBQXNCO0lBa0VqQyxZQUNVLEtBQThCLEVBQzlCLGdCQUFxQyxFQUNyQyxlQUFrQyxFQUNsQyxhQUEyQjtRQUgzQixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQWpFOUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFpRDdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHM0Isa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUE0QixFQUFFLENBQUM7UUFDdEMsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFFM0Isd0JBQW1CLEdBQVcsR0FBRyxDQUFDO1FBUXhDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUNoRixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksVUFBVSxFQUFFO29CQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3BDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDaEM7Z0JBQ0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDOUI7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBdkZELElBQ1csTUFBTSxDQUFDLEtBQThCO1FBQzlDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFHTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUdNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFHTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWE7UUFDakMsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBNkNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlLENBQUMsY0FBOEI7UUFDbkQsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRTtZQUNuRCxJQUFJLFdBQVcsR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUNoRixzQ0FBc0M7WUFDdEMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztZQUNqRixXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLGNBQWMsQ0FBQyxjQUFjLGdEQUFnRCxDQUFDLENBQUM7WUFDdEgsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM3QyxnREFBZ0Q7WUFDaEQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUE4QjtRQUN2RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXdCLEVBQUUsRUFBRTtZQUMvQyxNQUFNLE9BQU8sR0FBRyxzQ0FBc0MsQ0FBQztZQUN2RCxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFzQixFQUFFLEVBQUU7Z0JBQzlDLElBQUksY0FBYyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQzFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxFQUFFLCtDQUErQztvQkFDMUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztpQkFDbEQ7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO3FCQUMzRDt5QkFBTSxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7d0JBQ3pCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsY0FBYyxDQUFDLENBQUM7cUJBQ3hFO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUF3QixFQUFFLEVBQUU7NEJBQ25GLElBQUksT0FBTyxFQUFFO2dDQUNYLENBQUMsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQ0FDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLENBQUMsQ0FBQztnQ0FDdkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs2QkFDdEM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsY0FBOEI7UUFDN0UsTUFBTSxZQUFZLEdBQXNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekUsTUFBTSxtQkFBbUIsR0FBNkIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRixNQUFNLFdBQVcsR0FBcUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUN0QyxXQUFXLENBQUMsTUFBTSxHQUFHLEdBQVMsRUFBRTtZQUM5QixtQkFBbUIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7WUFDakQsbUJBQW1CLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDO1lBQ25ELG9DQUFvQztZQUNwQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFFMUMsNkJBQTZCO1lBQzdCLE1BQU0sV0FBVyxHQUFHLGFBQWEsR0FBRyxjQUFjLENBQUM7WUFFbkQsd0VBQXdFO1lBQ3hFLElBQUksUUFBUSxHQUFXLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUNoRCxJQUFJLFNBQVMsR0FBVyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFFakQsSUFBSSxhQUFhLEdBQUcsY0FBYyxFQUFFO2dCQUNsQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQzthQUNwRDtpQkFBTTtnQkFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQzthQUNuRDtZQUVELGtEQUFrRDtZQUNsRCxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztZQUM5QixZQUFZLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUVoQyxNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRixtQkFBbUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFM0QsY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLGNBQWMsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFBLENBQUM7UUFDRixhQUFhO1FBQ2IsV0FBVyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNyRSxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNuRixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7Z0JBQ2hELHlDQUF5QztnQkFDekMsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7O1lBMVBGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUVoRDs7O1lBbERPLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFYekIsaUJBQWlCO1lBY1gsWUFBWTs7O3VCQWdEakIsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7MEJBR3hDLEtBQUs7cUJBR0wsS0FBSztpQ0FhTCxZQUFZLFNBQUMsZUFBZTs0QkFVNUIsWUFBWSxTQUFDLFdBQVc7NEJBS3hCLFlBQVksU0FBQyxZQUFZO3VCQWtCekIsV0FBVyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50JztcbmltcG9ydCB7UHJvZHVjdENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1jb25uZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQge1Byb2R1Y3RFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlVXJsfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7RG9jdW1lbnRDb250ZW50fSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9kb2N1bWVudC1jb250ZW50JztcblxuZXhwb3J0IGNsYXNzIEltYWdlVmlld01vZGVsIHtcbiAgcHVibGljIGltYWdlOiBDb0RvY3VtZW50IHwgc3RyaW5nO1xuICBwdWJsaWMgc291cmNlOiBTYWZlVXJsO1xuICBwdWJsaWMgb3JpZ2luYWxTb3VyY2U6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWltYWdlLWNhcm91c2VsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgaWQ9XCJwcm9kdWN0X3BhZ2VfY2Fyb3VzZWxcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwicHJvZHVjdF9wYWdlX2Nhcm91c2VsX2l0ZW1zXCI+XG4gICAgICAgICAgICAgIDxjby1sb2FkZXIgW2lzU2hvd25dPVwidHJ1ZVwiICpuZ0lmPVwic2hvd0xvYWRlclwiPjwvY28tbG9hZGVyPlxuICAgICAgICAgICAgICA8ZGl2ICNjYXJvdXNlbCBjbGFzcz1cImlubmVyLWNhcm91c2VsXCI+XG4gICAgICAgICAgICAgICAgICA8IS0tIFRoaXMgaGFzIGJlZW4gdGFrZW4gb3V0IG9mIHRoZSBmb3IgbG9vcCB0byBwcmV2ZW50IGZsYXNoaW5nIGltYWdlcyB3aGVuIHVwZGF0aW5nLiAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbWFnZVZpZXdNb2RlbHNbMF1cIiBjbGFzcz1cImNhcm91c2VsLWl0ZW1cIiBbaWRdPVwiJ3NsaWRlLTAnXCIgW2NsYXNzLmFjdGl2ZV09XCJpc0N1cnJlbnRJbmRleCgwKVwiIChjbGljayk9XCJoYW5kbGVTaG93SW1hZ2UoaW1hZ2VWaWV3TW9kZWxzWzBdKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZVZpZXdNb2RlbHNbMF0uc291cmNlXCI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltYWdlVmlld01vZGVsIG9mIGltYWdlVmlld01vZGVscy5zbGljZSgxKTsgbGV0IGluZGV4ID0gaW5kZXhcIiBjbGFzcz1cImNhcm91c2VsLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3NsaWRlLScgKyAoaW5kZXggKyAxKVwiIFtjbGFzcy5hY3RpdmVdPVwiaXNDdXJyZW50SW5kZXgoKGluZGV4ICsgMSkpXCIgKGNsaWNrKT1cImhhbmRsZVNob3dJbWFnZShpbWFnZVZpZXdNb2RlbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VWaWV3TW9kZWwuc291cmNlXCI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1zY3JvbGxlci1sYXllclwiICpuZ0lmPVwiaW1hZ2VWaWV3TW9kZWxzICYmIGltYWdlVmlld01vZGVscy5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0tc2Nyb2xsZXIgcHJldlwiIChjbGljayk9XCJnb3RvUHJldlNsaWRlKClcIiAqbmdJZj1cImN1cnJlbnRJbmRleCA+IDBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbS1zY3JvbGxlciBuZXh0XCIgKGNsaWNrKT1cImdvdG9OZXh0U2xpZGUoKVwiICpuZ0lmPVwiY3VycmVudEluZGV4IDwgaW1hZ2VzLmxlbmd0aCAtIDFcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPCEtLVxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwic2VsZWN0b3ItdHlwZS1pY29uIHJlZnJlc2gtYnV0dG9uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZS5nZXRJY29uKGljb25zLlJlZnJlc2gpXCIgKGNsaWNrKT1cIm9uRm9yY2VSZW5kZXJJbWFnZSgpXCIgW2NsYXNzLmxvYWRpbmddPVwic2hvd0xvYWRlclwiICpuZ0lmPVwic2hvd1JlZnJlc2hcIj48L2NvLWljb24+XG4gICAgICAgICAgICAgIC0tPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBpZD1cInByb2R1Y3RfcGFnZV9jYXJvdXNlbF90aHVtYnNcIj5cbiAgICAgICAgICAgICAgPGNvLXNjcm9sbC1jb250YWluZXIgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCIgKm5nSWY9XCJpbWFnZVZpZXdNb2RlbHMgJiYgaW1hZ2VWaWV3TW9kZWxzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltYWdlVmlld01vZGVsIG9mIGltYWdlVmlld01vZGVsczsgbGV0IGluZGV4ID0gaW5kZXhcIiBjbGFzcz1cImNhcm91c2VsLXRodW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpbmRleCA9PT0gY3VycmVudEluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVmlld01vZGVsLnNvdXJjZVwiIChjbGljayk9XCJoYW5kbGVUaHVtYkNsaWNrKGluZGV4KVwiLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2NvLXNjcm9sbC1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWNhcm91c2VsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICBwdWJsaWMgY2Fyb3VzZWw6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSZWZyZXNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbWFnZXModmFsdWU6IChDb0RvY3VtZW50IHwgc3RyaW5nKVtdKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2ltYWdlcyA9IHRoaXMuX2ZpbHRlclZhbGlkSW1hZ2VzKHZhbHVlKTtcbiAgICAgIHRoaXMuX2xvYWRBbmRSZXNjYWxlSW1hZ2VzKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbWFnZXMoKTogKENvRG9jdW1lbnQgfCBzdHJpbmcpW10ge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZXM7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcHVibGljIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9zY3JvbGxDYXJvdXNlbFRvSW5kZXgoKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplVGltZXIpO1xuICAgIHRoaXMuX3Jlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3N3aXBlbGVmdCcpXG4gIHB1YmxpYyBnb3RvTmV4dFNsaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdzd2lwZXJpZ2h0JylcbiAgcHVibGljIGdvdG9QcmV2U2xpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgfVxuXG4gIHB1YmxpYyBpc0N1cnJlbnRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEluZGV4ID09PSBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLl9zY3JvbGxDYXJvdXNlbFRvSW5kZXgoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVzaXppbmcnKVxuICBwdWJsaWMgcmVzaXppbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgaW1hZ2VWaWV3TW9kZWxzOiBJbWFnZVZpZXdNb2RlbFtdID0gW107XG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcmVzaXplVGltZXI6IGFueTtcbiAgcHJpdmF0ZSBfY3VycmVudEluZGV4ID0gMDtcbiAgcHJpdmF0ZSBfaW1hZ2VzOiAoQ29Eb2N1bWVudCB8IHN0cmluZylbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZUNhbnZhc0hlaWdodDogbnVtYmVyID0gNTAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2lvbmU6IFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FwcEV2ZW50U2VydmljZTogUHJvZHVjdEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7XG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLm9uUmVuZGVyU3RhcnRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSwgMTAwMDApO1xuICAgICAgfSksXG4gICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25EcmFmdFJlbmRlckltYWdlUmVjZWl2ZWQuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRldGFpbCkge1xuICAgICAgICAgIGlmICh0aGlzLl9pbWFnZXNbMF0gaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9pbWFnZXMudW5zaGlmdChldmVudC5kZXRhaWwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbWFnZXNbMF0gPSBldmVudC5kZXRhaWw7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2xvYWRBbmRSZXNjYWxlSW1hZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2Fyb3VzZWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVUaHVtYkNsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgcHVibGljIG9uRm9yY2VSZW5kZXJJbWFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25Gb3JjZVJlbmRlckltYWdlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaG93SW1hZ2UoaW1hZ2VWaWV3TW9kZWw6IEltYWdlVmlld01vZGVsKTogdm9pZCB7XG4gICAgaWYgKGltYWdlVmlld01vZGVsICYmIGltYWdlVmlld01vZGVsLm9yaWdpbmFsU291cmNlKSB7XG4gICAgICBsZXQgcG9wdXBXaW5kb3c6IFdpbmRvdyA9IHdpbmRvdy5vcGVuKCcnLCAnSW1hZ2Ugem9vbScsICd3aWR0aD02MDAsaGVpZ2h0PTQwMCcpO1xuICAgICAgLy8gU2V0IHRoZSBjb250ZW50IG9mIHRoZSBwb3B1cCB3aW5kb3dcbiAgICAgIHBvcHVwV2luZG93LmRvY3VtZW50LndyaXRlKCc8aHRtbD48aGVhZD48dGl0bGU+SW1hZ2Ugem9vbTwvdGl0bGU+PC9oZWFkPjxib2R5PicpO1xuICAgICAgcG9wdXBXaW5kb3cuZG9jdW1lbnQud3JpdGUoYDxpbWcgc3JjPSR7aW1hZ2VWaWV3TW9kZWwub3JpZ2luYWxTb3VyY2V9IGFsdD1cIkltYWdlXCIgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bztcIj5gKTtcbiAgICAgIHBvcHVwV2luZG93LmRvY3VtZW50LndyaXRlKCc8L2JvZHk+PC9odG1sPicpO1xuICAgICAgLy8gQ2xvc2UgdGhlIGRvY3VtZW50IHRvIHJlbmRlciB0aGUgcG9wdXAgd2luZG93XG4gICAgICBwb3B1cFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlclZhbGlkSW1hZ2VzKHZhbHVlOiAoQ29Eb2N1bWVudCB8IHN0cmluZylbXSk6IChDb0RvY3VtZW50IHwgc3RyaW5nKVtdIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoKGRvYzogQ29Eb2N1bWVudCB8IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGF0dGVybiA9IC9cXC4oanBnfGpwZWd8cG5nfGdpZnxibXB8dGlmZnx3ZWJwKSQvaTtcbiAgICAgIHJldHVybiB0eXBlb2YgZG9jID09PSAnc3RyaW5nJyB8fCAocGF0dGVybi50ZXN0KGRvYy5maWxlTmFtZSkgfHwgISFkb2MuZmlsZVBhdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZEFuZFJlc2NhbGVJbWFnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZVZpZXdNb2RlbHMubGVuZ3RoID0gMDtcbiAgICBpZiAodGhpcy5faW1hZ2VzKSB7XG4gICAgICB0aGlzLl9pbWFnZXMuZm9yRWFjaCgoaTogQ29Eb2N1bWVudCB8IHN0cmluZykgPT4ge1xuICAgICAgICBsZXQgaW1hZ2VWaWV3TW9kZWwgPSBuZXcgSW1hZ2VWaWV3TW9kZWwoKTtcbiAgICAgICAgaW1hZ2VWaWV3TW9kZWwuaW1hZ2UgPSBpO1xuICAgICAgICBpZiAodHlwZW9mIGkgPT09ICdzdHJpbmcnKSB7IC8vIGlzIGEgcmVuZGVyZWQgaW1hZ2UgY29taW5nIGZyb20gY29uZmlndXJhdG9yXG4gICAgICAgICAgdGhpcy5fcmVzaXplQW5kU2FuaXRpemVTb3VyY2UoaSwgaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpLmZpbGVQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShpLmZpbGVQYXRoLCBpbWFnZVZpZXdNb2RlbCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpLmRvY3VtZW50Qm9keSkge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplQW5kU2FuaXRpemVTb3VyY2UoaS5kb2N1bWVudEJvZHlBc0RhdGFVcmksIGltYWdlVmlld01vZGVsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW9uZS5nZXREb2N1bWVudENvbnRlbnQoaS5kb2N1bWVudElkLCBmYWxzZSkudGhlbigoY29udGVudDogRG9jdW1lbnRDb250ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICAgICAgaS5kb2N1bWVudEJvZHkgPSBjb250ZW50LmRvY3VtZW50Q29udGVudDtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShpLmRvY3VtZW50Qm9keUFzRGF0YVVyaSwgaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW1hZ2VWaWV3TW9kZWxzLnB1c2goaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShzb3VyY2U6IHN0cmluZywgaW1hZ2VWaWV3TW9kZWw6IEltYWdlVmlld01vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgcmVzaXplQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IHJlc2l6ZUNhbnZhc0NvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCA9IHJlc2l6ZUNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnN0IHJlc2l6ZUltYWdlOiBIVE1MSW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgcmVzaXplSW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICByZXNpemVJbWFnZS5vbmxvYWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICByZXNpemVDYW52YXNDb250ZXh0LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICByZXNpemVDYW52YXNDb250ZXh0LmltYWdlU21vb3RoaW5nUXVhbGl0eSA9ICdoaWdoJztcbiAgICAgIC8vIEdldCB0aGUgb3JpZ2luYWwgaW1hZ2UgZGltZW5zaW9uc1xuICAgICAgY29uc3Qgb3JpZ2luYWxXaWR0aCA9IHJlc2l6ZUltYWdlLndpZHRoO1xuICAgICAgY29uc3Qgb3JpZ2luYWxIZWlnaHQgPSByZXNpemVJbWFnZS5oZWlnaHQ7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgYXNwZWN0IHJhdGlvXG4gICAgICBjb25zdCBhc3BlY3RSYXRpbyA9IG9yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgd2lkdGggYW5kIGhlaWdodCB3aGlsZSBtYWludGFpbmluZyB0aGUgYXNwZWN0IHJhdGlvXG4gICAgICBsZXQgbmV3V2lkdGg6IG51bWJlciA9IHRoaXMuX3Jlc2l6ZUNhbnZhc0hlaWdodDtcbiAgICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlciA9IHRoaXMuX3Jlc2l6ZUNhbnZhc0hlaWdodDtcblxuICAgICAgaWYgKG9yaWdpbmFsV2lkdGggPiBvcmlnaW5hbEhlaWdodCkge1xuICAgICAgICBuZXdIZWlnaHQgPSB0aGlzLl9yZXNpemVDYW52YXNIZWlnaHQgLyBhc3BlY3RSYXRpbztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1dpZHRoID0gdGhpcy5fcmVzaXplQ2FudmFzSGVpZ2h0ICogYXNwZWN0UmF0aW87XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0aGUgY2FudmFzIHNpemUgdG8gdGhlIG5ldyB3aWR0aCBhbmQgaGVpZ2h0XG4gICAgICByZXNpemVDYW52YXMud2lkdGggPSBuZXdXaWR0aDtcbiAgICAgIHJlc2l6ZUNhbnZhcy5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IGltYWdlV2lkdGg6IG51bWJlciA9IHRoaXMuX3Jlc2l6ZUNhbnZhc0hlaWdodCAqIChyZXNpemVJbWFnZS5oZWlnaHQgLyByZXNpemVJbWFnZS53aWR0aCk7XG4gICAgICByZXNpemVDYW52YXNDb250ZXh0LmRyYXdJbWFnZShyZXNpemVJbWFnZSwgMCwgMCwgbmV3V2lkdGgsIG5ld0hlaWdodCk7XG4gICAgICBjb25zdCByZXNpemVkU291cmNlID0gcmVzaXplQ2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycpO1xuXG4gICAgICBpbWFnZVZpZXdNb2RlbC5zb3VyY2UgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChyZXNpemVkU291cmNlKTtcbiAgICAgIGltYWdlVmlld01vZGVsLm9yaWdpbmFsU291cmNlID0gc291cmNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH07XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJlc2l6ZUltYWdlLnNyYyA9IHNvdXJjZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Njcm9sbENhcm91c2VsVG9JbmRleCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPiAtMSAmJiB0aGlzLmN1cnJlbnRJbmRleCA8PSB0aGlzLmltYWdlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1vdmVQeDogbnVtYmVyID0gdGhpcy5jdXJyZW50SW5kZXggKiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICBpZiAodGhpcy5jYXJvdXNlbCAmJiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSBtb3ZlUHg7XG4gICAgICAgIC8vIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIC8vICAgbGVmdDogbW92ZVB4LFxuICAgICAgICAvLyAgIGJlaGF2aW9yOiAnc21vb3RoJ1xuICAgICAgICAvLyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIl19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ltYWdlLWNhcm91c2VsL2ltYWdlLWNhcm91c2VsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFHeEUsT0FBTyxFQUFDLFlBQVksRUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLE1BQU0sT0FBTyxjQUFjO0NBSTFCO0FBOERELE1BQU0sT0FBTyxzQkFBc0I7SUE2RWpDLFlBQ1UsS0FBOEIsRUFDOUIsZ0JBQXFDLEVBQ3JDLGVBQWtDLEVBQ2xDLGFBQTJCO1FBSDNCLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFDckMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBN0U5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVlwQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQWlEN0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDdkMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUczQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN0QyxVQUFLLEdBQW1CLEVB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QW1CO1lBWHpCLGlCQUFpQjtZQWNYLFlBQVk7Ozt1QkFzRWpCLFNBQVMsU0FBQyxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO29CQU94QyxZQUFZLFNBQUMseUJBQXlCOzBCQU90QyxLQUFLO3FCQUdMLEtBQUs7aUNBYUwsWUFBWSxTQUFDLGVBQWU7NEJBVTVCLFlBQVksU0FBQyxXQUFXOzRCQUt4QixZQUFZLFNBQUMsWUFBWTt1QkFrQnpCLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudCc7XG5pbXBvcnQge1Byb2R1Y3RDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtQcm9kdWN0RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ljb25FbnVtfSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge0RvY3VtZW50Q29udGVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZG9jdW1lbnQtY29udGVudCc7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVZpZXdNb2RlbCB7XG4gIHB1YmxpYyBpbWFnZTogQ29Eb2N1bWVudCB8IHN0cmluZztcbiAgcHVibGljIHNvdXJjZTogU2FmZVVybDtcbiAgcHVibGljIG9yaWdpbmFsU291cmNlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pbWFnZS1jYXJvdXNlbCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IGlkPVwicHJvZHVjdF9wYWdlX2Nhcm91c2VsXCI+XG4gICAgICAgICAgPGRpdiBpZD1cInByb2R1Y3RfcGFnZV9jYXJvdXNlbF9pdGVtc1wiPlxuICAgICAgICAgICAgICA8Y28tbG9hZGVyIFtpc1Nob3duXT1cInRydWVcIiAqbmdJZj1cInNob3dMb2FkZXJcIj48L2NvLWxvYWRlcj5cbiAgICAgICAgICAgICAgPGRpdiAjY2Fyb3VzZWwgY2xhc3M9XCJpbm5lci1jYXJvdXNlbFwiPlxuICAgICAgICAgICAgICAgICAgPCEtLSBUaGlzIGhhcyBiZWVuIHRha2VuIG91dCBvZiB0aGUgZm9yIGxvb3AgdG8gcHJldmVudCBmbGFzaGluZyBpbWFnZXMgd2hlbiB1cGRhdGluZy4gLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW1hZ2VWaWV3TW9kZWxzWzBdXCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCIgW2lkXT1cIidzbGlkZS0wJ1wiIFtjbGFzcy5hY3RpdmVdPVwiaXNDdXJyZW50SW5kZXgoMClcIiAoY2xpY2spPVwiaGFuZGxlU2hvd0ltYWdlKGltYWdlVmlld01vZGVsc1swXSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VWaWV3TW9kZWxzWzBdLnNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZVZpZXdNb2RlbCBvZiBpbWFnZVZpZXdNb2RlbHMuc2xpY2UoMSk7IGxldCBpbmRleCA9IGluZGV4XCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidzbGlkZS0nICsgKGluZGV4ICsgMSlcIiBbY2xhc3MuYWN0aXZlXT1cImlzQ3VycmVudEluZGV4KChpbmRleCArIDEpKVwiIChjbGljayk9XCJoYW5kbGVTaG93SW1hZ2UoaW1hZ2VWaWV3TW9kZWwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVmlld01vZGVsLnNvdXJjZVwiPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtc2Nyb2xsZXItbGF5ZXJcIiAqbmdJZj1cImltYWdlVmlld01vZGVscyAmJiBpbWFnZVZpZXdNb2RlbHMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1pdGVtLXNjcm9sbGVyIHByZXZcIiAoY2xpY2spPVwiZ290b1ByZXZTbGlkZSgpXCIgKm5nSWY9XCJjdXJyZW50SW5kZXggPiAwXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW0tc2Nyb2xsZXIgbmV4dFwiIChjbGljayk9XCJnb3RvTmV4dFNsaWRlKClcIiAqbmdJZj1cImN1cnJlbnRJbmRleCA8IGltYWdlcy5sZW5ndGggLSAxXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInNlbGVjdG9yLXR5cGUtaWNvbiByZWZyZXNoLWJ1dHRvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGUuZ2V0SWNvbihpY29ucy5SZWZyZXNoKVwiIChjbGljayk9XCJvbkZvcmNlUmVuZGVySW1hZ2UoKVwiIFtjbGFzcy5sb2FkaW5nXT1cInNob3dMb2FkZXJcIiAqbmdJZj1cInNob3dSZWZyZXNoXCI+PC9jby1pY29uPlxuICAgICAgICAgICAgICAtLT5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgaWQ9XCJwcm9kdWN0X3BhZ2VfY2Fyb3VzZWxfdGh1bWJzXCI+XG4gICAgICAgICAgICAgIDxjby1zY3JvbGwtY29udGFpbmVyIGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiICpuZ0lmPVwiaW1hZ2VWaWV3TW9kZWxzICYmIGltYWdlVmlld01vZGVscy5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpbWFnZVZpZXdNb2RlbCBvZiBpbWFnZVZpZXdNb2RlbHM7IGxldCBpbmRleCA9IGluZGV4XCIgY2xhc3M9XCJjYXJvdXNlbC10aHVtYlwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaW5kZXggPT09IGN1cnJlbnRJbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZVZpZXdNb2RlbC5zb3VyY2VcIiAoY2xpY2spPVwiaGFuZGxlVGh1bWJDbGljayhpbmRleClcIi8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9jby1zY3JvbGwtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE1vZGFsIChyZWFsIHBvcHVwKSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpbWFnZS1tb2RhbFwiXG4gICAgICAgICpuZ0lmPVwiaXNQb3B1cE9wZW5cIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3B1cCgpXCJcbiAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkltYWdlIHByZXZpZXdcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtbW9kYWxfX2NvbnRlbnRcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJpbWFnZS1tb2RhbF9fY2xvc2VcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUG9wdXAoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgw5dcbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxpbWcgW3NyY109XCJzZWxlY3RlZEltYWdlPy5vcmlnaW5hbFNvdXJjZVwiIGFsdD1cIkltYWdlIHByZXZpZXdcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gIHB1YmxpYyBjYXJvdXNlbDogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgaXNQb3B1cE9wZW4gPSBmYWxzZTtcbiAgcHVibGljIHNlbGVjdGVkSW1hZ2U/OiBJbWFnZVZpZXdNb2RlbDtcblxuICAvLyBDbG9zZSBvbiBFU0NcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBvbkVzYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1BvcHVwT3Blbikge1xuICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSZWZyZXNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbWFnZXModmFsdWU6IChDb0RvY3VtZW50IHwgc3RyaW5nKVtdKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2ltYWdlcyA9IHRoaXMuX2ZpbHRlclZhbGlkSW1hZ2VzKHZhbHVlKTtcbiAgICAgIHRoaXMuX2xvYWRBbmRSZXNjYWxlSW1hZ2VzKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbWFnZXMoKTogKENvRG9jdW1lbnQgfCBzdHJpbmcpW10ge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZXM7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcHVibGljIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9zY3JvbGxDYXJvdXNlbFRvSW5kZXgoKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplVGltZXIpO1xuICAgIHRoaXMuX3Jlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3N3aXBlbGVmdCcpXG4gIHB1YmxpYyBnb3RvTmV4dFNsaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdzd2lwZXJpZ2h0JylcbiAgcHVibGljIGdvdG9QcmV2U2xpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgfVxuXG4gIHB1YmxpYyBpc0N1cnJlbnRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEluZGV4ID09PSBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLl9zY3JvbGxDYXJvdXNlbFRvSW5kZXgoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVzaXppbmcnKVxuICBwdWJsaWMgcmVzaXppbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgaW1hZ2VWaWV3TW9kZWxzOiBJbWFnZVZpZXdNb2RlbFtdID0gW107XG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcmVzaXplVGltZXI6IGFueTtcbiAgcHJpdmF0ZSBfY3VycmVudEluZGV4ID0gMDtcbiAgcHJpdmF0ZSBfaW1hZ2VzOiAoQ29Eb2N1bWVudCB8IHN0cmluZylbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZUNhbnZhc0hlaWdodDogbnVtYmVyID0gNTAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2lvbmU6IFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FwcEV2ZW50U2VydmljZTogUHJvZHVjdEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7XG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLm9uUmVuZGVyU3RhcnRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSwgMTAwMDApO1xuICAgICAgfSksXG4gICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25EcmFmdFJlbmRlckltYWdlUmVjZWl2ZWQuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRldGFpbCkge1xuICAgICAgICAgIGlmICh0aGlzLl9pbWFnZXNbMF0gaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9pbWFnZXMudW5zaGlmdChldmVudC5kZXRhaWwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbWFnZXNbMF0gPSBldmVudC5kZXRhaWw7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2xvYWRBbmRSZXNjYWxlSW1hZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2Fyb3VzZWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVUaHVtYkNsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgcHVibGljIG9uRm9yY2VSZW5kZXJJbWFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25Gb3JjZVJlbmRlckltYWdlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaG93SW1hZ2UoaW1hZ2VWaWV3TW9kZWw6IEltYWdlVmlld01vZGVsKTogdm9pZCB7XG4gICAgaWYgKGltYWdlVmlld01vZGVsICYmIGltYWdlVmlld01vZGVsLm9yaWdpbmFsU291cmNlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSBpbWFnZVZpZXdNb2RlbDtcbiAgICAgIHRoaXMuaXNQb3B1cE9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlUG9wdXAoKTogdm9pZCB7XG4gICAgdGhpcy5pc1BvcHVwT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRJbWFnZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlclZhbGlkSW1hZ2VzKHZhbHVlOiAoQ29Eb2N1bWVudCB8IHN0cmluZylbXSk6IChDb0RvY3VtZW50IHwgc3RyaW5nKVtdIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5maWx0ZXIoKGRvYzogQ29Eb2N1bWVudCB8IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGF0dGVybiA9IC9cXC4oanBnfGpwZWd8cG5nfGdpZnxibXB8dGlmZnx3ZWJwKSQvaTtcbiAgICAgIHJldHVybiB0eXBlb2YgZG9jID09PSAnc3RyaW5nJyB8fCAocGF0dGVybi50ZXN0KGRvYy5maWxlTmFtZSkgfHwgISFkb2MuZmlsZVBhdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZEFuZFJlc2NhbGVJbWFnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZVZpZXdNb2RlbHMubGVuZ3RoID0gMDtcbiAgICBpZiAodGhpcy5faW1hZ2VzKSB7XG4gICAgICB0aGlzLl9pbWFnZXMuZm9yRWFjaCgoaTogQ29Eb2N1bWVudCB8IHN0cmluZykgPT4ge1xuICAgICAgICBsZXQgaW1hZ2VWaWV3TW9kZWwgPSBuZXcgSW1hZ2VWaWV3TW9kZWwoKTtcbiAgICAgICAgaW1hZ2VWaWV3TW9kZWwuaW1hZ2UgPSBpO1xuICAgICAgICBpZiAodHlwZW9mIGkgPT09ICdzdHJpbmcnKSB7IC8vIGlzIGEgcmVuZGVyZWQgaW1hZ2UgY29taW5nIGZyb20gY29uZmlndXJhdG9yXG4gICAgICAgICAgdGhpcy5fcmVzaXplQW5kU2FuaXRpemVTb3VyY2UoaSwgaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpLmZpbGVQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShpLmZpbGVQYXRoLCBpbWFnZVZpZXdNb2RlbCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpLmRvY3VtZW50Qm9keSkge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplQW5kU2FuaXRpemVTb3VyY2UoaS5kb2N1bWVudEJvZHlBc0RhdGFVcmksIGltYWdlVmlld01vZGVsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW9uZS5nZXREb2N1bWVudENvbnRlbnQoaS5kb2N1bWVudElkLCBmYWxzZSkudGhlbigoY29udGVudDogRG9jdW1lbnRDb250ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICAgICAgaS5kb2N1bWVudEJvZHkgPSBjb250ZW50LmRvY3VtZW50Q29udGVudDtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShpLmRvY3VtZW50Qm9keUFzRGF0YVVyaSwgaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW1hZ2VWaWV3TW9kZWxzLnB1c2goaW1hZ2VWaWV3TW9kZWwpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNpemVBbmRTYW5pdGl6ZVNvdXJjZShzb3VyY2U6IHN0cmluZywgaW1hZ2VWaWV3TW9kZWw6IEltYWdlVmlld01vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgcmVzaXplQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGN0eCA9IHJlc2l6ZUNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgICBjb25zdCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICBpbWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcblxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgIGN0eC5pbWFnZVNtb290aGluZ1F1YWxpdHkgPSAnaGlnaCc7XG5cbiAgICAgIGNvbnN0IG93ID0gaW1nLndpZHRoO1xuICAgICAgY29uc3Qgb2ggPSBpbWcuaGVpZ2h0O1xuICAgICAgY29uc3QgYXNwZWN0ID0gb3cgLyBvaDtcblxuICAgICAgbGV0IG5ld1cgPSB0aGlzLl9yZXNpemVDYW52YXNIZWlnaHQ7XG4gICAgICBsZXQgbmV3SCA9IHRoaXMuX3Jlc2l6ZUNhbnZhc0hlaWdodDtcbiAgICAgIGlmIChvdyA+IG9oKSB7XG4gICAgICAgIG5ld0ggPSB0aGlzLl9yZXNpemVDYW52YXNIZWlnaHQgLyBhc3BlY3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdXID0gdGhpcy5fcmVzaXplQ2FudmFzSGVpZ2h0ICogYXNwZWN0O1xuICAgICAgfVxuXG4gICAgICByZXNpemVDYW52YXMud2lkdGggPSBNYXRoLnJvdW5kKG5ld1cpO1xuICAgICAgcmVzaXplQ2FudmFzLmhlaWdodCA9IE1hdGgucm91bmQobmV3SCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGJlZm9yZSBkcmF3aW5nXG4gICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHJlc2l6ZUNhbnZhcy53aWR0aCwgcmVzaXplQ2FudmFzLmhlaWdodCk7XG5cbiAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCByZXNpemVDYW52YXMud2lkdGgsIHJlc2l6ZUNhbnZhcy5oZWlnaHQpO1xuXG4gICAgICBjb25zdCBtaW1lID0gdGhpcy5fZGV0ZWN0UHJlZmVycmVkTWltZShzb3VyY2UpO1xuICAgICAgY29uc3QgcmVzaXplZFNvdXJjZSA9XG4gICAgICAgIG1pbWUgPT09ICdpbWFnZS9qcGVnJ1xuICAgICAgICAgID8gcmVzaXplQ2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOTIpIC8vIG9ubHkgaWYgb3JpZ2luYWwgd2FzIEpQRUdcbiAgICAgICAgICA6IHJlc2l6ZUNhbnZhcy50b0RhdGFVUkwobWltZSk7ICAgICAgICAgICAgICAvLyBQTkcvV2ViUCBrZWVwIGFscGhhXG5cbiAgICAgIGltYWdlVmlld01vZGVsLnNvdXJjZSA9IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHJlc2l6ZWRTb3VyY2UpO1xuICAgICAgaW1hZ2VWaWV3TW9kZWwub3JpZ2luYWxTb3VyY2UgPSBzb3VyY2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcblxuICAgIGltZy5zcmMgPSBzb3VyY2U7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RQcmVmZXJyZWRNaW1lKHNvdXJjZTogc3RyaW5nKTogJ2ltYWdlL3BuZycgfCAnaW1hZ2Uvd2VicCcgfCAnaW1hZ2UvanBlZycge1xuICAgIC8vIERhdGEgVVJJIGNoZWNrXG4gICAgY29uc3QgbSA9IHNvdXJjZS5tYXRjaCgvXmRhdGE6KGltYWdlXFwvW2EtekEtWisuLV0rKTtiYXNlNjQsLyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIGNvbnN0IHQgPSBtWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodCA9PT0gJ2ltYWdlL3BuZycgfHwgdCA9PT0gJ2ltYWdlL3dlYnAnIHx8IHQgPT09ICdpbWFnZS9qcGVnJykgcmV0dXJuIHQgYXMgYW55O1xuICAgIH1cblxuICAgIGNvbnN0IGxvd2VyID0gc291cmNlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyLmVuZHNXaXRoKCcucG5nJykpIHJldHVybiAnaW1hZ2UvcG5nJztcbiAgICBpZiAobG93ZXIuZW5kc1dpdGgoJy53ZWJwJykpIHJldHVybiAnaW1hZ2Uvd2VicCc7XG4gICAgaWYgKGxvd2VyLmVuZHNXaXRoKCcuanBnJykgfHwgbG93ZXIuZW5kc1dpdGgoJy5qcGVnJykpIHJldHVybiAnaW1hZ2UvanBlZyc7XG5cbiAgICByZXR1cm4gJ2ltYWdlL3BuZyc7XG4gIH1cblxuICBwcml2YXRlIF9zY3JvbGxDYXJvdXNlbFRvSW5kZXgoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gLTEgJiYgdGhpcy5jdXJyZW50SW5kZXggPD0gdGhpcy5pbWFnZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBtb3ZlUHg6IG51bWJlciA9IHRoaXMuY3VycmVudEluZGV4ICogdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgaWYgKHRoaXMuY2Fyb3VzZWwgJiYgdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gbW92ZVB4O1xuICAgICAgICAvLyB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICAvLyAgIGxlZnQ6IG1vdmVQeCxcbiAgICAgICAgLy8gICBiZWhhdmlvcjogJ3Ntb290aCdcbiAgICAgICAgLy8gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -6,12 +6,14 @@ import { ProductConnectorService } from '../../service/product-connector.service
|
|
|
6
6
|
import { ProductEventService } from '../../service/product-event.service';
|
|
7
7
|
import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
|
|
8
8
|
import { ProductSettingsService } from '../../service/product-settings.service';
|
|
9
|
+
import { ProductConnectorAdapterService } from '../../service/product-connector-adapter.service';
|
|
9
10
|
export class ProductAddtocartComponent {
|
|
10
|
-
constructor(iconCache, _ioneControllerService, _appEventService, _settingsService) {
|
|
11
|
+
constructor(iconCache, _ioneControllerService, _appEventService, _settingsService, _productConnectorAdapterService) {
|
|
11
12
|
this.iconCache = iconCache;
|
|
12
13
|
this._ioneControllerService = _ioneControllerService;
|
|
13
14
|
this._appEventService = _appEventService;
|
|
14
15
|
this._settingsService = _settingsService;
|
|
16
|
+
this._productConnectorAdapterService = _productConnectorAdapterService;
|
|
15
17
|
this.icon = IconEnum;
|
|
16
18
|
this.createFrozenArticle = true;
|
|
17
19
|
this.configurable = false;
|
|
@@ -51,9 +53,14 @@ export class ProductAddtocartComponent {
|
|
|
51
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
54
|
if (this.createFrozenArticle) {
|
|
53
55
|
if (this.article.goodType === 'B') {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
if (this.article.isConfigurable) {
|
|
57
|
+
const article = yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity });
|
|
58
|
+
if (article) {
|
|
59
|
+
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
yield this._handleGeneratedArticleDirectly(quantity);
|
|
57
64
|
}
|
|
58
65
|
}
|
|
59
66
|
else {
|
|
@@ -70,8 +77,15 @@ export class ProductAddtocartComponent {
|
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
79
|
else {
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
if (this.article.goodType === 'B') {
|
|
81
|
+
if (!this.article.isConfigurable) {
|
|
82
|
+
yield this._handleGeneratedArticleDirectly(quantity);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
|
|
87
|
+
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
88
|
+
}
|
|
75
89
|
}
|
|
76
90
|
});
|
|
77
91
|
}
|
|
@@ -80,6 +94,21 @@ export class ProductAddtocartComponent {
|
|
|
80
94
|
this._appEventService.onAddToQuote.next(yield this._getJSONFromArticleObject({ article: this.article, quantity: quantity }));
|
|
81
95
|
});
|
|
82
96
|
}
|
|
97
|
+
_handleGeneratedArticleDirectly(quantity) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const generatedGoodId = yield this._getGeneratedArtDirectly(this.article.goodId);
|
|
100
|
+
if (generatedGoodId) {
|
|
101
|
+
const articleFull = yield this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true);
|
|
102
|
+
const article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
|
|
103
|
+
this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
_getGeneratedArtDirectly(goodId) {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
return yield this._ioneControllerService.getGeneratedArtDirectly(goodId, true);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
83
112
|
_getJSONFromArticleObject(article) {
|
|
84
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
114
|
const configuratorStatistics = new ConfiguratorStatisticsEnvironment();
|
|
@@ -134,7 +163,8 @@ ProductAddtocartComponent.ctorParameters = () => [
|
|
|
134
163
|
{ type: IconCacheService },
|
|
135
164
|
{ type: ProductConnectorService },
|
|
136
165
|
{ type: ProductEventService },
|
|
137
|
-
{ type: ProductSettingsService }
|
|
166
|
+
{ type: ProductSettingsService },
|
|
167
|
+
{ type: ProductConnectorAdapterService }
|
|
138
168
|
];
|
|
139
169
|
ProductAddtocartComponent.propDecorators = {
|
|
140
170
|
addToCartButton: [{ type: ViewChild, args: ['addtocartbutton', { read: ElementRef },] }],
|
|
@@ -152,4 +182,4 @@ ProductAddtocartComponent.propDecorators = {
|
|
|
152
182
|
addToQuoteClick: [{ type: Output }],
|
|
153
183
|
showRelatedPopup: [{ type: Output }]
|
|
154
184
|
};
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hZGR0b2NhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3QtYWRkdG9jYXJ0L3Byb2R1Y3QtYWRkdG9jYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBd0M5RSxNQUFNLE9BQU8seUJBQXlCO0lBaUVwQyxZQUNTLFNBQTJCLEVBQzFCLHNCQUErQyxFQUMvQyxnQkFBcUMsRUFDckMsZ0JBQXdDO1FBSHpDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBeUI7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBbkVsQyxTQUFJLEdBQW9CLFFBQVEsQ0FBQztRQVkxQyx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFHcEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7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QkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7c0JBR2pELEtBQUs7NkJBR0wsS0FBSztrQ0FHTCxLQUFLOzJCQUdMLEtBQUs7MEJBR0wsS0FBSzs0QkFHTCxLQUFLO3VCQUdMLEtBQUs7eUJBR0wsV0FBVyxTQUFDLG1CQUFtQixjQUMvQixLQUFLO3VCQUdMLEtBQUs7aUNBaUJMLE1BQU07NkJBR04sTUFBTTs4QkFHTixNQUFNOytCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25DYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcbmltcG9ydCB7IEFydGljbGVRdWFudGl0eSB9IGZyb20gJy4uLy4uL21vZGVsL2FydGljbGUtcXVhbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdEV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFydGljbGVGdWxsT2JqZWN0IH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mdWxsLW9iamVjdCc7XG5pbXBvcnQge0NvbmZpZ3VyYXRvclN0YXRpc3RpY3NFbnZpcm9ubWVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvY29uZmlndXJhdG9yLXN0YXRpc3RpY3MtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHtQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3Qtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0FydGljbGVMaXN0T2JqZWN0RXh0ZW5kZWR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtbGlzdC1vYmplY3QtZXh0ZW5kZWQuYm8nO1xuaW1wb3J0IHtFeHRlcm5hbFNvdXJjZX0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtc291cmNlLmJvJztcbmltcG9ydCB7UHJvZHVjdENvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWFkZHRvY2FydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF0Yy13cmFwcGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSZXR1cm5cIj5cbiAgICAgICAgPGNvLW51bWJlci1waWNrZXIgKm5nSWY9XCIhY29uZmlndXJhYmxlICYmICFjb25maWd1cmluZ1wiIGNsYXNzPVwicXVhbnRpdHktc2VsZWN0XCIgWyhtb2RlbCldPVwicXVhbnRpdHlcIiBbbWluXT1cIi0xMDBcIiBob3Jpem9udGFsPjwvY28tbnVtYmVyLXBpY2tlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmV0dXJuXCI+XG4gICAgICAgIDxjby1udW1iZXItcGlja2VyICpuZ0lmPVwiIWNvbmZpZ3VyYWJsZSAmJiAhY29uZmlndXJpbmdcIiBjbGFzcz1cInF1YW50aXR5LXNlbGVjdFwiIFsobW9kZWwpXT1cInF1YW50aXR5XCIgW21pbl09XCIxXCIgaG9yaXpvbnRhbD48L2NvLW51bWJlci1waWNrZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCIgKm5nSWY9XCJjb25maWd1cmFibGVcIj5cbiAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNvbmZpZ3VyZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGUuZ2V0SWNvbihpY29uLk1hZ2ljV2FuZClcIlxuICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ09ORklHVVJFJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzdGFydENvbmZpZ3VyYXRpb24uZW1pdCgpXCJcbiAgICAgICAgPjwvY28tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXdyYXBwZXJcIiAqbmdJZj1cInNob3dBZGRUb0NhcnQgJiYgIWNvbmZpZ3VyYWJsZVwiPlxuICAgICAgICA8Y28tYnV0dG9uICNhZGR0b2NhcnRidXR0b24gY2xhc3M9XCJjYXJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZS5nZXRJY29uKGljb24uQWRkVG9DYXJ0RHJvcClcIlxuICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU0hPUFBJTkdfQ0FSVF9JTicgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkVG9DYXJ0Q2xpY2socXVhbnRpdHkpXCJcbiAgICAgICAgPjwvY28tYnV0dG9uPlxuICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2FydC1idXR0b24gcXVvdGVcIiAqbmdJZj1cInNob3dRdW90ZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZS5nZXRJY29uKGljb24uUXVvdGUpXCJcbiAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1FVT1RBVElPTicgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkVG9RdW90ZUNsaWNrKHF1YW50aXR5KVwiXG4gICAgICAgID48L2NvLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWFkZHRvY2FydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RBZGR0b2NhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGljb246IHR5cGVvZiBJY29uRW51bSA9IEljb25FbnVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2FkZHRvY2FydGJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgYWRkVG9DYXJ0QnV0dG9uOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcnRpY2xlOiBBcnRpY2xlRnVsbE9iamVjdDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZXh0ZXJuYWxTb3VyY2U6IEV4dGVybmFsU291cmNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjcmVhdGVGcm96ZW5BcnRpY2xlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlndXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpZ3VyaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dBZGRUb0NhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNSZXR1cm46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZ1bGwtc2NyZWVuJylcbiAgQElucHV0KClcbiAgcHVibGljIGZ1bGxzY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHF1YW50aXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc1JldHVybikge1xuICAgICAgaWYgKHRoaXMuX3F1YW50aXR5ID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3F1YW50aXR5ID0gLTE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9xdWFudGl0eSA9IHZhbHVlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3F1YW50aXR5ID0gTWF0aC5tYXgoMSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVhbnRpdHkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcXVhbnRpdHk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHN0YXJ0Q29uZmlndXJhdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWRkVG9DYXJ0Q2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhZGRUb1F1b3RlQ2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzaG93UmVsYXRlZFBvcHVwOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBwdWJsaWMgc2hvd1F1b3RlQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcXVhbnRpdHkgPSAxO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpY29uQ2FjaGU6IEljb25DYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfaW9uZUNvbnRyb2xsZXJTZXJ2aWNlOiBQcm9kdWN0Q29ubmVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIF9hcHBFdmVudFNlcnZpY2U6IFByb2R1Y3RFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlXG4gICAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkVG9DYXJ0QnV0dG9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUFkZFRvQ2FydENsaWNrKHF1YW50aXR5OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jcmVhdGVGcm96ZW5BcnRpY2xlKSB7XG4gICAgICBpZiAodGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQicpIHtcbiAgICAgICAgY29uc3QgYXJ0aWNsZSA9IGF3YWl0IHRoaXMuX2dldEpTT05Gcm9tQXJ0aWNsZU9iamVjdCh7YXJ0aWNsZTogdGhpcy5hcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHl9KTtcbiAgICAgICAgaWYgKGFydGljbGUpIHtcbiAgICAgICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25BZGRUb0NhcnQubmV4dCh7YXJ0aWNsZTogYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5fSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBhcnRpY2xlOiBBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkIHwgc3RyaW5nO1xuICAgICAgICBpZiAoISF0aGlzLmV4dGVybmFsU291cmNlKSB7XG4gICAgICAgICAgYXJ0aWNsZSA9IGF3YWl0IHRoaXMuX2dldEpTT05Gcm9tQXJ0aWNsZU9iamVjdCh7YXJ0aWNsZTogdGhpcy5hcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHl9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcnRpY2xlID0gdGhpcy5faW9uZUNvbnRyb2xsZXJTZXJ2aWNlLmNvbnZlcnRBcnRpY2xlRnVsbE9iamVjdFRvQXJ0aWNsZUV4dGVuZGVkKHRoaXMuYXJ0aWNsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFydGljbGUpIHtcbiAgICAgICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25BZGRUb0NhcnQubmV4dCh7YXJ0aWNsZTogYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXJ0aWNsZTogQXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZCA9IHRoaXMuX2lvbmVDb250cm9sbGVyU2VydmljZS5jb252ZXJ0QXJ0aWNsZUZ1bGxPYmplY3RUb0FydGljbGVFeHRlbmRlZCh0aGlzLmFydGljbGUpO1xuICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLm9uQWRkVG9DYXJ0Lm5leHQoeyBhcnRpY2xlOiBhcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHkgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUFkZFRvUXVvdGVDbGljayhxdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLm9uQWRkVG9RdW90ZS5uZXh0KGF3YWl0IHRoaXMuX2dldEpTT05Gcm9tQXJ0aWNsZU9iamVjdCh7YXJ0aWNsZTogdGhpcy5hcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHl9KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9nZXRKU09ORnJvbUFydGljbGVPYmplY3QoYXJ0aWNsZTogQXJ0aWNsZVF1YW50aXR5KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjb25maWd1cmF0b3JTdGF0aXN0aWNzID0gbmV3IENvbmZpZ3VyYXRvclN0YXRpc3RpY3NFbnZpcm9ubWVudCgpO1xuICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3MudXNlclR5cGUgPSAnaU9uZVByb2R1Y3RQYWdlJztcbiAgICBjb25maWd1cmF0b3JTdGF0aXN0aWNzLnRyYW5zYWN0aW9uVHlwZSA9ICdTYWxlcyc7XG4gICAgY29uZmlndXJhdG9yU3RhdGlzdGljcy5hY3Rpb25Eb21haW4gPSAnYnVuZGxlJztcbiAgICBjb25maWd1cmF0b3JTdGF0aXN0aWNzLnNlc3Npb25JZCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zZXNzaW9uID8gdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlc3Npb24uc2Vzc2lvbklkIDogJ3Vua25vd24nO1xuICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3Mud2ViSG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3MuYnVuZGxlSG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9pb25lQ29udHJvbGxlclNlcnZpY2UuZ2V0SnNvbkFydGljbGVGbGF0VHJlZShcbiAgICAgICAgYXJ0aWNsZS5hcnRpY2xlLmdvb2RJZCwgYXJ0aWNsZS5hcnRpY2xlLmdvb2RUeXBlLCBhcnRpY2xlLnF1YW50aXR5LCAhIXRoaXMuZXh0ZXJuYWxTb3VyY2UsIHRydWUsIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3MpO1xuICB9XG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hZGR0b2NhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3QtYWRkdG9jYXJ0L3Byb2R1Y3QtYWRkdG9jYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRzlFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBcUMvRixNQUFNLE9BQU8seUJBQXlCO0lBaUVwQyxZQUNTLFNBQTJCLEVBQzFCLHNCQUErQyxFQUMvQyxnQkFBcUMsRUFDckMsZ0JBQXdDLEVBQ3hDLCtCQUErRDtRQUpoRSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXlCO1FBQy9DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFDckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4QyxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWdDO1FBcEV6RCxTQUFJLEdBQW9CLFFBQVEsQ0FBQztRQVkxQyx3QkFBbUIsR0FBWSxJ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QUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO3NCQUdqRCxLQUFLOzZCQUdMLEtBQUs7a0NBR0wsS0FBSzsyQkFHTCxLQUFLOzBCQUdMLEtBQUs7NEJBR0wsS0FBSzt1QkFHTCxLQUFLO3lCQUdMLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSzt1QkFHTCxLQUFLO2lDQWlCTCxNQUFNOzZCQUdOLE1BQU07OEJBR04sTUFBTTsrQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNvbkVudW0gfSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQgeyBBcnRpY2xlUXVhbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbC9hcnRpY2xlLXF1YW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LWNvbm5lY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3RFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcnRpY2xlRnVsbE9iamVjdCB9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3QnO1xuaW1wb3J0IHtDb25maWd1cmF0b3JTdGF0aXN0aWNzRW52aXJvbm1lbnR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2NvbmZpZ3VyYXRvci1zdGF0aXN0aWNzLWVudmlyb25tZW50JztcbmltcG9ydCB7UHJvZHVjdFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHtBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWxpc3Qtb2JqZWN0LWV4dGVuZGVkLmJvJztcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2V9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLXNvdXJjZS5ibyc7XG5pbXBvcnQge1Byb2R1Y3RDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1hZGR0b2NhcnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJhdGMtd3JhcHBlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmV0dXJuXCI+XG4gICAgICAgIDxjby1udW1iZXItcGlja2VyICpuZ0lmPVwiIWNvbmZpZ3VyYWJsZSAmJiAhY29uZmlndXJpbmdcIiBjbGFzcz1cInF1YW50aXR5LXNlbGVjdFwiIFsobW9kZWwpXT1cInF1YW50aXR5XCIgW21pbl09XCItMTAwXCIgaG9yaXpvbnRhbD48L2NvLW51bWJlci1waWNrZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1JldHVyblwiPlxuICAgICAgICA8Y28tbnVtYmVyLXBpY2tlciAqbmdJZj1cIiFjb25maWd1cmFibGUgJiYgIWNvbmZpZ3VyaW5nXCIgY2xhc3M9XCJxdWFudGl0eS1zZWxlY3RcIiBbKG1vZGVsKV09XCJxdWFudGl0eVwiIFttaW5dPVwiMVwiIGhvcml6b250YWw+PC9jby1udW1iZXItcGlja2VyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlclwiICpuZ0lmPVwiY29uZmlndXJhYmxlXCI+XG4gICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjb25maWd1cmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlLmdldEljb24oaWNvbi5NYWdpY1dhbmQpXCJcbiAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NPTkZJR1VSRScgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic3RhcnRDb25maWd1cmF0aW9uLmVtaXQoKVwiXG4gICAgICAgID48L2NvLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCIgKm5nSWY9XCJzaG93QWRkVG9DYXJ0ICYmICFjb25maWd1cmFibGVcIj5cbiAgICAgICAgPGNvLWJ1dHRvbiAjYWRkdG9jYXJ0YnV0dG9uIGNsYXNzPVwiY2FydC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGUuZ2V0SWNvbihpY29uLkFkZFRvQ2FydERyb3ApXCJcbiAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NIT1BQSU5HX0NBUlRfSU4nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFkZFRvQ2FydENsaWNrKHF1YW50aXR5KVwiXG4gICAgICAgID48L2NvLWJ1dHRvbj5cbiAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhcnQtYnV0dG9uIHF1b3RlXCIgKm5nSWY9XCJzaG93UXVvdGVCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGUuZ2V0SWNvbihpY29uLlF1b3RlKVwiXG4gICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidRVU9UQVRJT04nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFkZFRvUXVvdGVDbGljayhxdWFudGl0eSlcIlxuICAgICAgICA+PC9jby1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1hZGR0b2NhcnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0QWRkdG9jYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcblxuICBAVmlld0NoaWxkKCdhZGR0b2NhcnRidXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGFkZFRvQ2FydEJ1dHRvbjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3Q7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV4dGVybmFsU291cmNlOiBFeHRlcm5hbFNvdXJjZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY3JlYXRlRnJvemVuQXJ0aWNsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpZ3VyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb25maWd1cmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93QWRkVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsLXNjcmVlbicpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmdWxsc2NyZWVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBxdWFudGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNSZXR1cm4pIHtcbiAgICAgIGlmICh0aGlzLl9xdWFudGl0eSA9PT0gMSkge1xuICAgICAgICB0aGlzLl9xdWFudGl0eSA9IC0xO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcXVhbnRpdHkgPSB2YWx1ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9xdWFudGl0eSA9IE1hdGgubWF4KDEsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1YW50aXR5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3F1YW50aXR5O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdGFydENvbmZpZ3VyYXRpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGFkZFRvQ2FydENsaWNrOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWRkVG9RdW90ZUNsaWNrOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2hvd1JlbGF0ZWRQb3B1cDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgcHVibGljIHNob3dRdW90ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3F1YW50aXR5ID0gMTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWNvbkNhY2hlOiBJY29uQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2lvbmVDb250cm9sbGVyU2VydmljZTogUHJvZHVjdENvbm5lY3RvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfYXBwRXZlbnRTZXJ2aWNlOiBQcm9kdWN0RXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3NldHRpbmdzU2VydmljZTogUHJvZHVjdFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIF9wcm9kdWN0Q29ubmVjdG9yQWRhcHRlclNlcnZpY2U6IFByb2R1Y3RDb25uZWN0b3JBZGFwdGVyU2VydmljZVxuICAgICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFRvQ2FydEJ1dHRvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVBZGRUb0NhcnRDbGljayhxdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY3JlYXRlRnJvemVuQXJ0aWNsZSkge1xuICAgICAgaWYgKHRoaXMuYXJ0aWNsZS5nb29kVHlwZSA9PT0gJ0InKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuYXJ0aWNsZS5pc0NvbmZpZ3VyYWJsZSkge1xuICAgICAgICAgIGNvbnN0IGFydGljbGUgPSBhd2FpdCB0aGlzLl9nZXRKU09ORnJvbUFydGljbGVPYmplY3Qoe2FydGljbGU6IHRoaXMuYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5fSk7XG4gICAgICAgICAgaWYgKGFydGljbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS5vbkFkZFRvQ2FydC5uZXh0KHthcnRpY2xlOiBhcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHl9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5faGFuZGxlR2VuZXJhdGVkQXJ0aWNsZURpcmVjdGx5KHF1YW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGFydGljbGU6IEFydGljbGVMaXN0T2JqZWN0RXh0ZW5kZWQgfCBzdHJpbmc7XG4gICAgICAgIGlmICghIXRoaXMuZXh0ZXJuYWxTb3VyY2UpIHtcbiAgICAgICAgICBhcnRpY2xlID0gYXdhaXQgdGhpcy5fZ2V0SlNPTkZyb21BcnRpY2xlT2JqZWN0KHthcnRpY2xlOiB0aGlzLmFydGljbGUsIHF1YW50aXR5OiBxdWFudGl0eX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFydGljbGUgPSB0aGlzLl9pb25lQ29udHJvbGxlclNlcnZpY2UuY29udmVydEFydGljbGVGdWxsT2JqZWN0VG9BcnRpY2xlRXh0ZW5kZWQodGhpcy5hcnRpY2xlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXJ0aWNsZSkge1xuICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS5vbkFkZFRvQ2FydC5uZXh0KHthcnRpY2xlOiBhcnRpY2xlLCBxdWFudGl0eTogcXVhbnRpdHl9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQicpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFydGljbGUuaXNDb25maWd1cmFibGUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLl9oYW5kbGVHZW5lcmF0ZWRBcnRpY2xlRGlyZWN0bHkocXVhbnRpdHkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhcnRpY2xlOiBBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkID0gdGhpcy5faW9uZUNvbnRyb2xsZXJTZXJ2aWNlLmNvbnZlcnRBcnRpY2xlRnVsbE9iamVjdFRvQXJ0aWNsZUV4dGVuZGVkKHRoaXMuYXJ0aWNsZSk7XG4gICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS5vbkFkZFRvQ2FydC5uZXh0KHsgYXJ0aWNsZTogYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVBZGRUb1F1b3RlQ2xpY2socXVhbnRpdHk6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS5vbkFkZFRvUXVvdGUubmV4dChhd2FpdCB0aGlzLl9nZXRKU09ORnJvbUFydGljbGVPYmplY3Qoe2FydGljbGU6IHRoaXMuYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5fSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlR2VuZXJhdGVkQXJ0aWNsZURpcmVjdGx5KHF1YW50aXR5OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBnZW5lcmF0ZWRHb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuX2dldEdlbmVyYXRlZEFydERpcmVjdGx5KHRoaXMuYXJ0aWNsZS5nb29kSWQpO1xuICAgIGlmIChnZW5lcmF0ZWRHb29kSWQpIHtcbiAgICAgIGNvbnN0IGFydGljbGVGdWxsOiBBcnRpY2xlRnVsbE9iamVjdCA9IGF3YWl0IHRoaXMuX3Byb2R1Y3RDb25uZWN0b3JBZGFwdGVyU2VydmljZS5nZXRBcnRpY2xlRnVsbE9iamVjdChnZW5lcmF0ZWRHb29kSWQsIHRydWUpO1xuICAgICAgY29uc3QgYXJ0aWNsZTogQXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZCA9IHRoaXMuX2lvbmVDb250cm9sbGVyU2VydmljZS5jb252ZXJ0QXJ0aWNsZUZ1bGxPYmplY3RUb0FydGljbGVFeHRlbmRlZChhcnRpY2xlRnVsbCk7XG4gICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25BZGRUb0NhcnQubmV4dCh7YXJ0aWNsZTogYXJ0aWNsZSwgcXVhbnRpdHk6IHF1YW50aXR5fSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0R2VuZXJhdGVkQXJ0RGlyZWN0bHkoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9pb25lQ29udHJvbGxlclNlcnZpY2UuZ2V0R2VuZXJhdGVkQXJ0RGlyZWN0bHkoZ29vZElkLCB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2dldEpTT05Gcm9tQXJ0aWNsZU9iamVjdChhcnRpY2xlOiBBcnRpY2xlUXVhbnRpdHkpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRvclN0YXRpc3RpY3MgPSBuZXcgQ29uZmlndXJhdG9yU3RhdGlzdGljc0Vudmlyb25tZW50KCk7XG4gICAgY29uZmlndXJhdG9yU3RhdGlzdGljcy51c2VyVHlwZSA9ICdpT25lUHJvZHVjdFBhZ2UnO1xuICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3MudHJhbnNhY3Rpb25UeXBlID0gJ1NhbGVzJztcbiAgICBjb25maWd1cmF0b3JTdGF0aXN0aWNzLmFjdGlvbkRvbWFpbiA9ICdidW5kbGUnO1xuICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3Muc2Vzc2lvbklkID0gdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlc3Npb24gPyB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2Vzc2lvbi5zZXNzaW9uSWQgOiAndW5rbm93bic7XG4gICAgY29uZmlndXJhdG9yU3RhdGlzdGljcy53ZWJIb3N0ID0gd2luZG93LmxvY2F0aW9uLmhvc3Q7XG4gICAgY29uZmlndXJhdG9yU3RhdGlzdGljcy5idW5kbGVIb3N0ID0gd2luZG93LmxvY2F0aW9uLmhvc3Q7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2lvbmVDb250cm9sbGVyU2VydmljZS5nZXRKc29uQXJ0aWNsZUZsYXRUcmVlKFxuICAgICAgICBhcnRpY2xlLmFydGljbGUuZ29vZElkLCBhcnRpY2xlLmFydGljbGUuZ29vZFR5cGUsIGFydGljbGUucXVhbnRpdHksICEhdGhpcy5leHRlcm5hbFNvdXJjZSwgdHJ1ZSwgY29uZmlndXJhdG9yU3RhdGlzdGljcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -26,7 +26,7 @@ export class ProductInfoTabsComponent {
|
|
|
26
26
|
this.updateHeight(tabIndex);
|
|
27
27
|
}
|
|
28
28
|
updateHeight(tabIndex) {
|
|
29
|
-
if (this.tabContent.nativeElement.children.length > 0) {
|
|
29
|
+
if (this.tabContent && this.tabContent.nativeElement.children.length > 0) {
|
|
30
30
|
if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
|
|
31
31
|
this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
|
|
32
32
|
}
|
|
@@ -79,4 +79,4 @@ ProductInfoTabsComponent.propDecorators = {
|
|
|
79
79
|
tabContent: [{ type: ViewChild, args: ['tabContent',] }],
|
|
80
80
|
article: [{ type: Input }]
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbmZvLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3Byb2R1Y3QtaW5mby10YWJzL3Byb2R1Y3QtaW5mby10YWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBNkIxRSxNQUFNLE9BQU8sd0JBQXdCO0lBdUJuQyxZQUNVLGdCQUFxQztRQUFyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBckJ4QyxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUs1QixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBYWhCLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBS2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBcEJELElBQ0ksT0FBTyxDQUFDLEtBQXdCO1FBQ2xDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBZUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ3RGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO0lBRUgsQ0FBQzs7O1lBMUZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7O2FBRUY7OztZQTVCUSxtQkFBbUI7Ozt5QkFrQ3pCLFNBQVMsU0FBQyxZQUFZO3NCQU90QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcnRpY2xlRnVsbE9iamVjdCB9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9kdWN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1pbmZvLXRhYnMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWhlYWRlclwiPlxuICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwidGFiLWhlYWRlci1idXR0b25cIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gaVwiIFt0ZXh0Q29udGVudF09XCJ0YWIudGl0bGUgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJ1cGRhdGVUYWIoaSlcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCIgI3RhYkNvbnRlbnQgW3N0eWxlLmhlaWdodC5weF09XCIoYWN0aXZlVGFiSGVpZ2h0ID4gMCA/IGFjdGl2ZVRhYkhlaWdodCA6ICcnKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQtaXRlbVwiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSBpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImkgPT09IDBcIj5cbiAgICAgICAgICAgIDxhcHAtcHJvZHVjdC1hZGRpdGlvbmFsLWluZm8gY2xhc3M9XCJcIiBbYXJ0aWNsZV09XCJhcnRpY2xlT2JqZWN0XCIgW3Nob3dMYWJlbF09XCJmYWxzZVwiPjwvYXBwLXByb2R1Y3QtYWRkaXRpb25hbC1pbmZvPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpID09PSAxXCI+XG4gICAgICAgICAgICA8YXBwLXByb2R1Y3QtcHJvcGVydGllcyBjbGFzcz1cIlwiIFthcnRpY2xlXT1cImFydGljbGVPYmplY3RcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC9hcHAtcHJvZHVjdC1wcm9wZXJ0aWVzPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpID09PSAyXCI+XG4gICAgICAgICAgICA8YXBwLXByb2R1Y3QtZG9jdW1lbnRzIFtzaG93TGFiZWxdPVwiZmFsc2VcIiBjbGFzcz1cIlwiICpuZ0lmPVwiYXJ0aWNsZU9iamVjdD8uZG9jdW1lbnRzICYmIGFydGljbGVPYmplY3Q/LmRvY3VtZW50cy5sZW5ndGggPiAwXCIgW2RvY3VtZW50c109XCJhcnRpY2xlT2JqZWN0Py5kb2N1bWVudHNcIj48L2FwcC1wcm9kdWN0LWRvY3VtZW50cz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA9PT0gM1wiPlxuICAgICAgICAgICAgPGFwcC1wcm9kdWN0LXN5bWJvbHMgY2xhc3M9XCJcIiAqbmdJZj1cImFydGljbGVPYmplY3Q/LnN5bWJvbHMgJiYgYXJ0aWNsZU9iamVjdD8uc3ltYm9scy5sZW5ndGggPiAwXCIgW3N5bWJvbHNdPVwiYXJ0aWNsZU9iamVjdD8uc3ltYm9sc1wiPjwvYXBwLXByb2R1Y3Qtc3ltYm9scz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1pbmZvLXRhYnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0SW5mb1RhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBhY3RpdmVUYWI6IG51bWJlcjtcbiAgcHVibGljIGFjdGl2ZVRhYkhlaWdodDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50JylcbiAgcHVibGljIHRhYkNvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIHRhYnM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGFydGljbGVPYmplY3Q6IEFydGljbGVGdWxsT2JqZWN0O1xuXG4gIEBJbnB1dCAoKVxuICBzZXQgYXJ0aWNsZSh2YWx1ZTogQXJ0aWNsZUZ1bGxPYmplY3QpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYXJ0aWNsZU9iamVjdCA9IHZhbHVlO1xuICAgICAgdGhpcy5fc2V0dXBUYWJzKCk7XG4gICAgICB0aGlzLnVwZGF0ZVRhYigwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2FwcEV2ZW50U2VydmljZTogUHJvZHVjdEV2ZW50U2VydmljZVxuICApIHtcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2Uub25VcGRhdGVQcm9kdWN0SW5mb1RhYi5zdWJzY3JpYmUoKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUYWIoaW5kZXgpO1xuICAgICAgICB0aGlzLnRhYkNvbnRlbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVGFiKHRhYkluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHRhYkluZGV4O1xuICAgIHRoaXMudXBkYXRlSGVpZ2h0KHRhYkluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVIZWlnaHQodGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYkNvbnRlbnQgJiYgdGhpcy50YWJDb250ZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMudGFiQ29udGVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW3RhYkluZGV4XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSGVpZ2h0ID0gdGhpcy50YWJDb250ZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bdGFiSW5kZXhdLm9mZnNldEhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cFRhYnMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJzLnB1c2goeyB0aXRsZTogJ0RFU0NSSVBUSU9OJyB9KTtcbiAgICB0aGlzLnRhYnMucHVzaCh7IHRpdGxlOiAnRkVBVFVSRVMnIH0pO1xuXG4gICAgaWYgKHRoaXMuYXJ0aWNsZU9iamVjdC5kb2N1bWVudHMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFydGljbGVPYmplY3QuZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGFicy5wdXNoKHsgdGl0bGU6ICdET1dOTE9BRFMnIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFydGljbGVPYmplY3Quc3ltYm9scyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYXJ0aWNsZU9iamVjdC5zeW1ib2xzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGFicy5wdXNoKHsgdGl0bGU6ICdTWU1CT0xTJyB9KTtcbiAgICB9XG5cbiAgfVxuXG59XG4iXX0=
|