@hitsoft/uretim-yonetimi 1.0.41 → 1.0.43
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/esm2020/lib/components/hit-filling-control/hit-filling-control.component.mjs +1 -19
- package/esm2020/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.component.mjs +4 -8
- package/esm2020/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.module.mjs +2 -5
- package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.mjs +1 -18
- package/esm2020/lib/hit-proxy/hit-filling-receipt-from-production/hit-filling-receipt-from-production.service.mjs +1 -1
- package/esm2020/lib/hit-proxy/models.mjs +13 -38
- package/fesm2015/hitsoft-uretim-yonetimi.mjs +21 -87
- package/fesm2015/hitsoft-uretim-yonetimi.mjs.map +1 -1
- package/fesm2020/hitsoft-uretim-yonetimi.mjs +21 -87
- package/fesm2020/hitsoft-uretim-yonetimi.mjs.map +1 -1
- package/lib/components/hit-filling-control/hit-filling-control.component.d.ts +0 -1
- package/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.component.d.ts +1 -4
- package/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.module.d.ts +1 -1
- package/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.d.ts +0 -1
- package/lib/hit-proxy/hit-filling-receipt-from-production/hit-filling-receipt-from-production.service.d.ts +0 -9
- package/lib/hit-proxy/models.d.ts +1 -3
- package/package.json +1 -1
|
@@ -22,7 +22,6 @@ export class HitFillingControlComponent {
|
|
|
22
22
|
this.qrCode = '';
|
|
23
23
|
this.lines = [];
|
|
24
24
|
this.isDataLoadedFromDb = false; // DB'den veri mi geldi yoksa yeni mi
|
|
25
|
-
this.scannedBarcodeKeys = new Set();
|
|
26
25
|
}
|
|
27
26
|
ngOnInit() {
|
|
28
27
|
// Initialization logic
|
|
@@ -94,21 +93,6 @@ export class HitFillingControlComponent {
|
|
|
94
93
|
this.focusQRInput();
|
|
95
94
|
return;
|
|
96
95
|
}
|
|
97
|
-
// Mükerrer barkod kontrolü: aynı iş emri + tartım sıra no kombinasyonu tekrar okutulamaz
|
|
98
|
-
if (parsed.workOrderNo && parsed.weighingSequenceNo) {
|
|
99
|
-
const barcodeKey = `${parsed.workOrderNo}_${parsed.weighingSequenceNo}`;
|
|
100
|
-
if (this.scannedBarcodeKeys.has(barcodeKey)) {
|
|
101
|
-
this.confirmation.error('', 'Aynı barkod tekrar okutulamaz!', {
|
|
102
|
-
hideYesBtn: true,
|
|
103
|
-
cancelText: 'Kapat',
|
|
104
|
-
dismissible: false,
|
|
105
|
-
});
|
|
106
|
-
this.qrCode = '';
|
|
107
|
-
this.focusQRInput();
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
this.scannedBarcodeKeys.add(barcodeKey);
|
|
111
|
-
}
|
|
112
96
|
// Grid'de bu item'ı bul
|
|
113
97
|
const line = this.lines.find(x => x.itemCode === parsed.chemicalCode);
|
|
114
98
|
if (!line) {
|
|
@@ -281,7 +265,6 @@ export class HitFillingControlComponent {
|
|
|
281
265
|
this.lines = [];
|
|
282
266
|
this.isDataLoadedFromDb = false;
|
|
283
267
|
this.isSaving = false;
|
|
284
|
-
this.scannedBarcodeKeys.clear();
|
|
285
268
|
this.focusOnIsEmriNo();
|
|
286
269
|
}
|
|
287
270
|
get showKazanDegisimiButton() {
|
|
@@ -326,7 +309,6 @@ export class HitFillingControlComponent {
|
|
|
326
309
|
// Grid'i refresh et
|
|
327
310
|
this.dataGrid.instance.refresh();
|
|
328
311
|
this.isDataLoadedFromDb = false; // Artık yeni veri girilecek
|
|
329
|
-
this.scannedBarcodeKeys.clear(); // Yeni kazan için okutulmuş barkodları sıfırla
|
|
330
312
|
// QR input'a focus et
|
|
331
313
|
this.focusOnQrCode();
|
|
332
314
|
}
|
|
@@ -376,4 +358,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
376
358
|
type: ViewChild,
|
|
377
359
|
args: ['gridLines', { static: false }]
|
|
378
360
|
}] } });
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sMEJBQTBCO0lBaUJyQyxZQUNVLE9BQWlDLEVBQ2pDLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWR4QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztRQUNsRSx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBTTVDLENBQUM7SUFFSixRQUFRO1FB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Q0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQTFZVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrV0NadkMsMmpKQStGQTsyRkRuRmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtzS0FLVSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0EsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFFBQVE7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhOdW1iZXJCb3hDb21wb25lbnQsIER4VGV4dEJveENvbXBvbmVudCwgRHhEYXRhR3JpZENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL2hpdC1maWxsaW5nLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGxpbmdDb250cm9sTGluZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEhpdEhlbHBlciB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctY29udHJvbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ0NvbnRyb2xDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lzRW1yaU5vUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveElzRW1yaU5vOiBEeE51bWJlckJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdxckNvZGVSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgdHh0Qm94UXJDb2RlOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZExpbmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGFHcmlkOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICBpc0VtcmlObzogbnVtYmVyO1xyXG4gIHNlYXJjaEJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHVHZWNlcmxpTWk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhdEJpbGdpc2k6IHN0cmluZyA9ICcnO1xyXG4gIGFtYmFsYWpMb3Q6IHN0cmluZyA9ICcnO1xyXG4gIHFyQ29kZTogc3RyaW5nID0gJyc7XHJcbiAgbGluZXM6IEZpbGxpbmdDb250cm9sTGluZVtdID0gW107XHJcbiAgaXNEYXRhTG9hZGVkRnJvbURiOiBib29sZWFuID0gZmFsc2U7IC8vIERCJ2RlbiB2ZXJpIG1pIGdlbGRpIHlva3NhIHllbmkgbWlcclxuICBwcml2YXRlIHNjYW5uZWRCYXJjb2RlS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RmlsbGluZ0NvbnRyb2xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIEluaXRpYWxpemF0aW9uIGxvZ2ljXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmZvY3VzT25Jc0VtcmlObygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UHJvZHVjdGlvbk9yZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaU5vKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VhcmNoQmFzaWxkaU1pID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0RmlsbGluZ0NvbnRyb2xJbmZvKHRoaXMuaXNFbXJpTm8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlLml0ZW1zPy5zdGF0dXMgfHwgJycpLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcclxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdQJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCAnQnUgw7xyZXRpbSBzaXBhcmnFn2kgb25heWxhbm1hbcSxxZ90xLFyLCBrb250cm9sIHlhcMSxbGFtYXouJywge1xyXG4gICAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmhhdEJpbGdpc2kgPSByZXNwb25zZS5pdGVtcy51X0hhdDtcclxuICAgICAgICAgIHRoaXMuYW1iYWxhakxvdCA9IHJlc3BvbnNlLml0ZW1zLnVfVFJLQU1CQUxBSkxPVDtcclxuICAgICAgICAgIHRoaXMubGluZXMgPSByZXNwb25zZS5pdGVtcy5saW5lcztcclxuICAgICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IHRydWU7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIERCJ2RlbiB2ZXJpIGdlbGlwIGdlbG1lZGnEn2luaSBrb250cm9sIGV0IChlbiBheiBiaXIgc2F0xLFyZGEgYmF0Y2hOdW1iZXIgdmFyc2EgREInZGVuIGdlbG1pxZ90aXIpXHJcbiAgICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZEZyb21EYiA9IHRoaXMubGluZXMuc29tZSh4ID0+IHguYmF0Y2hOdW1iZXIgJiYgeC5iYXRjaE51bWJlci50cmltKCkgIT09ICcnKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPblFyQ29kZSgpO1xyXG4gICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlID0+IHtcclxuICAgICAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUXJDb2RlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLnFyQ29kZSB8fCB0aGlzLnFyQ29kZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICBjb25zdCBwYXJzZWQgPSBIaXRIZWxwZXIucGFyc2VRUih0aGlzLnFyQ29kZSk7XHJcbiAgICBpZiAoIXBhcnNlZCkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ0dlw6dlcnNpeiBRUiBrb2QgZm9ybWF0xLEhJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTcO8a2VycmVyIGJhcmtvZCBrb250cm9sw7w6IGF5bsSxIGnFnyBlbXJpICsgdGFydMSxbSBzxLFyYSBubyBrb21iaW5hc3lvbnUgdGVrcmFyIG9rdXR1bGFtYXpcclxuICAgIGlmIChwYXJzZWQud29ya09yZGVyTm8gJiYgcGFyc2VkLndlaWdoaW5nU2VxdWVuY2VObykge1xyXG4gICAgICBjb25zdCBiYXJjb2RlS2V5ID0gYCR7cGFyc2VkLndvcmtPcmRlck5vfV8ke3BhcnNlZC53ZWlnaGluZ1NlcXVlbmNlTm99YDtcclxuICAgICAgaWYgKHRoaXMuc2Nhbm5lZEJhcmNvZGVLZXlzLmhhcyhiYXJjb2RlS2V5KSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnQXluxLEgYmFya29kIHRla3JhciBva3V0dWxhbWF6IScsIHtcclxuICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zY2FubmVkQmFyY29kZUtleXMuYWRkKGJhcmNvZGVLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnZGUgYnUgaXRlbSfEsSBidWxcclxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVzLmZpbmQoeCA9PiB4Lml0ZW1Db2RlID09PSBwYXJzZWQuY2hlbWljYWxDb2RlKTtcclxuICAgIGlmICghbGluZSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgYCR7cGFyc2VkLmNoZW1pY2FsQ29kZX0ga29kbHUgw7xyw7xuIGJ1IGnFnyBlbXJpbmRlIGJ1bHVuYW1hZMSxIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIMSwbGsgb2t1dG1hIGtvbnRyb2zDvCAtIEhpw6cga29udHJvbCBlZGlsbWVtacWfIHNhdMSxciB2YXJzYSwgYnUgaWxrIG9rdXRtYSBkZW1la3RpclxyXG4gICAgY29uc3QgaXNGaXJzdFNjYW4gPSAhdGhpcy5saW5lcy5zb21lKHggPT4geC5pc0NvbnRyb2xsZWQpO1xyXG4gICAgaWYgKGlzRmlyc3RTY2FuKSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGnDp2luIMO8csO8biBhxJ9hY8SxIHZlIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgIGNvbnNvbGUubG9nKCfEsGxrIG9rdXRtYSB0ZXNwaXQgZWRpbGRpLCDDvHLDvG4gYcSfYWPEsSBrb250cm9sw7wgeWFwxLFsxLF5b3I6JywgcGFyc2VkLmNoZW1pY2FsQ29kZSk7XHJcbiAgICAgIHRoaXMuc2VydmljZS5oYXNQcm9kdWN0aW9uVHJlZShwYXJzZWQuY2hlbWljYWxDb2RlLCB0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdIYXNQcm9kdWN0aW9uVHJlZSByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB2YXIsIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfDnHLDvG4gYcSfYWPEsSBidWx1bmR1LCBrYWxpdGUga29udHJvbMO8IHlhcMSxbMSxeW9yJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tRdWFsaXR5QW5kUHJvY2VzcyhsaW5lLCBwYXJzZWQubG90TnVtYmVyLCBpc0ZpcnN0U2Nhbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB5b2ssIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnw5xyw7xuIGHEn2FjxLEgYnVsdW5hbWFkxLEhJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnxLBsayBva3V0bWEgacWfbGVtaSB5YXLEsSBtYW3DvGwgacOnaW4geWFwxLFsbWFsxLEhJywge1xyXG4gICAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hhc1Byb2R1Y3Rpb25UcmVlIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ8OccsO8biBhxJ9hY8SxIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGRlxJ9pbHNlIGRpcmVrdCBpxZ9sZVxyXG4gICAgICBjb25zb2xlLmxvZygnxLBsayBva3V0bWEgZGXEn2lsLCBkaXJla3QgacWfbGVuaXlvcicpO1xyXG4gICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgcGFyc2VkLmxvdE51bWJlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrUXVhbGl0eUFuZFByb2Nlc3MobGluZTogRmlsbGluZ0NvbnRyb2xMaW5lLCBiYXRjaE51bWJlcjogc3RyaW5nLCBpc0ZpcnN0U2NhbjogYm9vbGVhbikge1xyXG4gICAgLy8gS2FsaXRlIGR1cnVtdSBrb250cm9sw7wgeWFwXHJcbiAgICB0aGlzLnNlcnZpY2UuY2hlY2tRdWFsaXR5U3RhdHVzKGJhdGNoTnVtYmVyLCB0aGlzLmlzRW1yaU5vLCBsaW5lLml0ZW1Db2RlKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrUXVhbGl0eVN0YXR1cyByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMpIHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pdGVtcy5pc0FwcHJvdmVkKSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBldFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBlZGlsaXlvcicpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgYmF0Y2hOdW1iZXIsIGlzRmlyc3RTY2FuKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBSRUQsIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCByZWRkZWRpbGRpOicsIHJlc3BvbnNlLml0ZW1zLmVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCByZXNwb25zZS5pdGVtcy5lcnJvck1lc3NhZ2UgfHwgJ0thbGl0ZSBrb250cm9sw7wgcmVkZGVkaWxkaSEnLCB7XHJcbiAgICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFNvcmd1IHNvbnVjdSBudWxsIGdlbGRpIHZleWEgYmHFn2FyxLFzxLF6XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBzb3JndXN1IHNvbnXDpyBkw7ZuZMO8cm1lZGknKTtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnQnUgbG90IG51bWFyYXPEsSBpw6dpbiBrYWxpdGUgYmlsZ2lzaSBidWx1bmFtYWTEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NoZWNrUXVhbGl0eVN0YXR1cyBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnS2FsaXRlIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzUXJTY2FuKGxpbmU6IEZpbGxpbmdDb250cm9sTGluZSwgYmF0Y2hOdW1iZXI6IHN0cmluZywgaXNGaXJzdFNjYW46IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgLy8gS29udHJvbCBlZGlsZGkgb2xhcmFrIGnFn2FyZXRsZSB2ZSBwYXJ0aSBudW1hcmFzxLFuxLEgc2V0IGV0XHJcbiAgICBsaW5lLmlzQ29udHJvbGxlZCA9IHRydWU7XHJcbiAgICBpZiAoaXNGaXJzdFNjYW4pIHtcclxuICAgICAgbGluZS5iYXRjaE51bWJlciA9IGJhdGNoTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnaSByZWZyZXNoIGV0XHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuXHJcbiAgICAvLyBRUiBpbnB1dCd1IHRlbWl6bGUgdmUgZm9jdXMgZXRcclxuICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUw7xtIGtvbnRyb2xsZXIgdGFtYW1sYW5txLHFnyBtxLEga29udHJvbMO8XHJcbiAgICBpZiAoIXRoaXMubGluZXMuZXZlcnkoeCA9PiB4LmlzQ29udHJvbGxlZCkpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ1TDvG0ga29udHJvbGxlciB0YW1hbWxhbm1hZGFuIGthecSxdCBpxZ9sZW1pIHlhcMSxbGFtYXouJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2F2ZURhdGEgPSB7XHJcbiAgICAgIHdvcmtPcmRlck5vOiB0aGlzLmlzRW1yaU5vLFxyXG4gICAgICBsaW5lczogdGhpcy5saW5lcy5tYXAobGluZSA9PiAoe1xyXG4gICAgICAgIGxpbmVOdW06IGxpbmUubGluZU51bSxcclxuICAgICAgICBpdGVtQ29kZTogbGluZS5pdGVtQ29kZSxcclxuICAgICAgICBpc0NvbnRyb2xsZWQ6IGxpbmUuaXNDb250cm9sbGVkLFxyXG4gICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyIHx8ICcnXHJcbiAgICAgIH0pKVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlRmlsbGluZ0NvbnRyb2woc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ0thecSxdCBiYcWfYXLEsWzEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgLy8gSGF0YSBzb25yYXPEsSBpxZ9sZW1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLmhhdEJpbGdpc2kgPSAnJztcclxuICAgIHRoaXMuYW1iYWxhakxvdCA9ICcnO1xyXG4gICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgIHRoaXMubGluZXMgPSBbXTtcclxuICAgIHRoaXMuaXNEYXRhTG9hZGVkRnJvbURiID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLnNjYW5uZWRCYXJjb2RlS2V5cy5jbGVhcigpO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93S2F6YW5EZWdpc2ltaUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIC8vIFNhZGVjZSBEQidkZW4gdmVyaSBnZWxtacWfc2UsIGnFnyBlbXJpIG9rdXR1bG11xZ8gdmUgdMO8bSBzYXTEsXJsYXIga29udHJvbCBlZGlsbWnFnyBpc2UgZ8O2c3RlclxyXG4gICAgcmV0dXJuIHRoaXMuaXNEYXRhTG9hZGVkRnJvbURiICYmXHJcbiAgICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pICYmIFxyXG4gICAgICAgICAgIHRoaXMubGluZXMubGVuZ3RoID4gMCAmJiBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmV2ZXJ5KHggPT4geC5pc0NvbnRyb2xsZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2F2ZUJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gxLDFnyBlbXJpIHlva3NhIHZleWEgc2F0xLFyIHlva3NhIHZleWEgdMO8bSBzYXTEsXJsYXIga29udHJvbCBlZGlsbWVtacWfc2UgdmV5YSBrYXlkZXRtZSBpxZ9sZW1pIGRldmFtIGVkaXlvcnNhIGRpc2FibGVcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCBcclxuICAgICAgICAgICAhdGhpcy5saW5lcy5ldmVyeSh4ID0+IHguaXNDb250cm9sbGVkKSB8fFxyXG4gICAgICAgICAgIHRoaXMuaXNTYXZpbmc7XHJcbiAgfVxyXG5cclxuICBrYXphbkRlZ2lzaW1pKCkge1xyXG4gICAgLy8gxLBsayBzb3J1OiBCdSBrYXphbmEgYWl0IHTDvG0gw7xyZXRpbWRlbiBnaXJpxZ9sZXJpIHRhbWFtbGFkxLFuxLF6IG3EsT9cclxuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICcnLFxyXG4gICAgICAnQnUga2F6YW5hIGFpdCB0w7xtIMO8cmV0aW1kZW4gZ2lyacWfbGVyaSB0YW1hbWxhZMSxbsSxeiBtxLE/JyxcclxuICAgICAge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICB9XHJcbiAgICApLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAvLyDEsGtpbmNpIHNvcnU6IEthemFuIGRlxJ9pxZ9pbWkgw7ZuY2VzaW5kZSBrYXphbiBZTSBmaXJlIMOnxLFrxLHFn8SxIGdlcsOnZWtsZcWfdGlyaWxkaSBtaT9cclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgICAnS2F6YW4gZGXEn2nFn2ltaSDDtm5jZXNpbmRlIGthemFuIFlNIGZpcmUgw6fEsWvEscWfxLEgZ2Vyw6dla2xlxZ90aXJpbGRpIG1pPycsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcidcclxuICAgICAgICAgIH1cclxuICAgICAgICApLnN1YnNjcmliZShzdGF0dXMyID0+IHtcclxuICAgICAgICAgIGlmIChzdGF0dXMyID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAgICAgLy8gw5zDp8O8bmPDvCBzb3J1OiBCaWxlxZ9lbiBmaXJlIMOnxLFrxLHFn8SxIGdlcsOnZWtsZcWfdGlyaWxkaSBtaT9cclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICAnQmlsZcWfZW4gZmlyZSDDp8Sxa8SxxZ/EsSBnZXLDp2VrbGXFn3RpcmlsZGkgbWk/JyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoc3RhdHVzMyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXR1czMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgICAgICAgLy8gVMO8bSBvbmF5bGFyIHZlcmlsZGksIGthemFuIGRlxJ9pxZ9pbWkgacWfbGVtaW5pIGdlcsOnZWtsZcWfdGlyXHJcbiAgICAgICAgICAgICAgICAvLyBUw7xtIHNhdMSxcmxhcsSxbiBJc0NvbnRyb2xsZWQgYWxhbsSxbsSxIGZhbHNlIHlhcFxyXG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBsaW5lLmlzQ29udHJvbGxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBsaW5lLmJhdGNoTnVtYmVyID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBHcmlkJ2kgcmVmcmVzaCBldFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZEZyb21EYiA9IGZhbHNlOyAvLyBBcnTEsWsgeWVuaSB2ZXJpIGdpcmlsZWNla1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2FubmVkQmFyY29kZUtleXMuY2xlYXIoKTsgLy8gWWVuaSBrYXphbiBpw6dpbiBva3V0dWxtdcWfIGJhcmtvZGxhcsSxIHPEsWbEsXJsYVxyXG4gICAgICAgICAgICAgICAgLy8gUVIgaW5wdXQnYSBmb2N1cyBldFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uUXJDb2RlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIHN0YXR1czMgIT09ICdjb25maXJtJyBpc2Ugw7zDp8O8bmPDvCBzb3J1eWEgaGF5xLFyIGRlbmRpLCBpxZ9sZW0gaXB0YWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBzdGF0dXMyICE9PSAnY29uZmlybScgaXNlIGlraW5jaSBzb3J1eWEgaGF5xLFyIGRlbmRpLCBpxZ9sZW0gaXB0YWxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICAvLyBzdGF0dXMgIT09ICdjb25maXJtJyBpc2UgaWxrIHNvcnV5YSBoYXnEsXIgZGVuZGksIGnFn2xlbSBpcHRhbFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPblFyQ29kZSgpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHh0Qm94UXJDb2RlPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNRUklucHV0KCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50eHRCb3hRckNvZGU/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5UaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZlQnV0dG9uRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2F2ZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5TYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCJzaG93S2F6YW5EZWdpc2ltaUJ1dHRvblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWluZm8gYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJrYXphbkRlZ2lzaW1pKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVjeWNsZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgS2F6YW4gRGXEn2nFn2ltaVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuQ2xlYW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDFweCk7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjaXNFbXJpTm9SZWYgY2xhc3M9XCJtZS0xXCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuV29ya09yZGVyTm8nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJpc0VtcmlOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCYXNpbGRpTWkgfHwgaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgXHJcbiAgICAgICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCIgXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzRW1yaUJhcmtvZHVHZWNlcmxpTWlcIj5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5MaW5lSW5mbycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJoYXRCaWxnaXNpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuXHJcbiAgICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkFtYmFsYWogTG90XCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYW1iYWxhakxvdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgPGR4LXRleHQtYm94ICNxckNvZGVSZWYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuUVJDb2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicXJDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJvblFyQ29kZUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5RUkNvZGUuUGxhY2Vob2xkZXInIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIGljb249XCJwbHVzXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJvblFyQ29kZUNoYW5nZSgpXCI+XHJcbiAgICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZ3JpZExpbmVzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJsaW5lc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5JdGVtTmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzQ29udHJvbGxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLklzQ29udHJvbGxlZCcgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJib29sZWFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJiYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0JyQyxZQUNVLE9BQWlDLEVBQ2pDLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWJ4QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztJQU12RSxDQUFDO0lBRUosUUFBUTtRQUNOLHVCQUF1QjtJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLElB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QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQXZYVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrV0NadkMsMmpKQStGQTsyRkRuRmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtzS0FLVSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0EsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFFBQVE7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhOdW1iZXJCb3hDb21wb25lbnQsIER4VGV4dEJveENvbXBvbmVudCwgRHhEYXRhR3JpZENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL2hpdC1maWxsaW5nLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGxpbmdDb250cm9sTGluZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEhpdEhlbHBlciB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctY29udHJvbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ0NvbnRyb2xDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lzRW1yaU5vUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveElzRW1yaU5vOiBEeE51bWJlckJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdxckNvZGVSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgdHh0Qm94UXJDb2RlOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZExpbmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGFHcmlkOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICBpc0VtcmlObzogbnVtYmVyO1xyXG4gIHNlYXJjaEJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHVHZWNlcmxpTWk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhdEJpbGdpc2k6IHN0cmluZyA9ICcnO1xyXG4gIGFtYmFsYWpMb3Q6IHN0cmluZyA9ICcnO1xyXG4gIHFyQ29kZTogc3RyaW5nID0gJyc7XHJcbiAgbGluZXM6IEZpbGxpbmdDb250cm9sTGluZVtdID0gW107XHJcbiAgaXNEYXRhTG9hZGVkRnJvbURiOiBib29sZWFuID0gZmFsc2U7IC8vIERCJ2RlbiB2ZXJpIG1pIGdlbGRpIHlva3NhIHllbmkgbWlcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBJbml0aWFsaXphdGlvbiBsb2dpY1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZpbGxpbmdDb250cm9sSW5mbyh0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IChyZXNwb25zZS5pdGVtcz8uc3RhdHVzIHx8ICcnKS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnUCcpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0J1IMO8cmV0aW0gc2lwYXJpxZ9pIG9uYXlsYW5tYW3EscWfdMSxciwga29udHJvbCB5YXDEsWxhbWF6LicsIHtcclxuICAgICAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5oYXRCaWxnaXNpID0gcmVzcG9uc2UuaXRlbXMudV9IYXQ7XHJcbiAgICAgICAgICB0aGlzLmFtYmFsYWpMb3QgPSByZXNwb25zZS5pdGVtcy51X1RSS0FNQkFMQUpMT1Q7XHJcbiAgICAgICAgICB0aGlzLmxpbmVzID0gcmVzcG9uc2UuaXRlbXMubGluZXM7XHJcbiAgICAgICAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSB0cnVlO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBEQidkZW4gdmVyaSBnZWxpcCBnZWxtZWRpxJ9pbmkga29udHJvbCBldCAoZW4gYXogYmlyIHNhdMSxcmRhIGJhdGNoTnVtYmVyIHZhcnNhIERCJ2RlbiBnZWxtacWfdGlyKVxyXG4gICAgICAgICAgdGhpcy5pc0RhdGFMb2FkZWRGcm9tRGIgPSB0aGlzLmxpbmVzLnNvbWUoeCA9PiB4LmJhdGNoTnVtYmVyICYmIHguYmF0Y2hOdW1iZXIudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzT25RckNvZGUoKTtcclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hCYXNpbGRpTWkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3RhdHVzJC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblFyQ29kZUNoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5xckNvZGUgfHwgdGhpcy5xckNvZGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZGVidWdnZXI7XHJcblxyXG4gICAgY29uc3QgcGFyc2VkID0gSGl0SGVscGVyLnBhcnNlUVIodGhpcy5xckNvZGUpO1xyXG4gICAgaWYgKCFwYXJzZWQpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdHZcOnZXJzaXogUVIga29kIGZvcm1hdMSxIScsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnZGUgYnUgaXRlbSfEsSBidWxcclxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVzLmZpbmQoeCA9PiB4Lml0ZW1Db2RlID09PSBwYXJzZWQuY2hlbWljYWxDb2RlKTtcclxuICAgIGlmICghbGluZSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgYCR7cGFyc2VkLmNoZW1pY2FsQ29kZX0ga29kbHUgw7xyw7xuIGJ1IGnFnyBlbXJpbmRlIGJ1bHVuYW1hZMSxIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIMSwbGsgb2t1dG1hIGtvbnRyb2zDvCAtIEhpw6cga29udHJvbCBlZGlsbWVtacWfIHNhdMSxciB2YXJzYSwgYnUgaWxrIG9rdXRtYSBkZW1la3RpclxyXG4gICAgY29uc3QgaXNGaXJzdFNjYW4gPSAhdGhpcy5saW5lcy5zb21lKHggPT4geC5pc0NvbnRyb2xsZWQpO1xyXG4gICAgaWYgKGlzRmlyc3RTY2FuKSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGnDp2luIMO8csO8biBhxJ9hY8SxIHZlIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgIGNvbnNvbGUubG9nKCfEsGxrIG9rdXRtYSB0ZXNwaXQgZWRpbGRpLCDDvHLDvG4gYcSfYWPEsSBrb250cm9sw7wgeWFwxLFsxLF5b3I6JywgcGFyc2VkLmNoZW1pY2FsQ29kZSk7XHJcbiAgICAgIHRoaXMuc2VydmljZS5oYXNQcm9kdWN0aW9uVHJlZShwYXJzZWQuY2hlbWljYWxDb2RlLCB0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdIYXNQcm9kdWN0aW9uVHJlZSByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB2YXIsIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfDnHLDvG4gYcSfYWPEsSBidWx1bmR1LCBrYWxpdGUga29udHJvbMO8IHlhcMSxbMSxeW9yJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tRdWFsaXR5QW5kUHJvY2VzcyhsaW5lLCBwYXJzZWQubG90TnVtYmVyLCBpc0ZpcnN0U2Nhbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB5b2ssIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnw5xyw7xuIGHEn2FjxLEgYnVsdW5hbWFkxLEhJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnxLBsayBva3V0bWEgacWfbGVtaSB5YXLEsSBtYW3DvGwgacOnaW4geWFwxLFsbWFsxLEhJywge1xyXG4gICAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hhc1Byb2R1Y3Rpb25UcmVlIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ8OccsO8biBhxJ9hY8SxIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGRlxJ9pbHNlIGRpcmVrdCBpxZ9sZVxyXG4gICAgICBjb25zb2xlLmxvZygnxLBsayBva3V0bWEgZGXEn2lsLCBkaXJla3QgacWfbGVuaXlvcicpO1xyXG4gICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgcGFyc2VkLmxvdE51bWJlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrUXVhbGl0eUFuZFByb2Nlc3MobGluZTogRmlsbGluZ0NvbnRyb2xMaW5lLCBiYXRjaE51bWJlcjogc3RyaW5nLCBpc0ZpcnN0U2NhbjogYm9vbGVhbikge1xyXG4gICAgLy8gS2FsaXRlIGR1cnVtdSBrb250cm9sw7wgeWFwXHJcbiAgICB0aGlzLnNlcnZpY2UuY2hlY2tRdWFsaXR5U3RhdHVzKGJhdGNoTnVtYmVyLCB0aGlzLmlzRW1yaU5vLCBsaW5lLml0ZW1Db2RlKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrUXVhbGl0eVN0YXR1cyByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMpIHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pdGVtcy5pc0FwcHJvdmVkKSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBldFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBlZGlsaXlvcicpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgYmF0Y2hOdW1iZXIsIGlzRmlyc3RTY2FuKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBSRUQsIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCByZWRkZWRpbGRpOicsIHJlc3BvbnNlLml0ZW1zLmVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCByZXNwb25zZS5pdGVtcy5lcnJvck1lc3NhZ2UgfHwgJ0thbGl0ZSBrb250cm9sw7wgcmVkZGVkaWxkaSEnLCB7XHJcbiAgICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFNvcmd1IHNvbnVjdSBudWxsIGdlbGRpIHZleWEgYmHFn2FyxLFzxLF6XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBzb3JndXN1IHNvbnXDpyBkw7ZuZMO8cm1lZGknKTtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnQnUgbG90IG51bWFyYXPEsSBpw6dpbiBrYWxpdGUgYmlsZ2lzaSBidWx1bmFtYWTEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NoZWNrUXVhbGl0eVN0YXR1cyBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnS2FsaXRlIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzUXJTY2FuKGxpbmU6IEZpbGxpbmdDb250cm9sTGluZSwgYmF0Y2hOdW1iZXI6IHN0cmluZywgaXNGaXJzdFNjYW46IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgLy8gS29udHJvbCBlZGlsZGkgb2xhcmFrIGnFn2FyZXRsZSB2ZSBwYXJ0aSBudW1hcmFzxLFuxLEgc2V0IGV0XHJcbiAgICBsaW5lLmlzQ29udHJvbGxlZCA9IHRydWU7XHJcbiAgICBpZiAoaXNGaXJzdFNjYW4pIHtcclxuICAgICAgbGluZS5iYXRjaE51bWJlciA9IGJhdGNoTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnaSByZWZyZXNoIGV0XHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuXHJcbiAgICAvLyBRUiBpbnB1dCd1IHRlbWl6bGUgdmUgZm9jdXMgZXRcclxuICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUw7xtIGtvbnRyb2xsZXIgdGFtYW1sYW5txLHFnyBtxLEga29udHJvbMO8XHJcbiAgICBpZiAoIXRoaXMubGluZXMuZXZlcnkoeCA9PiB4LmlzQ29udHJvbGxlZCkpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ1TDvG0ga29udHJvbGxlciB0YW1hbWxhbm1hZGFuIGthecSxdCBpxZ9sZW1pIHlhcMSxbGFtYXouJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2F2ZURhdGEgPSB7XHJcbiAgICAgIHdvcmtPcmRlck5vOiB0aGlzLmlzRW1yaU5vLFxyXG4gICAgICBsaW5lczogdGhpcy5saW5lcy5tYXAobGluZSA9PiAoe1xyXG4gICAgICAgIGxpbmVOdW06IGxpbmUubGluZU51bSxcclxuICAgICAgICBpdGVtQ29kZTogbGluZS5pdGVtQ29kZSxcclxuICAgICAgICBpc0NvbnRyb2xsZWQ6IGxpbmUuaXNDb250cm9sbGVkLFxyXG4gICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyIHx8ICcnXHJcbiAgICAgIH0pKVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlRmlsbGluZ0NvbnRyb2woc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ0thecSxdCBiYcWfYXLEsWzEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgLy8gSGF0YSBzb25yYXPEsSBpxZ9sZW1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLmhhdEJpbGdpc2kgPSAnJztcclxuICAgIHRoaXMuYW1iYWxhakxvdCA9ICcnO1xyXG4gICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgIHRoaXMubGluZXMgPSBbXTtcclxuICAgIHRoaXMuaXNEYXRhTG9hZGVkRnJvbURiID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvY3VzT25Jc0VtcmlObygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dLYXphbkRlZ2lzaW1pQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gU2FkZWNlIERCJ2RlbiB2ZXJpIGdlbG1pxZ9zZSwgacWfIGVtcmkgb2t1dHVsbXXFnyB2ZSB0w7xtIHNhdMSxcmxhciBrb250cm9sIGVkaWxtacWfIGlzZSBnw7ZzdGVyXHJcbiAgICByZXR1cm4gdGhpcy5pc0RhdGFMb2FkZWRGcm9tRGIgJiZcclxuICAgICAgICAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgJiYgXHJcbiAgICAgICAgICAgdGhpcy5saW5lcy5sZW5ndGggPiAwICYmIFxyXG4gICAgICAgICAgIHRoaXMubGluZXMuZXZlcnkoeCA9PiB4LmlzQ29udHJvbGxlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTYXZlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAvLyDEsMWfIGVtcmkgeW9rc2EgdmV5YSBzYXTEsXIgeW9rc2EgdmV5YSB0w7xtIHNhdMSxcmxhciBrb250cm9sIGVkaWxtZW1pxZ9zZSB2ZXlhIGtheWRldG1lIGnFn2xlbWkgZGV2YW0gZWRpeW9yc2EgZGlzYWJsZVxyXG4gICAgcmV0dXJuICF0aGlzLmlzRW1yaU5vIHx8IFxyXG4gICAgICAgICAgIHRoaXMubGluZXMubGVuZ3RoID09PSAwIHx8IFxyXG4gICAgICAgICAgICF0aGlzLmxpbmVzLmV2ZXJ5KHggPT4geC5pc0NvbnRyb2xsZWQpIHx8XHJcbiAgICAgICAgICAgdGhpcy5pc1NhdmluZztcclxuICB9XHJcblxyXG4gIGthemFuRGVnaXNpbWkoKSB7XHJcbiAgICAvLyDEsGxrIHNvcnU6IEJ1IGthemFuYSBhaXQgdMO8bSDDvHJldGltZGVuIGdpcmnFn2xlcmkgdGFtYW1sYWTEsW7EsXogbcSxP1xyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICdCdSBrYXphbmEgYWl0IHTDvG0gw7xyZXRpbWRlbiBnaXJpxZ9sZXJpIHRhbWFtbGFkxLFuxLF6IG3EsT8nLFxyXG4gICAgICB7XHJcbiAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgIH1cclxuICAgICkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgIC8vIMSwa2luY2kgc29ydTogS2F6YW4gZGXEn2nFn2ltaSDDtm5jZXNpbmRlIGthemFuIFlNIGZpcmUgw6fEsWvEscWfxLEgZ2Vyw6dla2xlxZ90aXJpbGRpIG1pP1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICAgICdLYXphbiBkZcSfacWfaW1pIMO2bmNlc2luZGUga2F6YW4gWU0gZmlyZSDDp8Sxa8SxxZ/EsSBnZXLDp2VrbGXFn3RpcmlsZGkgbWk/JyxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHN0YXR1czIgPT4ge1xyXG4gICAgICAgICAgaWYgKHN0YXR1czIgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgICAvLyDDnMOnw7xuY8O8IHNvcnU6IEJpbGXFn2VuIGZpcmUgw6fEsWvEscWfxLEgZ2Vyw6dla2xlxZ90aXJpbGRpIG1pP1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxyXG4gICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICAgICdCaWxlxZ9lbiBmaXJlIMOnxLFrxLHFn8SxIGdlcsOnZWtsZcWfdGlyaWxkaSBtaT8nLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShzdGF0dXMzID0+IHtcclxuICAgICAgICAgICAgICBpZiAoc3RhdHVzMyA9PT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUw7xtIG9uYXlsYXIgdmVyaWxkaSwga2F6YW4gZGXEn2nFn2ltaSBpxZ9sZW1pbmkgZ2Vyw6dla2xlxZ90aXJcclxuICAgICAgICAgICAgICAgIC8vIFTDvG0gc2F0xLFybGFyxLFuIElzQ29udHJvbGxlZCBhbGFuxLFuxLEgZmFsc2UgeWFwXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGxpbmUuaXNDb250cm9sbGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGxpbmUuYmF0Y2hOdW1iZXIgPSAnJztcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAvLyBHcmlkJ2kgcmVmcmVzaCBldFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZEZyb21EYiA9IGZhbHNlOyAvLyBBcnTEsWsgeWVuaSB2ZXJpIGdpcmlsZWNla1xyXG4gICAgICAgICAgICAgICAgLy8gUVIgaW5wdXQnYSBmb2N1cyBldFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uUXJDb2RlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIHN0YXR1czMgIT09ICdjb25maXJtJyBpc2Ugw7zDp8O8bmPDvCBzb3J1eWEgaGF5xLFyIGRlbmRpLCBpxZ9sZW0gaXB0YWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBzdGF0dXMyICE9PSAnY29uZmlybScgaXNlIGlraW5jaSBzb3J1eWEgaGF5xLFyIGRlbmRpLCBpxZ9sZW0gaXB0YWxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICAvLyBzdGF0dXMgIT09ICdjb25maXJtJyBpc2UgaWxrIHNvcnV5YSBoYXnEsXIgZGVuZGksIGnFn2xlbSBpcHRhbFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPblFyQ29kZSgpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHh0Qm94UXJDb2RlPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNRUklucHV0KCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50eHRCb3hRckNvZGU/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5UaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZlQnV0dG9uRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2F2ZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5TYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCJzaG93S2F6YW5EZWdpc2ltaUJ1dHRvblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWluZm8gYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJrYXphbkRlZ2lzaW1pKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVjeWNsZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgS2F6YW4gRGXEn2nFn2ltaVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuQ2xlYW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDFweCk7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjaXNFbXJpTm9SZWYgY2xhc3M9XCJtZS0xXCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuV29ya09yZGVyTm8nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJpc0VtcmlOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCYXNpbGRpTWkgfHwgaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgXHJcbiAgICAgICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCIgXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzRW1yaUJhcmtvZHVHZWNlcmxpTWlcIj5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5MaW5lSW5mbycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJoYXRCaWxnaXNpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuXHJcbiAgICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkFtYmFsYWogTG90XCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYW1iYWxhakxvdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgPGR4LXRleHQtYm94ICNxckNvZGVSZWYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuUVJDb2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicXJDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJvblFyQ29kZUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5RUkNvZGUuUGxhY2Vob2xkZXInIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIGljb249XCJwbHVzXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJvblFyQ29kZUNoYW5nZSgpXCI+XHJcbiAgICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZ3JpZExpbmVzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJsaW5lc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5JdGVtTmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzQ29udHJvbGxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLklzQ29udHJvbGxlZCcgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJib29sZWFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJiYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
|
|
@@ -5,8 +5,7 @@ import * as i2 from "@abp/ng.theme.shared";
|
|
|
5
5
|
import * as i3 from "@angular/common";
|
|
6
6
|
import * as i4 from "@abp/ng.components/page";
|
|
7
7
|
import * as i5 from "devextreme-angular";
|
|
8
|
-
import * as i6 from "devextreme-angular/ui/
|
|
9
|
-
import * as i7 from "devextreme-angular/ui/radio-group";
|
|
8
|
+
import * as i6 from "devextreme-angular/ui/radio-group";
|
|
10
9
|
export class HitFillingReceiptFromProductionComponent {
|
|
11
10
|
constructor(service, confirmation, ngZone) {
|
|
12
11
|
this.service = service;
|
|
@@ -21,9 +20,6 @@ export class HitFillingReceiptFromProductionComponent {
|
|
|
21
20
|
this.paletTipleri = ['TAM', 'KISMI'];
|
|
22
21
|
this.koliAdet = null;
|
|
23
22
|
this.toplamMiktar = 0;
|
|
24
|
-
this.calcRowIndex = (row) => (this.workOrderInfo?.receiptHistory?.indexOf(row) ?? -1) + 1;
|
|
25
|
-
this.calcDocStatus = (row) => row.docStatus === 'C' ? 'Tamamlandı' : 'Beklemede';
|
|
26
|
-
this.formatNumber = (value) => value?.toLocaleString('tr-TR') ?? '';
|
|
27
23
|
}
|
|
28
24
|
ngOnInit() {
|
|
29
25
|
// Initialize
|
|
@@ -209,10 +205,10 @@ export class HitFillingReceiptFromProductionComponent {
|
|
|
209
205
|
}
|
|
210
206
|
}
|
|
211
207
|
HitFillingReceiptFromProductionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionComponent, deps: [{ token: i1.HitFillingReceiptFromProductionService }, { token: i2.ConfirmationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
212
|
-
HitFillingReceiptFromProductionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitFillingReceiptFromProductionComponent, selector: "lib-hit-filling-receipt-from-production", viewQueries: [{ propertyName: "nmbBoxIsEmriNo", first: true, predicate: ["isEmriNoRef"], descendants: true }, { propertyName: "radioPaletTipi", first: true, predicate: ["paletTipiRef"], descendants: true }, { propertyName: "nmbBoxKoliAdet", first: true, predicate: ["koliAdetRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef class=\"me-1\" style=\"width:100%;\" label=\"\u0130\u015F Emri No\" [(value)]=\"isEmriNo\"\r\n (onChange)=\"getProductionOrder()\" (onEnterKey)=\"getProductionOrder()\" [disabled]=\"isWorkOrderLoaded\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-button>\r\n </div>\r\n\r\n <!-- Work Order Information -->\r\n <div class=\"mt-3\" *ngIf=\"isWorkOrderLoaded && workOrderInfo\">\r\n <!-- Product Info -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <dx-text-box label=\"\u00DCr\u00FCn Kodu\" [(value)]=\"workOrderInfo.itemCode\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-text-box label=\"\u00DCr\u00FCn Ad\u0131\" [(value)]=\"workOrderInfo.itemName\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Planlanan Miktar\" \r\n [(value)]=\"workOrderInfo.plannedQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Tamamlanan Miktar\" \r\n [(value)]=\"workOrderInfo.cmpltQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Depo\" \r\n [(value)]=\"workOrderInfo.warehouse\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Ambalaj Lot\" \r\n [(value)]=\"workOrderInfo.u_TRKAMBALAJLOT\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Pallet Type Selection -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-md-12\">\r\n <dx-radio-group #paletTipiRef [items]=\"paletTipleri\" layout=\"horizontal\" [(value)]=\"paletTipi\"\r\n (onValueChanged)=\"onPaletTipiChange()\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n\r\n <!-- Koli Count for KISMI Pallet -->\r\n <div class=\"row mt-2\" *ngIf=\"paletTipi === 'KISMI'\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box #koliAdetRef label=\"Koli Adedi\" [(value)]=\"koliAdet\" (onValueChanged)=\"onKoliAdetChange()\"\r\n [min]=\"1\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Calculated Total Quantity -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box label=\"Toplam Miktar (Adet)\" [(value)]=\"toplamMiktar\" [disabled]=\"true\"\r\n [stylingMode]=\"'filled'\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-number-box label=\"Koli \u0130\u00E7i Adet\" [(value)]=\"workOrderInfo.salPackUn\" [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Quality Status Info -->\r\n <div class=\"row mt-2\" *ngIf=\"workOrderInfo.u_KaliteDurumu\">\r\n <div class=\"col-md-12\">\r\n <div class=\"alert alert-info\" role=\"alert\">\r\n <strong>Kalite Durumu:</strong> {{ workOrderInfo.u_KaliteDurumu }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Receipt History -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-12\">\r\n <div class=\"fw-semibold mb-1\" style=\"font-size: 13px;\">\r\n \u00DCretimden Giri\u015F Hareketleri\r\n </div>\r\n <dx-data-grid [dataSource]=\"workOrderInfo.receiptHistory\" [showBorders]=\"true\" [columnAutoWidth]=\"true\"\r\n [wordWrapEnabled]=\"false\" [rowAlternationEnabled]=\"true\" [hoverStateEnabled]=\"true\"\r\n [noDataText]=\"'Hen\u00FCz giri\u015F hareketi bulunmamaktad\u0131r.'\" [height]=\"'auto'\">\r\n <dxo-scrolling mode=\"standard\"></dxo-scrolling>\r\n <dxo-paging [enabled]=\"false\"></dxo-paging>\r\n <dxi-column caption=\"#\" name=\"rowNum\" [width]=\"40\" alignment=\"center\" [calculateCellValue]=\"calcRowIndex\"></dxi-column>\r\n <dxi-column dataField=\"docNum\" caption=\"Belge No\" [minWidth]=\"110\" alignment=\"center\"></dxi-column>\r\n <dxi-column dataField=\"batchNum\" caption=\"Parti No\" [minWidth]=\"130\"></dxi-column>\r\n <dxi-column dataField=\"packQuantity\" caption=\"Koli Adedi\" dataType=\"number\" [minWidth]=\"75\" alignment=\"right\"></dxi-column>\r\n <dxi-column dataField=\"whsName\" caption=\"Depo\" [minWidth]=\"100\"></dxi-column>\r\n <dxi-column dataField=\"docStatus\" caption=\"Durum\" [minWidth]=\"105\" alignment=\"center\"\r\n [calculateCellValue]=\"calcDocStatus\">\r\n </dxi-column>\r\n <dxi-column dataField=\"userCode\" caption=\"Kullan\u0131c\u0131\" [minWidth]=\"80\" alignment=\"center\"></dxi-column>\r\n <dxo-summary>\r\n <dxi-total-item column=\"docNum\" summaryType=\"count\" displayFormat=\"Toplam\"></dxi-total-item>\r\n <dxi-total-item column=\"packQuantity\" summaryType=\"sum\" displayFormat=\"{0}\" [valueFormat]=\"formatNumber\"></dxi-total-item>\r\n </dxo-summary>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: [".page-title{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i4.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i5.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i6.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i5.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i5.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i7.DxRadioGroupComponent, selector: "dx-radio-group", inputs: ["accessKey", "activeStateEnabled", "dataSource", "disabled", "displayExpr", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "isValid", "items", "itemTemplate", "layout", "name", "readOnly", "rtlEnabled", "tabIndex", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueExpr", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "dataSourceChange", "disabledChange", "displayExprChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "isValidChange", "itemsChange", "itemTemplateChange", "layoutChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "onBlur"] }] });
|
|
208
|
+
HitFillingReceiptFromProductionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitFillingReceiptFromProductionComponent, selector: "lib-hit-filling-receipt-from-production", viewQueries: [{ propertyName: "nmbBoxIsEmriNo", first: true, predicate: ["isEmriNoRef"], descendants: true }, { propertyName: "radioPaletTipi", first: true, predicate: ["paletTipiRef"], descendants: true }, { propertyName: "nmbBoxKoliAdet", first: true, predicate: ["koliAdetRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n \r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef \r\n class=\"me-1\" \r\n style=\"width:100%;\"\r\n label=\"\u0130\u015F Emri No\"\r\n [(value)]=\"isEmriNo\"\r\n (onChange)=\"getProductionOrder()\" \r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" \r\n icon=\"search\" \r\n type=\"default\" \r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-button>\r\n </div>\r\n\r\n <!-- Work Order Information -->\r\n <div class=\"mt-3\" *ngIf=\"isWorkOrderLoaded && workOrderInfo\">\r\n <!-- Product Info -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Kodu\" \r\n [(value)]=\"workOrderInfo.itemCode\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Ad\u0131\" \r\n [(value)]=\"workOrderInfo.itemName\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Planlanan Miktar\" \r\n [(value)]=\"workOrderInfo.plannedQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Tamamlanan Miktar\" \r\n [(value)]=\"workOrderInfo.cmpltQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Depo\" \r\n [(value)]=\"workOrderInfo.warehouse\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Ambalaj Lot\" \r\n [(value)]=\"workOrderInfo.u_TRKAMBALAJLOT\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Pallet Type Selection -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-md-12\">\r\n <dx-radio-group #paletTipiRef\r\n [items]=\"paletTipleri\"\r\n layout=\"horizontal\"\r\n [(value)]=\"paletTipi\"\r\n (onValueChanged)=\"onPaletTipiChange()\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n\r\n <!-- Koli Count for KISMI Pallet -->\r\n <div class=\"row mt-2\" *ngIf=\"paletTipi === 'KISMI'\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box #koliAdetRef\r\n label=\"Koli Adedi\"\r\n [(value)]=\"koliAdet\"\r\n (onValueChanged)=\"onKoliAdetChange()\"\r\n [min]=\"1\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Calculated Total Quantity -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Toplam Miktar (Adet)\"\r\n [(value)]=\"toplamMiktar\"\r\n [disabled]=\"true\"\r\n [stylingMode]=\"'filled'\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Koli \u0130\u00E7i Adet\"\r\n [(value)]=\"workOrderInfo.salPackUn\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Quality Status Info -->\r\n <div class=\"row mt-2\" *ngIf=\"workOrderInfo.u_KaliteDurumu\">\r\n <div class=\"col-md-12\">\r\n <div class=\"alert alert-info\" role=\"alert\">\r\n <strong>Kalite Durumu:</strong> {{ workOrderInfo.u_KaliteDurumu }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".page-title{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i4.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i5.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i5.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxRadioGroupComponent, selector: "dx-radio-group", inputs: ["accessKey", "activeStateEnabled", "dataSource", "disabled", "displayExpr", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "isValid", "items", "itemTemplate", "layout", "name", "readOnly", "rtlEnabled", "tabIndex", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueExpr", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "dataSourceChange", "disabledChange", "displayExprChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "isValidChange", "itemsChange", "itemTemplateChange", "layoutChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "onBlur"] }] });
|
|
213
209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionComponent, decorators: [{
|
|
214
210
|
type: Component,
|
|
215
|
-
args: [{ selector: 'lib-hit-filling-receipt-from-production', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef class=\"me-1\" style=\"width:100%;\"
|
|
211
|
+
args: [{ selector: 'lib-hit-filling-receipt-from-production', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n \r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef \r\n class=\"me-1\" \r\n style=\"width:100%;\"\r\n label=\"\u0130\u015F Emri No\"\r\n [(value)]=\"isEmriNo\"\r\n (onChange)=\"getProductionOrder()\" \r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" \r\n icon=\"search\" \r\n type=\"default\" \r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-button>\r\n </div>\r\n\r\n <!-- Work Order Information -->\r\n <div class=\"mt-3\" *ngIf=\"isWorkOrderLoaded && workOrderInfo\">\r\n <!-- Product Info -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Kodu\" \r\n [(value)]=\"workOrderInfo.itemCode\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Ad\u0131\" \r\n [(value)]=\"workOrderInfo.itemName\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Planlanan Miktar\" \r\n [(value)]=\"workOrderInfo.plannedQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-number-box \r\n label=\"Tamamlanan Miktar\" \r\n [(value)]=\"workOrderInfo.cmpltQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Depo\" \r\n [(value)]=\"workOrderInfo.warehouse\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <dx-text-box \r\n label=\"Ambalaj Lot\" \r\n [(value)]=\"workOrderInfo.u_TRKAMBALAJLOT\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Pallet Type Selection -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-md-12\">\r\n <dx-radio-group #paletTipiRef\r\n [items]=\"paletTipleri\"\r\n layout=\"horizontal\"\r\n [(value)]=\"paletTipi\"\r\n (onValueChanged)=\"onPaletTipiChange()\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n\r\n <!-- Koli Count for KISMI Pallet -->\r\n <div class=\"row mt-2\" *ngIf=\"paletTipi === 'KISMI'\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box #koliAdetRef\r\n label=\"Koli Adedi\"\r\n [(value)]=\"koliAdet\"\r\n (onValueChanged)=\"onKoliAdetChange()\"\r\n [min]=\"1\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Calculated Total Quantity -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Toplam Miktar (Adet)\"\r\n [(value)]=\"toplamMiktar\"\r\n [disabled]=\"true\"\r\n [stylingMode]=\"'filled'\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Koli \u0130\u00E7i Adet\"\r\n [(value)]=\"workOrderInfo.salPackUn\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Quality Status Info -->\r\n <div class=\"row mt-2\" *ngIf=\"workOrderInfo.u_KaliteDurumu\">\r\n <div class=\"col-md-12\">\r\n <div class=\"alert alert-info\" role=\"alert\">\r\n <strong>Kalite Durumu:</strong> {{ workOrderInfo.u_KaliteDurumu }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".page-title{margin:0;padding:0}\n"] }]
|
|
216
212
|
}], ctorParameters: function () { return [{ type: i1.HitFillingReceiptFromProductionService }, { type: i2.ConfirmationService }, { type: i0.NgZone }]; }, propDecorators: { nmbBoxIsEmriNo: [{
|
|
217
213
|
type: ViewChild,
|
|
218
214
|
args: ['isEmriNoRef', { static: false }]
|
|
@@ -223,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
223
219
|
type: ViewChild,
|
|
224
220
|
args: ['koliAdetRef', { static: false }]
|
|
225
221
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFlN0QsTUFBTSxPQUFPLHdDQUF3QztJQWlCbkQsWUFDVSxPQUErQyxFQUMvQyxZQUFpQyxFQUNqQyxNQUFjO1FBRmQsWUFBTyxHQUFQLE9BQU8sQ0FBd0M7UUFDL0MsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFkeEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFFMUMsa0JBQWtCO1FBQ2xCLGNBQVMsR0FBVyxLQUFLLENBQUMsQ0FBQyxlQUFlO1FBQzFDLGlCQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQWdNekIsaUJBQVksR0FBRyxD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O2dCQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUlBalBVLHdDQUF3Qzt5SEFBeEMsd0NBQXdDLCtYQ2ZyRCw4NE5Bc0pXOzJGRHZJRSx3Q0FBd0M7a0JBTHBELFNBQVM7K0JBQ0UseUNBQXlDO29MQUtOLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRyxjQUFjO3NCQUEzRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeE51bWJlckJveENvbXBvbmVudCwgRHhSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uU2VydmljZSxcclxuICBHZXRXb3JrT3JkZXJJbmZvRHRvLFxyXG4gIFdvcmtPcmRlckxpbmVEdG8sXHJcbiAgUmVjZWlwdEhpc3RvcnlJdGVtRHRvXHJcbn0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnaXNFbXJpTm9SZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94SXNFbXJpTm86IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3BhbGV0VGlwaVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSByYWRpb1BhbGV0VGlwaTogRHhSYWRpb0dyb3VwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2tvbGlBZGV0UmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveEtvbGlBZGV0OiBEeE51bWJlckJveENvbXBvbmVudDtcclxuXHJcbiAgaXNFbXJpTm86IG51bWJlcjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzV29ya09yZGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgd29ya09yZGVySW5mbzogR2V0V29ya09yZGVySW5mb0R0byA9IG51bGw7XHJcbiAgXHJcbiAgLy8gUGFsbGV0IGNvbnRyb2xzXHJcbiAgcGFsZXRUaXBpOiBzdHJpbmcgPSAnVEFNJzsgLy8gVEFNIG9yIEtJU01JXHJcbiAgcGFsZXRUaXBsZXJpID0gWydUQU0nLCAnS0lTTUknXTtcclxuICBrb2xpQWRldDogbnVtYmVyID0gbnVsbDtcclxuICB0b3BsYW1NaWt0YXI6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBJbml0aWFsaXplXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmZvY3VzT25Jc0VtcmlObygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UHJvZHVjdGlvbk9yZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaU5vKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFdvcmtPcmRlckluZm8odGhpcy5pc0VtcmlObykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsICYmIHJlc3BvbnNlLml0ZW1zKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtPcmRlckluZm8gPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgZGVmYXVsdCB2YWx1ZXMgZm9yIFRBTSBwYWxsZXRcclxuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3RhdHVzJC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhbGV0VGlwaUNoYW5nZSgpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hLb2xpQWRldD8uaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS29saUFkZXRDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICB9XHJcblxyXG4gIGNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKSB7XHJcbiAgICBpZiAoIXRoaXMud29ya09yZGVySW5mbykge1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IDA7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzYWxQYWNrVW4gPSB0aGlzLndvcmtPcmRlckluZm8uc2FsUGFja1VuIHx8IDA7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICh0aGlzLnBhbGV0VGlwaSA9PT0gJ1RBTScpIHtcclxuICAgICAgLy8gVGFtIFBhbGV0OiBQYWxsZXQgaGVpZ2h0IMOXIFBpZWNlcyBwZXIgYm94XHJcbiAgICAgIGNvbnN0IHBhbGV0WXVrc2VrbGlrID0gdGhpcy53b3JrT3JkZXJJbmZvLnVfREtwYWxldHl1c2VrbGlrIHx8IDA7XHJcbiAgICAgIHRoaXMudG9wbGFtTWlrdGFyID0gcGFsZXRZdWtzZWtsaWsgKiBzYWxQYWNrVW47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBLxLFzbWkgUGFsZXQ6IEtvbGkgY291bnQgw5cgUGllY2VzIHBlciBib3hcclxuICAgICAgY29uc3Qga29saUFkZXQgPSB0aGlzLmtvbGlBZGV0IHx8IDA7XHJcbiAgICAgIGNvbnN0IGtpc21pTWlrdGFyID0ga29saUFkZXQgKiBzYWxQYWNrVW47XHJcbiAgICAgIFxyXG4gICAgICAvLyBDYWxjdWxhdGUgVEFNIHBhbGxldCBxdWFudGl0eSBmb3IgY29tcGFyaXNvblxyXG4gICAgICBjb25zdCBwYWxldFl1a3Nla2xpayA9IHRoaXMud29ya09yZGVySW5mby51X0RLcGFsZXR5dXNla2xpayB8fCAwO1xyXG4gICAgICBjb25zdCB0YW1QYWxldE1pa3RhciA9IHBhbGV0WXVrc2VrbGlrICogc2FsUGFja1VuO1xyXG4gICAgICBcclxuICAgICAgLy8gS0lTTUkgcXVhbnRpdHkgc2hvdWxkIG5vdCBleGNlZWQgVEFNIHBhbGxldCBxdWFudGl0eVxyXG4gICAgICBpZiAoa2lzbWlNaWt0YXIgPiB0YW1QYWxldE1pa3Rhcikge1xyXG4gICAgICAgIHRoaXMudG9wbGFtTWlrdGFyID0gdGFtUGFsZXRNaWt0YXI7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gUmVzZXQgdG8gbWF4aW11bSBhbGxvd2VkIHZhbHVlIGFzeW5jaHJvbm91c2x5IHRvIGF2b2lkIGNoYW5nZSBkZXRlY3Rpb24gbG9vcFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5rb2xpQWRldCA9IHBhbGV0WXVrc2VrbGlrO1xyXG4gICAgICAgIH0sIDApO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBLb2xpIGFkZWRpICR7cGFsZXRZdWtzZWtsaWt9J2kgZ2XDp2VtZXohIChUQU0gcGFsZXQgbWlrdGFyxLE6ICR7dGFtUGFsZXRNaWt0YXJ9KWAsIHtcclxuICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9wbGFtTWlrdGFyID0ga2lzbWlNaWt0YXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmUoKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHwgdGhpcy5pc1NhdmluZykge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCAnTMO8dGZlbiB0w7xtIGFsYW5sYXLEsSBkb2xkdXJ1biEnLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgY29tcGxldGVkIHF1YW50aXR5IHdpbGwgZXhjZWVkIHBsYW5uZWQgcXVhbnRpdHlcclxuICAgIGNvbnN0IHJlbWFpbmluZ1F0eSA9IHRoaXMud29ya09yZGVySW5mby5wbGFubmVkUXR5IC0gdGhpcy53b3JrT3JkZXJJbmZvLmNtcGx0UXR5O1xyXG4gICAgaWYgKHRoaXMudG9wbGFtTWlrdGFyID4gcmVtYWluaW5nUXR5KSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBHaXJpbGVuIG1pa3RhciAoJHt0aGlzLnRvcGxhbU1pa3Rhcn0pIGthbGFuIG1pa3RhcsSxICgke3JlbWFpbmluZ1F0eX0pIGHFn8SxeW9yIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhdmVEYXRhID0ge1xyXG4gICAgICBkb2NFbnRyeTogdGhpcy5pc0VtcmlObyxcclxuICAgICAgcGFsbGV0VHlwZTogdGhpcy5wYWxldFRpcGksXHJcbiAgICAgIGtvbGlDb3VudDogdGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgPyB0aGlzLmtvbGlBZGV0IDogbnVsbCxcclxuICAgICAgdG90YWxRdWFudGl0eTogdGhpcy50b3BsYW1NaWt0YXIsXHJcbiAgICAgIHdhcmVob3VzZUNvZGU6IHRoaXMud29ya09yZGVySW5mby53YXJlaG91c2UsXHJcbiAgICAgIGJhdGNoTnVtYmVyOiAnJywgLy8gQmF0Y2ggbnVtYmVyIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IFNBUFxyXG4gICAgICBjb21wb25lbnRzVG9Db25zdW1lOiB0aGlzLnByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlUmVjZWlwdChzYXZlRGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdWNjZXNzKCcnLCAnw5xyZXRpbWRlbiBnaXJpxZ8gYmHFn2FyxLF5bGEgZ2Vyw6dla2xlxZ90aXJpbGRpIScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKCk6IGFueVtdIHtcclxuICAgIGlmICghdGhpcy53b3JrT3JkZXJJbmZvIHx8ICF0aGlzLndvcmtPcmRlckluZm8ubGluZXMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcclxuICAgIGNvbnN0IGl0ZW1Db2RlID0gdGhpcy53b3JrT3JkZXJJbmZvLml0ZW1Db2RlO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIFlNIG9yIDE1MSogcHJvZHVjdFxyXG4gICAgY29uc3QgaXNZTSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJ1lNJyk7XHJcbiAgICBjb25zdCBpczE1MSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJzE1MScpO1xyXG5cclxuICAgIC8vIEdldCBjb250cm9sbGVkIGxpbmVzIChZTS8xNTEqIGl0ZW1zIG1hcmtlZCB3aXRoIFVfS29udHJvbD0nRScpXHJcbiAgICBjb25zdCBjb250cm9sbGVkTGluZXMgPSB0aGlzLndvcmtPcmRlckluZm8ubGluZXMuZmlsdGVyKGxpbmUgPT4gXHJcbiAgICAgIGxpbmUuaXNDb250cm9sbGVkICYmIGxpbmUuYmF0Y2hOdW1iZXJcclxuICAgICk7XHJcblxyXG4gICAgLy8gRm9yIFlNLzE1MSogcHJvZHVjdHMsIGNvbnN1bWUgYnkgbG90IGZyb20gY29udHJvbCBzY3JlZW5cclxuICAgIGZvciAoY29uc3QgbGluZSBvZiBjb250cm9sbGVkTGluZXMpIHtcclxuICAgICAgICBjb21wb25lbnRzLnB1c2goe1xyXG4gICAgICAgICAgaXRlbUNvZGU6IGxpbmUuaXRlbUNvZGUsXHJcbiAgICAgICAgICBxdWFudGl0eTogbGluZS5pc3N1ZWRRdHksXHJcbiAgICAgICAgICB3YXJlaG91c2VDb2RlOiBsaW5lLndhcmVob3VzZSxcclxuICAgICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyLFxyXG4gICAgICAgICAgYmFzZUxpbmU6IGxpbmUubGluZU51bVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBvdGhlciBjb21wb25lbnRzLCB1c2UgXCJUZXlpdCBzb25yYXPEsSBvdG9tYXRpayDDp2VrbWVcIiBsb2dpY1xyXG4gICAgLy8gKFRoaXMgd291bGQgYmUgaGFuZGxlZCBieSB0aGUgYmFja2VuZCB3aXRoIEZJRk8gZm9yIGJhdGNoL3NlcmlhbCBpdGVtcylcclxuXHJcbiAgICByZXR1cm4gY29tcG9uZW50cztcclxuICB9XHJcblxyXG4gIGNhbGNSb3dJbmRleCA9IChyb3c6IFJlY2VpcHRIaXN0b3J5SXRlbUR0byk6IG51bWJlciA9PlxyXG4gICAgKHRoaXMud29ya09yZGVySW5mbz8ucmVjZWlwdEhpc3Rvcnk/LmluZGV4T2Yocm93KSA/PyAtMSkgKyAxO1xyXG5cclxuICBjYWxjRG9jU3RhdHVzID0gKHJvdzogUmVjZWlwdEhpc3RvcnlJdGVtRHRvKTogc3RyaW5nID0+XHJcbiAgICByb3cuZG9jU3RhdHVzID09PSAnQycgPyAnVGFtYW1sYW5kxLEnIDogJ0Jla2xlbWVkZSc7XHJcblxyXG4gIGZvcm1hdE51bWJlciA9ICh2YWx1ZTogbnVtYmVyKSA9PiB2YWx1ZT8udG9Mb2NhbGVTdHJpbmcoJ3RyLVRSJykgPz8gJyc7XHJcblxyXG5cclxuICBjbGVhckFsbCgpIHtcclxuICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpTm8gPSBudWxsO1xyXG4gICAgdGhpcy53b3JrT3JkZXJJbmZvID0gbnVsbDtcclxuICAgIHRoaXMucGFsZXRUaXBpID0gJ1RBTSc7XHJcbiAgICB0aGlzLmtvbGlBZGV0ID0gbnVsbDtcclxuICAgIHRoaXMudG9wbGFtTWlrdGFyID0gMDtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTYXZlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNFbXJpTm8gfHwgXHJcbiAgICAgICAgICAgIXRoaXMud29ya09yZGVySW5mbyB8fCBcclxuICAgICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA8PSAwIHx8XHJcbiAgICAgICAgICAgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknICYmICghdGhpcy5rb2xpQWRldCB8fCB0aGlzLmtvbGlBZGV0IDw9IDApKSB8fFxyXG4gICAgICAgICAgIHRoaXMuaXNTYXZpbmc7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICDDnHJldGltZGVuIEdpcmnFn1xyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmVCdXR0b25EaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjayBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgw5xyZXRpbWRlbiBHaXJpxZ8gWWFwXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1icm9vbSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgVGVtaXpsZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDB2aCAtIDI0MXB4KTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgIDwhLS0gV29yayBPcmRlciBJbnB1dCAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2lzRW1yaU5vUmVmIGNsYXNzPVwibWUtMVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBsYWJlbD1cIsSwxZ8gRW1yaSBOb1wiIFsodmFsdWUpXT1cImlzRW1yaU5vXCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgW2Rpc2FibGVkXT1cImlzV29ya09yZGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNXb3JrT3JkZXJMb2FkZWRcIj5cclxuICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFdvcmsgT3JkZXIgSW5mb3JtYXRpb24gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJpc1dvcmtPcmRlckxvYWRlZCAmJiB3b3JrT3JkZXJJbmZvXCI+XHJcbiAgICAgICAgPCEtLSBQcm9kdWN0IEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBsYWJlbD1cIsOccsO8biBLb2R1XCIgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5pdGVtQ29kZVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggbGFiZWw9XCLDnHLDvG4gQWTEsVwiIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uaXRlbU5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiUGxhbmxhbmFuIE1pa3RhclwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ucGxhbm5lZFF0eVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVGFtYW1sYW5hbiBNaWt0YXJcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLmNtcGx0UXR5XCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiRGVwb1wiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ud2FyZWhvdXNlXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiQW1iYWxhaiBMb3RcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnVfVFJLQU1CQUxBSkxPVFwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBQYWxsZXQgVHlwZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkeC1yYWRpby1ncm91cCAjcGFsZXRUaXBpUmVmIFtpdGVtc109XCJwYWxldFRpcGxlcmlcIiBsYXlvdXQ9XCJob3Jpem9udGFsXCIgWyh2YWx1ZSldPVwicGFsZXRUaXBpXCJcclxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25QYWxldFRpcGlDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2R4LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gS29saSBDb3VudCBmb3IgS0lTTUkgUGFsbGV0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiICpuZ0lmPVwicGFsZXRUaXBpID09PSAnS0lTTUknXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggI2tvbGlBZGV0UmVmIGxhYmVsPVwiS29saSBBZGVkaVwiIFsodmFsdWUpXT1cImtvbGlBZGV0XCIgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uS29saUFkZXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCIxXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIENhbGN1bGF0ZWQgVG90YWwgUXVhbnRpdHkgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggbGFiZWw9XCJUb3BsYW0gTWlrdGFyIChBZGV0KVwiIFsodmFsdWUpXT1cInRvcGxhbU1pa3RhclwiIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc3R5bGluZ01vZGVdPVwiJ2ZpbGxlZCdcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggbGFiZWw9XCJLb2xpIMSww6dpIEFkZXRcIiBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnNhbFBhY2tVblwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFF1YWxpdHkgU3RhdHVzIEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCIgKm5nSWY9XCJ3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5LYWxpdGUgRHVydW11Ojwvc3Ryb25nPiB7eyB3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11IH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUmVjZWlwdCBIaXN0b3J5IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgbWItMVwiIHN0eWxlPVwiZm9udC1zaXplOiAxM3B4O1wiPlxyXG4gICAgICAgICAgICAgIMOccmV0aW1kZW4gR2lyacWfIEhhcmVrZXRsZXJpXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtkYXRhU291cmNlXT1cIndvcmtPcmRlckluZm8ucmVjZWlwdEhpc3RvcnlcIiBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3dvcmRXcmFwRW5hYmxlZF09XCJmYWxzZVwiIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCInSGVuw7x6IGdpcmnFnyBoYXJla2V0aSBidWx1bm1hbWFrdGFkxLFyLidcIiBbaGVpZ2h0XT1cIidhdXRvJ1wiPlxyXG4gICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJzdGFuZGFyZFwiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCJmYWxzZVwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBjYXB0aW9uPVwiI1wiIG5hbWU9XCJyb3dOdW1cIiBbd2lkdGhdPVwiNDBcIiBhbGlnbm1lbnQ9XCJjZW50ZXJcIiBbY2FsY3VsYXRlQ2VsbFZhbHVlXT1cImNhbGNSb3dJbmRleFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NOdW1cIiBjYXB0aW9uPVwiQmVsZ2UgTm9cIiBbbWluV2lkdGhdPVwiMTEwXCIgYWxpZ25tZW50PVwiY2VudGVyXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImJhdGNoTnVtXCIgY2FwdGlvbj1cIlBhcnRpIE5vXCIgW21pbldpZHRoXT1cIjEzMFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwYWNrUXVhbnRpdHlcIiBjYXB0aW9uPVwiS29saSBBZGVkaVwiIGRhdGFUeXBlPVwibnVtYmVyXCIgW21pbldpZHRoXT1cIjc1XCIgYWxpZ25tZW50PVwicmlnaHRcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwid2hzTmFtZVwiIGNhcHRpb249XCJEZXBvXCIgW21pbldpZHRoXT1cIjEwMFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NTdGF0dXNcIiBjYXB0aW9uPVwiRHVydW1cIiBbbWluV2lkdGhdPVwiMTA1XCIgYWxpZ25tZW50PVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgIFtjYWxjdWxhdGVDZWxsVmFsdWVdPVwiY2FsY0RvY1N0YXR1c1wiPlxyXG4gICAgICAgICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1c2VyQ29kZVwiIGNhcHRpb249XCJLdWxsYW7EsWPEsVwiIFttaW5XaWR0aF09XCI4MFwiIGFsaWdubWVudD1cImNlbnRlclwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZHhvLXN1bW1hcnk+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW0gY29sdW1uPVwiZG9jTnVtXCIgc3VtbWFyeVR5cGU9XCJjb3VudFwiIGRpc3BsYXlGb3JtYXQ9XCJUb3BsYW1cIj48L2R4aS10b3RhbC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPGR4aS10b3RhbC1pdGVtIGNvbHVtbj1cInBhY2tRdWFudGl0eVwiIHN1bW1hcnlUeXBlPVwic3VtXCIgZGlzcGxheUZvcm1hdD1cInswfVwiIFt2YWx1ZUZvcm1hdF09XCJmb3JtYXROdW1iZXJcIj48L2R4aS10b3RhbC1pdGVtPlxyXG4gICAgICAgICAgICAgIDwvZHhvLXN1bW1hcnk+XHJcbiAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBaUJuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWR4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUUxQyxrQkFBa0I7UUFDbEIsY0FBUyxHQUFXLEtBQUssQ0FBQyxDQUFDLGVBQWU7UUFDMUMsaUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBTXRCLENBQUM7SUFFSixRQUFR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QTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhOdW1iZXJCb3hDb21wb25lbnQsIER4UmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFxyXG4gIEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25TZXJ2aWNlLFxyXG4gIEdldFdvcmtPcmRlckluZm9EdG8sXHJcbiAgV29ya09yZGVyTGluZUR0b1xyXG59IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lzRW1yaU5vUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveElzRW1yaU5vOiBEeE51bWJlckJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdwYWxldFRpcGlSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgcmFkaW9QYWxldFRpcGk6IER4UmFkaW9Hcm91cENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdrb2xpQWRldFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBubWJCb3hLb2xpQWRldDogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcblxyXG4gIGlzRW1yaU5vOiBudW1iZXI7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dvcmtPcmRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdvcmtPcmRlckluZm86IEdldFdvcmtPcmRlckluZm9EdG8gPSBudWxsO1xyXG4gIFxyXG4gIC8vIFBhbGxldCBjb250cm9sc1xyXG4gIHBhbGV0VGlwaTogc3RyaW5nID0gJ1RBTSc7IC8vIFRBTSBvciBLSVNNSVxyXG4gIHBhbGV0VGlwbGVyaSA9IFsnVEFNJywgJ0tJU01JJ107XHJcbiAga29saUFkZXQ6IG51bWJlciA9IG51bGw7XHJcbiAgdG9wbGFtTWlrdGFyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gSW5pdGlhbGl6ZVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5nZXRXb3JrT3JkZXJJbmZvKHRoaXMuaXNFbXJpTm8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy53b3JrT3JkZXJJbmZvID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRlZmF1bHQgdmFsdWVzIGZvciBUQU0gcGFsbGV0XHJcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWxldFRpcGlDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94S29saUFkZXQ/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktvbGlBZGV0Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVUb3RhbFF1YW50aXR5KCkge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8pIHtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2FsUGFja1VuID0gdGhpcy53b3JrT3JkZXJJbmZvLnNhbFBhY2tVbiB8fCAwO1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAodGhpcy5wYWxldFRpcGkgPT09ICdUQU0nKSB7XHJcbiAgICAgIC8vIFRhbSBQYWxldDogUGFsbGV0IGhlaWdodCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBwYWxldFl1a3Nla2xpayA9IHRoaXMud29ya09yZGVySW5mby51X0RLcGFsZXR5dXNla2xpayB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHBhbGV0WXVrc2VrbGlrICogc2FsUGFja1VuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gS8Sxc21pIFBhbGV0OiBLb2xpIGNvdW50IMOXIFBpZWNlcyBwZXIgYm94XHJcbiAgICAgIGNvbnN0IGtvbGlBZGV0ID0gdGhpcy5rb2xpQWRldCB8fCAwO1xyXG4gICAgICBjb25zdCBraXNtaU1pa3RhciA9IGtvbGlBZGV0ICogc2FsUGFja1VuO1xyXG4gICAgICBcclxuICAgICAgLy8gQ2FsY3VsYXRlIFRBTSBwYWxsZXQgcXVhbnRpdHkgZm9yIGNvbXBhcmlzb25cclxuICAgICAgY29uc3QgcGFsZXRZdWtzZWtsaWsgPSB0aGlzLndvcmtPcmRlckluZm8udV9ES3BhbGV0eXVzZWtsaWsgfHwgMDtcclxuICAgICAgY29uc3QgdGFtUGFsZXRNaWt0YXIgPSBwYWxldFl1a3Nla2xpayAqIHNhbFBhY2tVbjtcclxuICAgICAgXHJcbiAgICAgIC8vIEtJU01JIHF1YW50aXR5IHNob3VsZCBub3QgZXhjZWVkIFRBTSBwYWxsZXQgcXVhbnRpdHlcclxuICAgICAgaWYgKGtpc21pTWlrdGFyID4gdGFtUGFsZXRNaWt0YXIpIHtcclxuICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHRhbVBhbGV0TWlrdGFyO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFJlc2V0IHRvIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBhc3luY2hyb25vdXNseSB0byBhdm9pZCBjaGFuZ2UgZGV0ZWN0aW9uIGxvb3BcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMua29saUFkZXQgPSBwYWxldFl1a3Nla2xpaztcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCBgS29saSBhZGVkaSAke3BhbGV0WXVrc2VrbGlrfSdpIGdlw6dlbWV6ISAoVEFNIHBhbGV0IG1pa3RhcsSxOiAke3RhbVBhbGV0TWlrdGFyfSlgLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IGtpc21pTWlrdGFyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlKCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpTm8gfHwgIXRoaXMud29ya09yZGVySW5mbyB8fCB0aGlzLnRvcGxhbU1pa3RhciA8PSAwIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0zDvHRmZW4gdMO8bSBhbGFubGFyxLEgZG9sZHVydW4hJywge1xyXG4gICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIGNvbXBsZXRlZCBxdWFudGl0eSB3aWxsIGV4Y2VlZCBwbGFubmVkIHF1YW50aXR5XHJcbiAgICBjb25zdCByZW1haW5pbmdRdHkgPSB0aGlzLndvcmtPcmRlckluZm8ucGxhbm5lZFF0eSAtIHRoaXMud29ya09yZGVySW5mby5jbXBsdFF0eTtcclxuICAgIGlmICh0aGlzLnRvcGxhbU1pa3RhciA+IHJlbWFpbmluZ1F0eSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCBgR2lyaWxlbiBtaWt0YXIgKCR7dGhpcy50b3BsYW1NaWt0YXJ9KSBrYWxhbiBtaWt0YXLEsSAoJHtyZW1haW5pbmdRdHl9KSBhxZ/EsXlvciFgLCB7XHJcbiAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzYXZlRGF0YSA9IHtcclxuICAgICAgZG9jRW50cnk6IHRoaXMuaXNFbXJpTm8sXHJcbiAgICAgIHBhbGxldFR5cGU6IHRoaXMucGFsZXRUaXBpLFxyXG4gICAgICBrb2xpQ291bnQ6IHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknID8gdGhpcy5rb2xpQWRldCA6IG51bGwsXHJcbiAgICAgIHRvdGFsUXVhbnRpdHk6IHRoaXMudG9wbGFtTWlrdGFyLFxyXG4gICAgICB3YXJlaG91c2VDb2RlOiB0aGlzLndvcmtPcmRlckluZm8ud2FyZWhvdXNlLFxyXG4gICAgICBiYXRjaE51bWJlcjogJycsIC8vIEJhdGNoIG51bWJlciB3aWxsIGJlIGdlbmVyYXRlZCBieSBTQVBcclxuICAgICAgY29tcG9uZW50c1RvQ29uc3VtZTogdGhpcy5wcmVwYXJlQ29tcG9uZW50c1RvQ29uc3VtZSgpXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVJlY2VpcHQoc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ8OccmV0aW1kZW4gZ2lyacWfIGJhxZ9hcsSxeWxhIGdlcsOnZWtsZcWfdGlyaWxkaSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQ29tcG9uZW50c1RvQ29uc3VtZSgpOiBhbnlbXSB7XHJcbiAgICBpZiAoIXRoaXMud29ya09yZGVySW5mbyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvLmxpbmVzKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb21wb25lbnRzID0gW107XHJcbiAgICBjb25zdCBpdGVtQ29kZSA9IHRoaXMud29ya09yZGVySW5mby5pdGVtQ29kZTtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBZTSBvciAxNTEqIHByb2R1Y3RcclxuICAgIGNvbnN0IGlzWU0gPSBpdGVtQ29kZS5zdGFydHNXaXRoKCdZTScpO1xyXG4gICAgY29uc3QgaXMxNTEgPSBpdGVtQ29kZS5zdGFydHNXaXRoKCcxNTEnKTtcclxuXHJcbiAgICAvLyBHZXQgY29udHJvbGxlZCBsaW5lcyAoWU0vMTUxKiBpdGVtcyBtYXJrZWQgd2l0aCBVX0tvbnRyb2w9J0UnKVxyXG4gICAgY29uc3QgY29udHJvbGxlZExpbmVzID0gdGhpcy53b3JrT3JkZXJJbmZvLmxpbmVzLmZpbHRlcihsaW5lID0+IFxyXG4gICAgICBsaW5lLmlzQ29udHJvbGxlZCAmJiBsaW5lLmJhdGNoTnVtYmVyXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEZvciBZTS8xNTEqIHByb2R1Y3RzLCBjb25zdW1lIGJ5IGxvdCBmcm9tIGNvbnRyb2wgc2NyZWVuXHJcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgY29udHJvbGxlZExpbmVzKSB7XHJcbiAgICAgICAgY29tcG9uZW50cy5wdXNoKHtcclxuICAgICAgICAgIGl0ZW1Db2RlOiBsaW5lLml0ZW1Db2RlLFxyXG4gICAgICAgICAgcXVhbnRpdHk6IGxpbmUuaXNzdWVkUXR5LFxyXG4gICAgICAgICAgd2FyZWhvdXNlQ29kZTogbGluZS53YXJlaG91c2UsXHJcbiAgICAgICAgICBiYXRjaE51bWJlcjogbGluZS5iYXRjaE51bWJlcixcclxuICAgICAgICAgIGJhc2VMaW5lOiBsaW5lLmxpbmVOdW1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGb3Igb3RoZXIgY29tcG9uZW50cywgdXNlIFwiVGV5aXQgc29ucmFzxLEgb3RvbWF0aWsgw6dla21lXCIgbG9naWNcclxuICAgIC8vIChUaGlzIHdvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGJhY2tlbmQgd2l0aCBGSUZPIGZvciBiYXRjaC9zZXJpYWwgaXRlbXMpXHJcblxyXG4gICAgcmV0dXJuIGNvbXBvbmVudHM7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbCgpIHtcclxuICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpTm8gPSBudWxsO1xyXG4gICAgdGhpcy53b3JrT3JkZXJJbmZvID0gbnVsbDtcclxuICAgIHRoaXMucGFsZXRUaXBpID0gJ1RBTSc7XHJcbiAgICB0aGlzLmtvbGlBZGV0ID0gbnVsbDtcclxuICAgIHRoaXMudG9wbGFtTWlrdGFyID0gMDtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTYXZlQnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNFbXJpTm8gfHwgXHJcbiAgICAgICAgICAgIXRoaXMud29ya09yZGVySW5mbyB8fCBcclxuICAgICAgICAgICB0aGlzLnRvcGxhbU1pa3RhciA8PSAwIHx8XHJcbiAgICAgICAgICAgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknICYmICghdGhpcy5rb2xpQWRldCB8fCB0aGlzLmtvbGlBZGV0IDw9IDApKSB8fFxyXG4gICAgICAgICAgIHRoaXMuaXNTYXZpbmc7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICDDnHJldGltZGVuIEdpcmnFn1xyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmVCdXR0b25EaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjayBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgw5xyZXRpbWRlbiBHaXJpxZ8gWWFwXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1icm9vbSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgVGVtaXpsZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQxcHgpOyBvdmVyZmxvdzogYXV0bztcIj5cclxuICAgICAgPCEtLSBXb3JrIE9yZGVyIElucHV0IC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjaXNFbXJpTm9SZWYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCLEsMWfIEVtcmkgTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImlzRW1yaU5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzV29ya09yZGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBcclxuICAgICAgICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIiBcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNXb3JrT3JkZXJMb2FkZWRcIj5cclxuICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFdvcmsgT3JkZXIgSW5mb3JtYXRpb24gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJpc1dvcmtPcmRlckxvYWRlZCAmJiB3b3JrT3JkZXJJbmZvXCI+XHJcbiAgICAgICAgPCEtLSBQcm9kdWN0IEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIsOccsO8biBLb2R1XCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5pdGVtQ29kZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLDnHLDvG4gQWTEsVwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uaXRlbU5hbWVcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiUGxhbmxhbmFuIE1pa3RhclwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ucGxhbm5lZFF0eVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVGFtYW1sYW5hbiBNaWt0YXJcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLmNtcGx0UXR5XCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiRGVwb1wiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8ud2FyZWhvdXNlXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiQW1iYWxhaiBMb3RcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnVfVFJLQU1CQUxBSkxPVFwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBQYWxsZXQgVHlwZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkeC1yYWRpby1ncm91cCAjcGFsZXRUaXBpUmVmXHJcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cInBhbGV0VGlwbGVyaVwiXHJcbiAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicGFsZXRUaXBpXCJcclxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25QYWxldFRpcGlDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2R4LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gS29saSBDb3VudCBmb3IgS0lTTUkgUGFsbGV0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiICpuZ0lmPVwicGFsZXRUaXBpID09PSAnS0lTTUknXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggI2tvbGlBZGV0UmVmXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJLb2xpIEFkZWRpXCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJrb2xpQWRldFwiXHJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uS29saUFkZXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCIxXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIENhbGN1bGF0ZWQgVG90YWwgUXVhbnRpdHkgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJUb3BsYW0gTWlrdGFyIChBZGV0KVwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwidG9wbGFtTWlrdGFyXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxpbmdNb2RlXT1cIidmaWxsZWQnXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiS29saSDEsMOnaSBBZGV0XCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnNhbFBhY2tVblwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUXVhbGl0eSBTdGF0dXMgSW5mbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIiAqbmdJZj1cIndvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgICA8c3Ryb25nPkthbGl0ZSBEdXJ1bXU6PC9zdHJvbmc+IHt7IHdvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXUgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuIl19
|
|
@@ -7,7 +7,7 @@ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
|
|
|
7
7
|
import { PageModule } from '@abp/ng.components/page';
|
|
8
8
|
import { HitFillingReceiptFromProductionComponent } from './hit-filling-receipt-from-production.component';
|
|
9
9
|
import { HitFillingReceiptFromProductionRoutingModule } from './hit-filling-receipt-from-production-routing.module';
|
|
10
|
-
import { DxButtonModule,
|
|
10
|
+
import { DxButtonModule, DxNumberBoxModule, DxTextBoxModule, DxRadioGroupModule } from 'devextreme-angular';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class HitFillingReceiptFromProductionModule {
|
|
13
13
|
}
|
|
@@ -22,7 +22,6 @@ HitFillingReceiptFromProductionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVers
|
|
|
22
22
|
NgbDropdownModule,
|
|
23
23
|
PageModule,
|
|
24
24
|
DxButtonModule,
|
|
25
|
-
DxDataGridModule,
|
|
26
25
|
DxNumberBoxModule,
|
|
27
26
|
DxTextBoxModule,
|
|
28
27
|
DxRadioGroupModule] });
|
|
@@ -36,7 +35,6 @@ HitFillingReceiptFromProductionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVers
|
|
|
36
35
|
NgbDropdownModule,
|
|
37
36
|
PageModule,
|
|
38
37
|
DxButtonModule,
|
|
39
|
-
DxDataGridModule,
|
|
40
38
|
DxNumberBoxModule,
|
|
41
39
|
DxTextBoxModule,
|
|
42
40
|
DxRadioGroupModule] });
|
|
@@ -55,7 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
55
53
|
NgbDropdownModule,
|
|
56
54
|
PageModule,
|
|
57
55
|
DxButtonModule,
|
|
58
|
-
DxDataGridModule,
|
|
59
56
|
DxNumberBoxModule,
|
|
60
57
|
DxTextBoxModule,
|
|
61
58
|
DxRadioGroupModule,
|
|
@@ -65,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
65
62
|
export function loadHitFillingReceiptFromProductionAsChild() {
|
|
66
63
|
return Promise.resolve(HitFillingReceiptFromProductionModule);
|
|
67
64
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwSCxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW9CNUcsTUFBTSxPQUFPLHFDQUFxQzs7a0lBQXJDLHFDQUFxQzttSUFBckMscUNBQXFDLGlCQWpCakMsd0NBQXdDLGFBRXJELDRDQUE0QztRQUM1QyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjttSUFHVCxxQ0FBcUMsWUFmOUMsNENBQTRDO1FBQzVDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2Ysa0JBQWtCOzJGQUdULHFDQUFxQztrQkFsQmpELFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQ3hELE9BQU8sRUFBRTt3QkFDUCw0Q0FBNEM7d0JBQzVDLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO2lCQUNGOztBQUdELE1BQU0sVUFBVSwwQ0FBMEM7SUFDeEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWVyY2lhbFVpTW9kdWxlIH0gZnJvbSAnQHZvbG8vYWJwLmNvbW1lcmNpYWwubmcudWknO1xyXG5pbXBvcnQgeyBQYWdlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQgeyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uUm91dGluZ01vZHVsZSB9IGZyb20gJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24tcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeEJ1dHRvbk1vZHVsZSwgRHhOdW1iZXJCb3hNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhSYWRpb0dyb3VwTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblJvdXRpbmdNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxyXG4gICAgRHhUZXh0Qm94TW9kdWxlLFxyXG4gICAgRHhSYWRpb0dyb3VwTW9kdWxlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25Bc0NoaWxkKCkge1xyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbk1vZHVsZSk7XHJcbn1cclxuIl19
|