tango-app-ui-manage-tickets 3.7.0-beta.48 → 3.7.0-beta.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +3 -3
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +3 -2
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +30 -24
- package/fesm2022/tango-app-ui-manage-tickets.mjs +33 -26
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -685,7 +685,8 @@ export class StartAuditComponent {
|
|
|
685
685
|
totalCount: totalfile?.totalfiles ? totalfile.totalfiles : 0,
|
|
686
686
|
retagCount: 0,
|
|
687
687
|
timeSpent: this.timePassed,
|
|
688
|
-
retagImage: []
|
|
688
|
+
retagImage: [],
|
|
689
|
+
draftedData: storedData
|
|
689
690
|
};
|
|
690
691
|
this.auditservice.saveDraft(inserobj).pipe(takeUntil(this.destroy$)).subscribe({
|
|
691
692
|
next: (res) => {
|
|
@@ -747,4 +748,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
747
748
|
type: HostListener,
|
|
748
749
|
args: ['window:keydown', ['$event']]
|
|
749
750
|
}] } });
|
|
750
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtYXVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL3N0YXJ0LWF1ZGl0L3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBR3BILE9BQU8sRUFBYyxPQUFPLEVBQXVCLE1BQU0sTUFBTSxDQUFDO0FBSWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQkFBbUI7SUE4SHBCO0lBQ0E7SUFDQTtJQUNBO0lBQXdCO0lBQ3hCO0lBQWdDO0lBQ2hDO0lBQTJDO0lBbElyRCxTQUFTLENBQU07SUFDZixZQUFZLENBQU07SUFDbEIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixVQUFVLENBQU07SUFDaEIsS0FBSyxHQUFRLEdBQUcsQ0FBQztJQUNqQixNQUFNLEdBQVEsRUFBRSxDQUFBO0lBQ2hCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixPQUFPLENBQU07SUFDYixhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLFNBQVMsR0FB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QUVELGFBQWE7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsbUZBQW1GO0lBRXZGLENBQUM7SUFDRCxhQUFhO1FBQ1gsbUVBQW1FO1FBQ25FLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsS0FBSztJQUNQLENBQUM7d0dBeHRCVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix3V0NuQmhDLCs2Y0E2S2M7OzRGRDFKRCxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzJTQStCQSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQVF6QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBd0JqQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIHZpZXdDaGlsZCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwaW5uZXInO1xyXG5pbXBvcnQgeyBSZW1vdmVBdWRpdENvbXBvbmVudCB9IGZyb20gJy4uL3JlbW92ZS1hdWRpdC9yZW1vdmUtYXVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuaW1wb3J0IHsgRXhjZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXhjZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vdmlld2NhdGVnb3J5L3ZpZXdjYXRlZ29yeS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3RhcnQtYXVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhcnRBdWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBqdW5raW1hZ2U6IGFueTtcclxuICBlbXBsb3llaW1hZ2U6IGFueTtcclxuICBmaWxlZGV0YWlsczogYW55ID0ge307XHJcbiAgZGF0YXJlYXNvbjogYW55O1xyXG4gIGxpbWl0OiBhbnkgPSA1MDA7XHJcbiAgbmV4dElkOiBhbnkgPSAnJ1xyXG4gIHNwaW5uZXJzdGFydCA9IHRydWVcclxuICBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhdWRpdElkOiBhbnk7XHJcbiAgY3VzdG9tZXJjb3VudCA9IDA7XHJcbiAganVua2NvdW50ID0gMDtcclxuICBlbXBsb3llZWNvdW50ID0gMDtcclxuICBkZW1vZ3JhcGhpYzogYW55O1xyXG4gIGlkOiBhbnkgPSAnJztcclxuICBxdWV1ZU5hbWU6IGFueSA9ICcnO1xyXG4gIGF1ZGl0bWFwcGluZ2RhdGE6IGFueTtcclxuICB0b3RhbGZpbGU6IGFueSA9IDA7XHJcbiAgYXVkaXRMb2FkaW5nID0gdHJ1ZTtcclxuICBiYWRnZSA9IGZhbHNlO1xyXG4gIGltYWdlbGlzdDogYW55ID0gXCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbG9hZGluZy1pbWcucG5nXCJcclxuICBzZWxlY3RlZDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcbiAgYXVkaXRMb2FkaW5nMSA9IHRydWU7XHJcbiAgTm9kYXRhID0gZmFsc2U7XHJcbiAgY291bnRlcjogYW55ID0gMTtcclxuICBjbGlja2VkSW1hZ2VzOiBib29sZWFuW10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtRHJhZnQnKSBjb25maXJtRHJhZnQ6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtZXJyb3InKSBjb25maXJtZXJyb3I6IGFueTtcclxuICBFcnJvcm1zZzogYW55O1xyXG4gIHN0b3JlZGV0YWlsczogYW55O1xyXG4gIG9wZW5tb2RlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGdldEJhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeTogYW55ID0gW11cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnNjcm9sbFwiLCBbXSlcclxuICBvblNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgICAgaWYgKE1hdGguY2VpbCh3aW5kb3cuaW5uZXJIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSkgPj0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQpIHsvL3RoaXMgY29uZGl0aW9uIGZhaWxlZCB3aGVuIHRoZSBicm93c2VyIGluc3BlY3Qgc2NyZWVuIG9wZW4gaW4gaG9yaXpvbnRhbFxyXG4gICAgICAgICAgaWYgKHRoaXMuc3Bpbm5lcnN0YXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoJ25leHRJZCcpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcmVzdWx0OiBhbnkgPSB3aW5kb3cuY29uZmlybShcIlNvbWV0aGluZyBXZW50IFdyb25nLiBQbGVhc2UgY2xlYXIgYnJvd3NlciBjYWNoZSBvciBVc2UgaW5jb2duaXRvIHdpbmRvd1wiKVxyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJPSyBidXR0b24gY2xpY2tlZCFcIik7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkFsZXJ0IGNsb3NlZCB3aXRob3V0IGNsaWNraW5nIE9LXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLm9wZW5tb2RlbCkgcmV0dXJuO1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ2cnIHx8IGV2ZW50LmNvZGUgPT09ICdLZXlHJykge1xyXG4gICAgICB2YXIgZ3JvdXAgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPT09IHRydWUpXHJcbiAgICAgIGlmIChncm91cC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKGdyb3VwLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IG11bHRpcGxlIGZpbGUgdGhlbiBhZGQgdG8gR3JvdXAnKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgZHVtbXlhcnJheSA9IGdyb3VwLnNoaWZ0KClcclxuICAgICAgICAgIHZhciBncm91cGltYWdlczogYW55ID0gW11cclxuICAgICAgICAgIGdyb3VwLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuc3BsaWNlKHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maW5kSW5kZXgoKHsgaW1nX25hbWUgfTogeyBpbWdfbmFtZTogc3RyaW5nIH0pID0+IGltZ19uYW1lID09IGRhdGEuaW1nX25hbWUpLCAxKTtcclxuICAgICAgICAgICAgZ3JvdXBpbWFnZXMucHVzaChkYXRhLm1hcHBlZGlkWzBdKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuZGVtb2dyYXBoaWMgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuZGVtb2dyYXBoaWMgPT09ICdkJykubGVuZ3RoO1xyXG4gICAgICAgICAgZHVtbXlhcnJheS5jb3VudCA9IGR1bW15YXJyYXkuY291bnQgKyBncm91cGltYWdlcy5sZW5ndGhcclxuICAgICAgICAgIGR1bW15YXJyYXkuc2VsZWN0ZWQgPSBmYWxzZVxyXG4gICAgICAgICAgZHVtbXlhcnJheS5kZW1vZ3JhcGhpYyA9ICcnXHJcbiAgICAgICAgICBkdW1teWFycmF5Lm1hcHBlZGlkID0gWy4uLmR1bW15YXJyYXkubWFwcGVkaWQsIC4uLmdyb3VwaW1hZ2VzXVxyXG4gICAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ1BsZWFzZSBTZWxlY3QgZmlsZSB0aGVuIGFkZCB0byBHcm91cCcpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHByZXNzZWQgPSAoZXZlbnQua2V5IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuY2F0ZWdvcnkuZmluZCgobTogYW55KSA9PiB7XHJcbiAgICAgIGlmICghbS5rZXkpIHJldHVybiBmYWxzZTtcclxuICAgICAgY29uc3QgbWFwS2V5ID0gbS5rZXkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgLy8gbWF0Y2ggYnkgZXZlbnQua2V5IChwcmVmZXJyZWQpIE9SIGJ5IGV2ZW50LmNvZGUgbGlrZSAnS2V5SidcclxuICAgICAgcmV0dXJuIHByZXNzZWQgPT09IG1hcEtleSB8fCBldmVudC5jb2RlID09PSBgS2V5JHttYXBLZXkudG9VcHBlckNhc2UoKX1gO1xyXG4gICAgfSk7XHJcbiAgICBjb25zb2xlLmxvZyhtYXRjaGVkKVxyXG4gICAgaWYgKCFtYXRjaGVkKSByZXR1cm5cclxuICAgIGlmIChtYXRjaGVkKSB7XHJcbiAgICAgIHZhciBuZXdEYXRhID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID09PSB0cnVlKVxyXG4gICAgICBpZiAobmV3RGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdmFyIG9sZERhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0obWF0Y2hlZD8udHlwZSkgfHwgJ3t9JylcclxuICAgICAgICBpZiAoTnVtYmVyKG9sZERhdGEubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICAgIG5ld0RhdGEgPSBbLi4ub2xkRGF0YSwgLi4ubmV3RGF0YV1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IG5ld0RhdGFcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gbWF0Y2hlZD8udHlwZSkge1xyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gbmV3RGF0YS5sZW5ndGhcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0obWF0Y2hlZD8udHlwZSwgSlNPTi5zdHJpbmdpZnkobmV3RGF0YSkpXHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID09PSBmYWxzZSlcclxuICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgICAgdGhpcy50b2FzdHIuZ2V0U3VjY2Vzc1RvYXN0KGAke21hdGNoZWQ/LnR5cGV9IEFkZGVkIFN1Y2Nlc2Z1bGx5IWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoYFBsZWFzZSBTZWxlY3QgZmlsZSB0aGVuIGFkZCB0byAke21hdGNoZWQ/LnR5cGV9IGApXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV4Y2VsOiBFeGNlbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1ZGl0c2VydmljZTogQXVkaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHRpbWVyU2VydmljZTogVGltZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0eXBlJylcclxuICB9XHJcbiAgZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgc2hvd0RpYWxvZyA9IGZhbHNlO1xyXG4gIHRpbWVQYXNzZWQ6IG51bWJlciA9IDA7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBmb3JtYXR0ZWRUaW1lOiBzdHJpbmcgPSAnMDA6MDA6MDAnO1xyXG5cclxuICBub3RpY2UgPSAnc2Vzc2lvbiBleHBpcmVkJztcclxuICBzaG93Tm90aWNlID0gZmFsc2U7XHJcbiAgcnhqc1RpbWVyOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmdldEF1ZGl0Q29uZmlnKClcclxuICAgIGlmICgndXNlci1pbmZvJyBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdmFyIHVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCAne30nKVxyXG4gICAgICB0aGlzLmlkID0gdXNlci5faWRcclxuICAgIH1cclxuICAgIGlmICgnYXVkaXQnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICB2YXIgYXVkaXRkYXRhID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgIGlmIChhdWRpdGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IGF1ZGl0ZGF0YTtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyY291bnQgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubGVuZ3RoXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGZpbGVkYXRhXHJcbiAgICAgIGlmICgndG90YWxmaWxlcycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgICBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICAgICAgdGhpcy5nZXRNYXBwaW5nKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGltZXIoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXJTZXJ2aWNlLmdldFRpbWVQYXNzZWQoKS5zdWJzY3JpYmUodGltZSA9PiB7XHJcbiAgICAgIHRoaXMudGltZVBhc3NlZCA9IHRpbWU7XHJcbiAgICAgIHRoaXMuZm9ybWF0dGVkVGltZSA9IHRoaXMudGltZXJTZXJ2aWNlLmZvcm1hdFRpbWUodGltZSk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlR2xvYmFsTW91c2VFdmVudCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5jbGVhclRpbWVyKClcclxuICB9XHJcblxyXG4gIGluaXRpYWxfZGF0YV9sb2FkaW5nKCkge1xyXG4gICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgIHZhciBhdWRpdGRhdGEgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgaWYgKGF1ZGl0ZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gYXVkaXRkYXRhO1xyXG4gICAgICAgIHRoaXMuZGVtb2dyYXBoaWMgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuZGVtb2dyYXBoaWMgPT09ICdkJykubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5sZW5ndGhcclxuICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IFtdXHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gMFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdmFyIGNvdW50ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ3t9JylcclxuICAgICAgZGF0YS5jb3VudCA9IGNvdW50Py5sZW5ndGhcclxuICAgIH0pXHJcbiAgICBpZiAoJ3JldGFnJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB2YXIgcmV0YWdpYW1nZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncmV0YWcnKSB8fCAnW10nKVxyXG4gICAgICBpZiAocmV0YWdpYW1nZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICBjdXN0b21lciA9IFsuLi5jdXN0b21lciwgLi4ucmV0YWdpYW1nZV1cclxuICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoJ3RvdGFsZmlsZXMnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHZhciBmaWxlcyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICAgIHRoaXMudG90YWxmaWxlID0gZmlsZXM/LnRvdGFsZmlsZXNcclxuICAgICAgdGhpcy5maWxlZGV0YWlscyA9IGZpbGVzPy5maWxlZGV0YWlsc1xyXG4gICAgICB0aGlzLnN0b3JlZGV0YWlscyA9IGZpbGVzPy5zdG9yZWRldGFpbHNcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlSW1hZ2UoaW1nX25hbWU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZC5wdXNoKGltZ19uYW1lKVxyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgoZGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgICBpZiAoZGF0YS5pbWdfbmFtZSA9PSBpbWdfbmFtZSkge1xyXG4gICAgICAgIGlmIChkYXRhLm1hcHBlZGlkLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBkYXRhLnNlbGVjdGVkID0gIWRhdGEuc2VsZWN0ZWRcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGF0YS5kcm9wcGVkID0gIWRhdGEuZHJvcHBlZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0QXVkaXRDb25maWcoKSB7XHJcblxyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIHRoaXMuYXVkaXRzZXJ2aWNlLmdldEF1ZGl0Y29uZmlnKGZpbGVkYXRhPy5maWxlZGV0YWlscz8uY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhLmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncy50YWdnaW5nTGltaXRhdGlvbilcclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSByZXMuZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MudGFnZ2luZ0xpbWl0YXRpb25cclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOmFueSk9PntcclxuICAgICAgICAgICAgaWYoZGF0YT8udHlwZSBpbiBzZXNzaW9uU3RvcmFnZSl7XHJcblxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGRhdGEudHlwZSwgSlNPTi5zdHJpbmdpZnkoW10pKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0TWFwcGluZyhuZXh0SWQ/OiBhbnkpIHtcclxuICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc3Bpbm5lcnN0YXJ0ID0gZmFsc2VcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICBjb25zb2xlLmxvZyhcIi0tLT5cIiwgZmlsZWRhdGEpXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgc3RvcmVJZDogZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgbmV4dElkOiBmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbiA/IGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuIDogJycsXHJcbiAgICAgIERhdGU6IGZpbGVkYXRhPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgY291bnQ6ZmlsZWRhdGE/LnRvdGFsZmlsZXNcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpdHNlcnZpY2UuZ2V0QXVkaXRNYXBwaW5nKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmVkZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TWFwcGluZyhyZXM/LmRhdGE/LmZpbGU/Lm5leHRUb2tlbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgMTAwKVxyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uaXNEcmFmdCkge1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0aW1lU3BlbnQnLCBKU09OLnN0cmluZ2lmeShyZXM/LmRhdGE/LnRpbWVTcGVudCkpO1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09IGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBTdGFydEF1ZGl0Q29tcG9uZW50IH4gZ2V0TWFwcGluZyB+IGZpbHRlckRhdGE6XCIsIGZpbHRlckRhdGEpXHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhLnR5cGUsIEpTT04uc3RyaW5naWZ5KGZpbHRlckRhdGFbMF0udmFsdWUpKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBsZXQgY3VzdG9tZXJEYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQuZmlsdGVyKCh4OiBhbnkpID0+IHgudHlwZSA9PT0gJ2N1c3RvbWVyJylcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IGdldE1hcHBpbmcgfiBjdXN0b21lckRhdGE6XCIsIGN1c3RvbWVyRGF0YSlcclxuICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gY3VzdG9tZXJEYXRhWzBdLnZhbHVlXHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lckRhdGFbMF0udmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG5cclxuXHJcbiAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IGdldE1hcHBpbmcgfiBkYXRhLnR5cGU6XCIsIGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKVxyXG4gICAgICAgICAgICAgIGRhdGEuY291bnQgPSBjb3VudD8ubGVuZ3RoXHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5yZXN1bHQ/LnJldGFnX2ltYWdlPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgICAgICBjdXN0b21lciA9IFsuLi5jdXN0b21lciwgLi4ucmVzLmRhdGEucmVzdWx0LnJldGFnX2ltYWdlXVxyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IGN1c3RvbWVyO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lcik7XHJcbiAgICAgICAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgdG90YWxmaWxlcyA9IHtcclxuICAgICAgICAgICAgICBcInN0b3JlZGV0YWlsc1wiOiB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiByZXM/LmRhdGE/LnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiByZXM/LmRhdGE/LmFkZHJlc3NcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIFwidG90YWxmaWxlc1wiOiB0aGlzLnN0b3JlZGV0YWlscz8uY291bnQsXHJcbiAgICAgICAgICAgICAgXCJhdWRpdElkXCI6IHJlcz8uZGF0YS5maWxlPy5hdWRpdElkLFxyXG4gICAgICAgICAgICAgIFwiZmlsZWRldGFpbHNcIjoge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZUlkXCI6IHRoaXMuc3RvcmVkZXRhaWxzPy5maWxlPy5zdG9yZUlkLFxyXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHJlcz8uZGF0YT8uZmlsZT8uRGF0ZSxcclxuICAgICAgICAgICAgICAgIFwidXNlcklkXCI6IHJlcz8uZGF0YT8uZmlsZT8udXNlcklkLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRJZFwiOiByZXM/LmRhdGE/LmZpbGU/LmNsaWVudElkLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkodG90YWxmaWxlcykpXHJcbiAgICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lcnN0YXJ0ID0gZmFsc2VcclxuICAgICAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGlmIChmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdElkID0gcmVzLmRhdGEuZmlsZT8uYXVkaXRJZDtcclxuICAgICAgICAgICAgICB0aGlzLnRvdGFsZmlsZSA9IHJlcz8uZGF0YT8uY291bnQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVkZXRhaWxzLnpvbmVOYW1lID0gcmVzPy5kYXRhPy5maWxlPy56b25lTmFtZTtcclxuICAgICAgICAgICAgICBpZiAoJ2F1ZGl0JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBbLi4udGhpcy5hdWRpdG1hcHBpbmdkYXRhLCAuLi5yZXM/LmRhdGE/LnJlc3VsdF1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVkZXRhaWxzID0gcmVzPy5kYXRhPy5maWxlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRJZCA9IHJlcy5kYXRhLmZpbGU/LmF1ZGl0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQ7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3RhbGZpbGUgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMucXVldWVOYW1lID0gdGhpcy5xdWV1ZU5hbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscy56b25lTmFtZSA9IHJlcz8uZGF0YT8uZmlsZT8uem9uZU5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICAgICAgdG90YWxmaWxlczogdGhpcy50b3RhbGZpbGUsXHJcbiAgICAgICAgICAgICAgZmlsZWRldGFpbHM6IHRoaXMuZmlsZWRldGFpbHMsXHJcbiAgICAgICAgICAgICAgYXVkaXRJZDogdGhpcy5hdWRpdElkLFxyXG5cclxuICAgICAgICAgICAgICBzdG9yZWRldGFpbHM6IHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVOYW1lXCI6IHJlcz8uZGF0YT8uc3RvcmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJhZGRyZXNzXCI6IHJlcz8uZGF0YT8uYWRkcmVzc1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KG9iaikpXHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lcnN0YXJ0ID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXMuY29kZSA9PSAyMDQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvdW50ZXIgPCA2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlciA9IHRoaXMuY291bnRlciArIDE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TWFwcGluZygpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoIW5leHRJZCkgeyB0aGlzLk5vZGF0YSA9IHRydWUgfSBlbHNlIHsgfVxyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveS5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Tm90aWNlID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIGlmIChlcnI/LnN0YXR1cyA9PSA0MDQpIHtcclxuICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICAgICAgaWYgKGZpbGVkYXRhLmZpbGVkZXRhaWxzICYmIGZpbGVkYXRhLmZpbGVkZXRhaWxzLm5leHRUb2tlbikge1xyXG4gICAgICAgICAgICBkZWxldGUgZmlsZWRhdGEuZmlsZWRldGFpbHMubmV4dFRva2VuO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkoZmlsZWRhdGEpKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRNYXBwaW5nKCcnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/Lm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlYXVkaXQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oUmVtb3ZlQXVkaXRDb21wb25lbnQsIHtcclxuICAgICAgc2l6ZTogJ2xnJyxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAga2V5Ym9hcmQ6IGZhbHNlXHJcbiAgICB9KVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IGRhdGEsXHJcbiAgICAgIG1vZGFsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LnJlbG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBhbGxvd0Ryb3AoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGRyYWdJbWFnZShldmVudDogYW55KSB7XHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGV2ZW50LnRhcmdldC5pZCk7XHJcbiAgfVxyXG5cclxuICBkcm9wSW1hZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZUlkID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgIGNvbnN0IGRyYWdnZWRJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRyYWdnZWRJbWFnZUlkKTtcclxuICAgIGV2ZW50LnRhcmdldC5hcHBlbmRDaGlsZChkcmFnZ2VkSW1hZ2UpO1xyXG4gICAgY29uc3QgZHJvcFpvbmUgPSBldmVudC50YXJnZXQ7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGRhdGEuaW1nX25hbWUgPT0gZHJvcFpvbmUuaWQpIHtcclxuICAgICAgICBpZiAoZGF0YS5tYXBwZWRpZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB2YXIgZmluZG9uZSA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5pbWdfbmFtZSA9PSBkcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGZpbmRvbmUpXHJcbiAgICAgICAgICBpZiAoZmluZG9uZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBkYXRhLmNvdW50ICsgZmluZG9uZVswXS5jb3VudFxyXG4gICAgICAgICAgICBkYXRhLm1hcHBlZGlkID0gWy4uLmRhdGEubWFwcGVkaWQsIC4uLmZpbmRvbmVbMF0ubWFwcGVkaWRdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoJ2R1cGxpY2F0ZScgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdkdXBsaWNhdGUnKSB8fCAne30nKVxyXG4gICAgICAgICAgICBmaWxlZGF0YSA9IFsuLi5maWxlZGF0YSwgLi4uZmluZG9uZV1cclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZHVwbGljYXRlJywgSlNPTi5zdHJpbmdpZnkoZmlsZWRhdGEpKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZHVwbGljYXRlJywgSlNPTi5zdHJpbmdpZnkoZmluZG9uZSkpXHJcbiAgICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZHVwbGljYXRlJykgfHwgJ3t9JylcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IGRyb3BJbWFnZSB+IGZpbGVkYXRhOlwiLCBmaWxlZGF0YSlcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBjb3VudCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBjb3VudD8ubGVuZ3RoXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YS5jb3VudCArIDEsXHJcbiAgICAgICAgICAgIGRhdGEubWFwcGVkaWQucHVzaChkcmFnZ2VkSW1hZ2VJZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuc3BsaWNlKHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maW5kSW5kZXgoKHsgaW1nX25hbWUgfTogeyBpbWdfbmFtZTogc3RyaW5nIH0pID0+IGltZ19uYW1lID09IGRyYWdnZWRJbWFnZUlkKSwgMSk7XHJcbiAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgfVxyXG5cclxuICBkcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXI/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB0YXJnZXQuaWQpO1xyXG4gIH1cclxuXHJcbiAgUmV2aWV3ZGF0YSgpIHtcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnU2Nyb2xsIERvd24gdG8gYm90dG9tIGxvYWQgdGhlIGZpbGVzIGJlZm9yZSBNb3ZlIHRvIE5leHQgcGFnZSEnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogXCJjdXN0b21lclwiLFxyXG4gICAgICAgICAgdmFsdWU6IGN1c3RvbWVyID8gY3VzdG9tZXIgOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ1tdJyk7XHJcbiAgICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6IGRhdGEudHlwZSxcclxuICAgICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUmJnNlc3Npb252YWx1ZS5sZW5ndGg+MCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IFJldmlld2RhdGEgfiBzdG9yZWREYXRhOlwiLCBzdG9yZWREYXRhKVxyXG4gICAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgIGN1c3RvbWVyQ291bnQ6IGN1c3RvbWVyID8gY3VzdG9tZXI/Lmxlbmd0aCA6IDAsXHJcbiAgICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzLmF1ZGl0SWQsXHJcbiAgICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICAgIHJldGFnQ291bnQ6IDAsXHJcbiAgICAgICAgdGltZVNwZW50OiB0aGlzLnRpbWVQYXNzZWQsXHJcbiAgICAgICAgcmV0YWdJbWFnZTogW10sXHJcbiAgICAgICAgZHJhZnRlZERhdGE6IHN0b3JlZERhdGFcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBTdGFydEF1ZGl0Q29tcG9uZW50IH4gUmV2aWV3ZGF0YSB+IGluc2Vyb2JqOlwiLCBpbnNlcm9iailcclxuICAgICAgdGhpcy5hdWRpdHNlcnZpY2Uuc2F2ZURyYWZ0KGluc2Vyb2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvbWFuYWdlL3RpY2tldHMvbWFwcGluZy1saXN0XCJdKVxyXG4gICAgICAgICAgfSBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLm1lc3NhZ2VcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yLCB7IGNlbnRlcmVkOiB0cnVlIH0pXHJcbiAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVycj8uY29kZSA9PSA0MDAgfHwgZXJyPy5jb2RlID09IDIwNCB8fCBlcnI/LmNvZGUgPT0gNDA0IHx8IGVycj8uY29kZSA9PSA1MDApIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IGVyci5tZXNzYWdlXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvciwgeyBjZW50ZXJlZDogdHJ1ZSB9KVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgdmlld2NhdGVnb3J5KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFZpZXdjYXRlZ29yeUNvbXBvbmVudCwge1xyXG4gICAgICBzaXplOiAnbGcnLFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxyXG4gICAgICBrZXlib2FyZDogZmFsc2VcclxuICAgIH0pXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gZGF0YVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW1hZ2VMaXN0ID0gZGF0YSxcclxuICAgICAgbW9kYWxSZWYuY2xvc2VkLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8ucmVsb2FkKSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIGFzeW5jIHNhdmVkcmFmdCgpIHtcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnU2Nyb2xsIERvd24gdG8gYm90dG9tIGxvYWQgdGhlIGZpbGVzIGJlZm9yZSBzYXZlIScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVubW9kZWwgPSB0cnVlO1xyXG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtRHJhZnQsIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgICB9KVxyXG4gICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IHNhdmVkcmFmdCB+IHJlc3VsdDpcIiwgcmVzdWx0KVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChyZXN1bHQgPT09ICdpc0RlbmllZCcpIHtcclxuICAgICAgICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICBsZXQgc3RvcmVkRGF0YSA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgICAgICB2YWx1ZTogY3VzdG9tZXIgPyBjdXN0b21lciA6IFtdLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgc2Vzc2lvbnZhbHVlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ1tdJyk7XHJcbiAgICAgICAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgdHlwZTogZGF0YS50eXBlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBzZXNzaW9udmFsdWUmJnNlc3Npb252YWx1ZS5sZW5ndGg+MCA/IHNlc3Npb252YWx1ZSA6IFtdXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgICAgIC8vICAgdXNlcklkOiB1c2VyPy51c2VyLFxyXG4gICAgICAgICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgICAgICAgICBjdXN0b21lckNvdW50OiBjdXN0b21lciA/IGN1c3RvbWVyPy5sZW5ndGggOiAwLFxyXG4gICAgICAgICAgICByZXRhZ0NvdW50OiAwLFxyXG4gICAgICAgICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZCxcclxuICAgICAgICAgICAgcmV0YWdJbWFnZTogW10sXHJcbiAgICAgICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF1ZGl0c2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmdldFN1Y2Nlc3NUb2FzdChyZXM/LmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5lcnJvcjtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoZXJyPy5jb2RlID09IDQwMCB8fCBlcnI/LmNvZGUgPT0gMjA0IHx8IGVycj8uY29kZSA9PSA0MDQgfHwgZXJyPy5jb2RlID09IDUwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnRmlsZSBub3Qgc2F2ZWQhJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSAnaXNDb25maXJtZWQnKSB7XHJcbiAgICAgICAgICB2YXIgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuXHJcbiAgICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgIGxldCBzdG9yZWREYXRhID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogXCJjdXN0b21lclwiLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPyB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgOiBbXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG5cclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IHNlc3Npb252YWx1ZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICdbXScpO1xyXG4gICAgICAgICAgICBzdG9yZWREYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHR5cGU6IGRhdGEudHlwZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogc2Vzc2lvbnZhbHVlJiZzZXNzaW9udmFsdWUubGVuZ3RoPjAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHZhciBpbnNlcm9iajogYW55ID0ge1xyXG4gICAgICAgICAgICB1c2VyQ29tbWFuZHM6IHRoaXMuZGF0YXJlYXNvbiA/IHRoaXMuZGF0YXJlYXNvbiA6IFwiXCIsXHJcbiAgICAgICAgICAgICBjdXN0b21lckNvdW50OiBjdXN0b21lciA/IGN1c3RvbWVyPy5sZW5ndGggOiAwLFxyXG4gICAgICAgICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgICBhdWRpdFR5cGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnR5cGUsXHJcbiAgICAgICAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzLmF1ZGl0SWQsXHJcbiAgICAgICAgICAgIHRvdGFsQ291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlcyA/IHRvdGFsZmlsZS50b3RhbGZpbGVzIDogMCxcclxuICAgICAgICAgICAgcmV0YWdDb3VudDogMCxcclxuICAgICAgICAgICAgdGltZVNwZW50OiB0aGlzLnRpbWVQYXNzZWQsXHJcbiAgICAgICAgICAgIHJldGFnSW1hZ2U6IFtdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF1ZGl0c2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChlcnI/LmNvZGUgPT0gNDAwIHx8IGVycj8uY29kZSA9PSAyMDQgfHwgZXJyPy5jb2RlID09IDQwNCB8fCBlcnI/LmNvZGUgPT0gNTAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdGaWxlIG5vdCBzYXZlZCEnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICB0aGlzLm9wZW5tb2RlbCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJhY2t0b3RpY2tldHMoKSB7ICAgXHJcbiAgICAgIHRoaXMuc2F2ZWRyYWZ0KCk7XHJcbiAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICBcclxuICB9XHJcbiAgY2FtZXJhUHJldmlldygpIHtcclxuICAgIC8vIGNvbnN0IE1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihDYW1lcmFQcmV2aWV3Q29tcG9uZW50LHtcclxuICAgIC8vICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAvLyAgIHNpemU6J2xnJ1xyXG4gICAgLy8gfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHctNDBweCBiZy13aGl0ZSBjdXJzb3ItcG9pbnRlciBtZS01IHRleHQtY2VudGVyXCIgKGNsaWNrKT1cImJhY2t0b3RpY2tldHMoKVwiPjxzdmdcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzNCAxMEg0LjE2NjY5TTQuMTY2NjkgMTBMMTAgMTUuODMzNE00LjE2NjY5IDEwTDEwIDQuMTY2NjlcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgKGNsaWNrKT1cImNhbWVyYVByZXZpZXcoKVwiPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LkRhdGVcIj57e2ZpbGVkZXRhaWxzPy5EYXRlfX08L3NwYW4+PHNwYW4+IC1cclxuICAgICAgICAgICAgPC9zcGFuPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LnN0b3JlSWRcIj57e2ZpbGVkZXRhaWxzPy5zdG9yZUlkfX08L3NwYW4+PHNwYW4+IC0gPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uc3RvcmVOYW1lXCI+e3tzdG9yZWRldGFpbHM/LnN0b3JlTmFtZX19PC9zcGFuPjxzcGFuICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSd6b25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgLSA8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZWRldGFpbHM/LnpvbmVOYW1lICYmIHNlbGVjdGVkVHlwZSA9PT0nem9uZSdcIj57e2ZpbGVkZXRhaWxzPy56b25lTmFtZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uYWRkcmVzc1wiPiB8IHt7c3RvcmVkZXRhaWxzPy5hZGRyZXNzfX0gPC9zcGFuPjwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJnLXRpbWVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zIHRleHQtdGltZXIgZnctc2VtaWJvbGRcIj57eyBmb3JtYXR0ZWRUaW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMTY2NjcgMi44NzA3MUM5LjE2NjY3IDIuNjIwMjMgOS4yNjYxNyAyLjM4MDAxIDkuNDQzMjkgMi4yMDI4OUM5LjYyMDQxIDIuMDI1NzcgOS44NjA2MyAxLjkyNjI3IDEwLjExMTEgMS45MjYyN0gxMy44ODg5QzE0LjEzOTQgMS45MjYyNyAxNC4zNzk2IDIuMDI1NzcgMTQuNTU2NyAyLjIwMjg5QzE0LjczMzggMi4zODAwMSAxNC44MzMzIDIuNjIwMjMgMTQuODMzMyAyLjg3MDcxQzE0LjgzMzMgMy4xMjEyIDE0LjczMzggMy4zNjE0MiAxNC41NTY3IDMuNTM4NTRDMTQuMzc5NiAzLjcxNTY1IDE0LjEzOTQgMy44MTUxNiAxMy44ODg5IDMuODE1MTZIMTIuOTQ0NFY1LjA3NDQyTDEyLjk0MzIgNS4xMjYwNUMxNC41Mzk2IDUuMzAwOTcgMTYuMDUyOCA1LjkyNzg3IDE3LjMwNTMgNi45MzMwOEwxNy4zMTQxIDYuOTI1NTNMMTguMjU4NSA1Ljk4MTA4QzE4LjM3NCA1Ljg1Njc2IDE4LjUyMDggNS43NjU4OCAxOC42ODM1IDUuNzE4MDFDMTguODQ2MyA1LjY3MDE0IDE5LjAxOSA1LjY2NzA2IDE5LjE4MzMgNS43MDkwOEMxOS4zNDc3IDUuNzUxMTEgMTkuNDk3NyA1LjgzNjY5IDE5LjYxNzUgNS45NTY4QzE5LjczNzMgNi4wNzY5MiAxOS44MjI1IDYuMjI3MTMgMTkuODY0MSA2LjM5MTZDMTkuOTA2IDYuNTU1NzggMTkuOTAzIDYuNzI4MjMgMTkuODU1NCA2Ljg5MDg1QzE5LjgwNzcgNy4wNTM0OCAxOS43MTcyIDcuMjAwMjkgMTkuNTkzMyA3LjMxNTlMMTguNjQ4OSA4LjI2MDM0TDE4LjY0MTMgOC4yNjkxNUMxOS42NDAzIDkuNTE5NzQgMjAuMjY1OCAxMS4wMjcgMjAuNDQ2IDEyLjYxNzRDMjAuNjI2MSAxNC4yMDc4IDIwLjM1MzYgMTUuODE2NyAxOS42NTk3IDE3LjI1OTFDMTguOTY1OCAxOC43MDE0IDE3Ljg3ODggMTkuOTE4NSAxNi41MjM3IDIwLjc3MDRDMTUuMTY4NiAyMS42MjIyIDEzLjYwMDYgMjIuMDc0MSAxMiAyMi4wNzQxQzEwLjM5OTQgMjIuMDc0MSA4LjgzMTM3IDIxLjYyMjIgNy40NzYyOSAyMC43NzA0QzYuMTIxMjIgMTkuOTE4NSA1LjAzNDE5IDE4LjcwMTQgNC4zNDAzIDE3LjI1OTFDMy42NDY0MSAxNS44MTY3IDMuMzczODYgMTQuMjA3OCAzLjU1NDAyIDEyLjYxNzRDMy43MzQxOCAxMS4wMjcgNC4zNTk3MyA5LjUxOTc0IDUuMzU4NjcgOC4yNjkxNUw1LjM1MTExIDguMjYwMzRMNC40MDY2NyA3LjMxNTlDNC4yMzk2NCA3LjEzNjkgNC4xNDg2NSA2LjkwMDAzIDQuMTUyODcgNi42NTUyNEM0LjE1NzEgNi40MTA0NSA0LjI1NjIyIDYuMTc2ODcgNC40MjkzNCA2LjAwMzc1QzQuNjAyNDYgNS44MzA2MyA0LjgzNjA0IDUuNzMxNTEgNS4wODA4MyA1LjcyNzI4QzUuMzI1NjIgNS43MjMwNiA1LjU2MjQ5IDUuODE0MDUgNS43NDE0OSA1Ljk4MTA4TDYuNjg1OTMgNi45MjU1M0w2LjY5NDc0IDYuOTMzMDhDNy45NDY4MSA1LjkyODA5IDkuNDU5NjMgNS4zMDEyIDExLjA1NTYgNS4xMjYwNVYzLjgxNTE2SDEwLjExMTFDOS44NjA2MyAzLjgxNTE2IDkuNjIwNDEgMy43MTU2NSA5LjQ0MzI5IDMuNTM4NTRDOS4yNjYxNyAzLjM2MTQyIDkuMTY2NjcgMy4xMjEyIDkuMTY2NjcgMi44NzA3MVpNMTIgMjAuMTg1NUMxMy43NTM1IDIwLjE4NTQgMTUuNDM1MiAxOS40ODg2IDE2LjY3NSAxOC4yNDg1QzE3LjkxNDggMTcuMDA4NSAxOC42MTEzIDE1LjMyNjcgMTguNjExMSAxMy41NzMyQzE4LjYxMDkgMTEuODE5NiAxNy45MTQyIDEwLjEzOCAxNi42NzQxIDguODk4MTNDMTUuNDM0MSA3LjY1ODMxIDEzLjc1MjMgNi45NjE4OCAxMS45OTg3IDYuOTYyMDRDMTAuMjQ1MiA2Ljk2MjIxIDguNTYzNTQgNy42NTg5NiA3LjMyMzcyIDguODk5MDJDNi4wODM5IDEwLjEzOTEgNS4zODc0NyAxMS44MjA5IDUuMzg3NjMgMTMuNTc0NEM1LjM4NzggMTUuMzI4IDYuMDg0NTUgMTcuMDA5NiA3LjMyNDYxIDE4LjI0OTRDOC41NjQ2NyAxOS40ODkzIDEwLjI0NjUgMjAuMTg1NyAxMiAyMC4xODU1Wk0xMi40ODk5IDExLjc0ODVMMTQuMTY0NyAxMC4wNzM3QzE0LjI1MTcgOS45ODM0MyAxNC4zNTU5IDkuOTExNDMgMTQuNDcxMSA5Ljg2MTg4QzE0LjU4NjMgOS44MTIzMyAxNC43MTAyIDkuNzg2MjIgMTQuODM1NiA5Ljc4NTA3QzE0Ljk2MTEgOS43ODM5MiAxNS4wODU0IDkuODA3NzYgMTUuMjAxNSA5Ljg1NTE5QzE1LjMxNzYgOS45MDI2MiAxNS40MjMxIDkuOTcyNyAxNS41MTE4IDEwLjA2MTNDMTUuNjAwNSAxMC4xNSAxNS42NzA3IDEwLjI1NTQgMTUuNzE4MiAxMC4zNzE0QzE1Ljc2NTggMTAuNDg3NSAxNS43ODk3IDEwLjYxMTggMTUuNzg4NyAxMC43MzcyQzE1Ljc4NzcgMTAuODYyNiAxNS43NjE3IDEwLjk4NjYgMTUuNzEyMiAxMS4xMDE4QzE1LjY2MjggMTEuMjE3MSAxNS41OTA5IDExLjMyMTMgMTUuNTAwNyAxMS40MDg1TDEzLjgyNTkgMTMuMDg0NkMxMy45MDAzIDEzLjM2NDUgMTMuOTA5NSAxMy42NTc5IDEzLjg1MjYgMTMuOTQyQzEzLjc5NTggMTQuMjI2IDEzLjY3NDUgMTQuNDkzMyAxMy40OTgxIDE0LjcyMzFDMTMuMzIxNyAxNC45NTI5IDEzLjA5NDkgMTUuMTM5MSAxMi44MzUyIDE1LjI2NzVDMTIuNTc1NCAxNS4zOTU4IDEyLjI4OTcgMTUuNDYyOCAxMiAxNS40NjMzQzExLjczMjcgMTUuNDYxIDExLjQ2ODggMTUuNDAxOSAxMS4yMjYgMTUuMjlDMTAuOTgzMiAxNS4xNzgxIDEwLjc2NyAxNS4wMTU5IDEwLjU5MTYgMTQuODE0MUMxMC40MTYyIDE0LjYxMjMgMTAuMjg1NyAxNC4zNzU1IDEwLjIwODcgMTQuMTE5NUMxMC4xMzE2IDEzLjg2MzUgMTAuMTA5OSAxMy41OTQgMTAuMTQ0OCAxMy4zMjlDMTAuMTc5OCAxMy4wNjM5IDEwLjI3MDYgMTIuODA5MyAxMC40MTE0IDEyLjU4MkMxMC41NTIyIDEyLjM1NDcgMTAuNzM5NiAxMi4xNTk5IDEwLjk2MTMgMTIuMDEwNEMxMS4xODMgMTEuODYxIDExLjQzMzkgMTEuNzYwNCAxMS42OTc0IDExLjcxNTJDMTEuOTYwOSAxMS42NzAxIDEyLjIzMSAxMS42ODE0IDEyLjQ4OTkgMTEuNzQ4NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmQgcHktMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBvdmVyZmxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInctNTBweCBoLTUwcHggYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciByb3VuZGVkLTNcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI4IDI4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMSAxNS4xNjY3VjIzLjMzMzRINC42NjY2NVY3LjAwMDA0SDEwLjUyMzNDMTAuNTgxNiA2LjE3MTcxIDEwLjc4IDUuMzkwMDQgMTEuMDgzMyA0LjY2NjcxSDQuNjY2NjVDMy4zODMzMSA0LjY2NjcxIDIuMzMzMzEgNS43MTY3MSAyLjMzMzMxIDcuMDAwMDRWMjMuMzMzNEMyLjMzMzMxIDI0LjYxNjcgMy4zODMzMSAyNS42NjY3IDQuNjY2NjUgMjUuNjY2N0gyMUMyMi4yODMzIDI1LjY2NjcgMjMuMzMzMyAyNC42MTY3IDIzLjMzMzMgMjMuMzMzNFYxNy41TDIxIDE1LjE2NjdaTTE5LjI1IDIxSDYuNDE2NjVMOS42MjQ5OCAxNi44ODE3TDExLjkxMTYgMTkuNjM1TDE1LjEyIDE1LjUwNUwxOS4yNSAyMVpNMjIuNTE2NiAxMC4zNzE3QzIzLjAzIDkuNTU1MDQgMjMuMzMzMyA4LjYxMDA0IDIzLjMzMzMgNy41ODMzN0MyMy4zMzMzIDQuNjc4MzcgMjAuOTg4MyAyLjMzMzM3IDE4LjA4MzMgMi4zMzMzN0MxNS4xNzgzIDIuMzMzMzcgMTIuODMzMyA0LjY3ODM3IDEyLjgzMzMgNy41ODMzN0MxMi44MzMzIDEwLjQ4ODQgMTUuMTc4MyAxMi44MzM0IDE4LjA3MTYgMTIuODMzNEMxOS4wOTgzIDEyLjgzMzQgMjAuMDU1IDEyLjUzIDIwLjg2IDEyLjAxNjdMMjQuNSAxNS42NTY3TDI2LjE1NjYgMTRMMjIuNTE2NiAxMC4zNzE3Wk0xOC4wODMzIDEwLjVDMTcuMzA5OCAxMC41IDE2LjU2NzkgMTAuMTkyNyAxNi4wMjA5IDkuNjQ1NzdDMTUuNDczOSA5LjA5ODc5IDE1LjE2NjYgOC4zNTY5MiAxNS4xNjY2IDcuNTgzMzdDMTUuMTY2NiA2LjgwOTgzIDE1LjQ3MzkgNi4wNjc5NiAxNi4wMjA5IDUuNTIwOThDMTYuNTY3OSA0Ljk3NCAxNy4zMDk4IDQuNjY2NzEgMTguMDgzMyA0LjY2NjcxQzE4Ljg1NjkgNC42NjY3MSAxOS41OTg3IDQuOTc0IDIwLjE0NTcgNS41MjA5OEMyMC42OTI3IDYuMDY3OTYgMjEgNi44MDk4MyAyMSA3LjU4MzM3QzIxIDguMzU2OTIgMjAuNjkyNyA5LjA5ODc5IDIwLjE0NTcgOS42NDU3N0MxOS41OTg3IDEwLjE5MjcgMTguODU2OSAxMC41IDE4LjA4MzMgMTAuNVpcIiBmaWxsPVwiIzAwQTNGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IFxyXG4gICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBtcy0yXCI+PHNwYW4gKm5nSWY9XCJmaWxlZGV0YWlscz8udHlwZVwiPnt7ZmlsZWRldGFpbHM/LnR5cGUgPyBmaWxlZGV0YWlscz8udHlwZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWxlZGV0YWlsc1wiIGNsYXNzPVwic3ViLXRleHQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ1MDhfMTg1ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgMTAuNUg5LjVDMTAuMDUyMyAxMC41IDEwLjUgMTAuMDUyMyAxMC41IDkuNVYyLjVDMTAuNSAxLjk0NzcyIDEwLjA1MjMgMS41IDkuNSAxLjVIMi41QzEuOTQ3NzIgMS41IDEuNSAxLjk0NzcyIDEuNSAyLjVWOS41QzEuNSAxMC4wNTIzIDEuOTQ3NzIgMTAuNSAyLjUgMTAuNVpNMi41IDEwLjVMOCA1TDEwLjUgNy41TTUgNC4yNUM1IDQuNjY0MjEgNC42NjQyMSA1IDQuMjUgNUMzLjgzNTc5IDUgMy41IDQuNjY0MjEgMy41IDQuMjVDMy41IDMuODM1NzkgMy44MzU3OSAzLjUgNC4yNSAzLjVDNC42NjQyMSAzLjUgNSAzLjgzNTc5IDUgNC4yNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0NTA4XzE4NTgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+e3t0b3RhbGZpbGUgPyB0b3RhbGZpbGUgOiAwfX0gQWZ0ZXIgQ291bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMSByb3VuZGVkLTMgdy1hdXRvIGgtNDVweCBweC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0LW5vd3JhcCBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBteC0yXCIgKGNsaWNrKT1cInZpZXdjYXRlZ29yeShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS0yXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPnt7aXRlbT8ubmFtZX19PHNwYW4gY2xhc3M9XCIgbXMtMyBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1lLTUgdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtPy5rZXl9fTwvc3Bhbj48L2Rpdj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIHJvdW5kZWQtMyB3LWF1dG8gaC00NXB4IHB4LTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNSBoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0IGZ3LXNlbWlib2xkIHBlLW5vbmVcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS01XCI+e3thdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggPyBhdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+VW5pcXVlIEN1c3RvbWVyczwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nICYmICFOb2RhdGFcIiBjbGFzcz1cImNhcmQtdG9vbGJhciB0ZXh0LW5vd3JhcCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgbXMtMyBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVtcGxveWVlY291bnQgJiYgIWp1bmtjb3VudCAmJiAoYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoID09PSB0b3RhbGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZWRyYWZ0KClcIj5TYXZlIERyYWZ0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgcHktMiBtcy0zXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJldmlld2RhdGEoKVwiPlJldmlldyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2NiA5Ljk5OTk2SDE1LjgzMzNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgNC4xNjY2M00xNS44MzMzIDkuOTk5OTZMOS45OTk5OSAxNS44MzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBzY3JvbGwtdG9wIC0tPlxyXG48ZGl2IGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXVkaXRMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTm9kYXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY29udmVyc2lvbiBmdW5uZWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gc2Nyb2xsLXkgaC01MDBweCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhdWRpdExvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC0xMiBpdGVtIFwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXVkaXRtYXBwaW5nZGF0YTtsZXQgaT1pbmRleFwiIHN0eWxlPVwicGFkZGluZzogNXB4IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0zIG15LTMgaW1nXCIgW3NyY109XCJpdGVtPy5pbWdfcGF0aFwiIGlkPVwie3tpdGVtPy5pbWdfbmFtZX19XCIgYWx0PVwiSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIiAoZHJvcCk9XCJkcm9wSW1hZ2UoJGV2ZW50KVwiIGRyYWdnYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdJbWFnZSgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKGl0ZW0/LmltZ19uYW1lIClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aXRlbT8uaW1nX25hbWV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0/LnNlbGVjdGVkXCIgY2xhc3M9XCJub3RpZnktYmFkZ2UxXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMEEzRkZcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZnktYmFkZ2UgY3Vyc29yLXBvaW50ZXJcIiAgKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgKm5nSWY9XCJpdGVtPy5jb3VudD4xXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5neC1zcGlubmVyIHNpemU9XCJtZWRpdW1cIiB0eXBlPVwiYmFsbC1hdG9tXCI+PC9uZ3gtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtRHJhZnQgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgaC1hdXRvIHAtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1ncmlkIHAtMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZ2V0QmFja1wiPjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvZGFuZ2VyLWljb24uc3ZnXCI+PC9zcGFuPiAgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIG10LTVcIj5TYXZlIENoYW5nZXM8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QmFja1wiIGNsYXNzPVwiY2FyZC1sYWJlbCBtdC01XCI+VW5zYXZlZCBDaGFuZ2VzPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zdWIgbXQtNVwiPkRvIHlvdSB3YW50IHRvIGRyYWZ0IHRoZSBmaWxlPzwvcD5cclxuICAgICAgICAgICAgPCEtLSA8cCAqbmdJZj1cImdldEJhY2tcIiBjbGFzcz1cInRleHQtc3ViIG10LTVcIj5EbyB5b3Ugd2FudCB0byBnZXQgYmFjaz88L3A+IC0tPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtNVwiIFsobmdNb2RlbCldPVwiZGF0YXJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgeW91ciByZWFzb24gKFJlcXVpcmVkKSAuLi5cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctNTAgbWUtMiBmdy1ib2xkXCIgW2Rpc2FibGVkXT1cIiFkYXRhcmVhc29uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzQ29uZmlybWVkJylcIj5TYXZlICYgRXhpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBzYXZlYnRuIHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNEZW5pZWQnKVwiPnNhdmUgJlxyXG4gICAgICAgICAgICAgICAgICAgIENvbnRpbnVlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1lcnJvciBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBoLWF1dG8gcC0xMCBjYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsXCI+e3tFcnJvcm1zZ319PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0RlbmllZCcpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNDb25maXJtZWQnKVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
751
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtYXVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL3N0YXJ0LWF1ZGl0L3N0YXJ0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBR3BILE9BQU8sRUFBYyxPQUFPLEVBQXVCLE1BQU0sTUFBTSxDQUFDO0FBSWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQkFBbUI7SUE4SHBCO0lBQ0E7SUFDQTtJQUNBO0lBQXdCO0lBQ3hCO0lBQWdDO0lBQ2hDO0lBQTJDO0lBbElyRCxTQUFTLENBQU07SUFDZixZQUFZLENBQU07SUFDbEIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixVQUFVLENBQU07SUFDaEIsS0FBSyxHQUFRLEdBQUcsQ0FBQztJQUNqQixNQUFNLEdBQVEsRUFBRSxDQUFBO0lBQ2hCLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbkIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixPQUFPLENBQU07SUFDYixhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLFNBQVMsR0FB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LENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLG1GQUFtRjtJQUV2RixDQUFDO0lBQ0QsYUFBYTtRQUNYLG1FQUFtRTtRQUNuRSxvQkFBb0I7UUFDcEIsY0FBYztRQUNkLEtBQUs7SUFDUCxDQUFDO3dHQXp0QlUsbUJBQW1COzRGQUFuQixtQkFBbUIsd1dDbkJoQywrNmNBNktjOzs0RkQxSkQsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjsyU0ErQkEsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNFLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFRekIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFO2dCQXdCakMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCB2aWV3Q2hpbGQsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXVkaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXVkaXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ3hTcGlubmVyU2VydmljZSB9IGZyb20gJ25neC1zcGlubmVyJztcclxuaW1wb3J0IHsgUmVtb3ZlQXVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9yZW1vdmUtYXVkaXQvcmVtb3ZlLWF1ZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIExaU3RyaW5nIGZyb20gJ2x6LXN0cmluZyc7XHJcbmltcG9ydCB7IEV4Y2VsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4Y2VsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGltZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdjYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZXdjYXRlZ29yeS92aWV3Y2F0ZWdvcnkuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXN0YXJ0LWF1ZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RhcnQtYXVkaXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdGFydC1hdWRpdC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXJ0QXVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAganVua2ltYWdlOiBhbnk7XHJcbiAgZW1wbG95ZWltYWdlOiBhbnk7XHJcbiAgZmlsZWRldGFpbHM6IGFueSA9IHt9O1xyXG4gIGRhdGFyZWFzb246IGFueTtcclxuICBsaW1pdDogYW55ID0gNTAwO1xyXG4gIG5leHRJZDogYW55ID0gJydcclxuICBzcGlubmVyc3RhcnQgPSB0cnVlXHJcbiAgc3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXVkaXRJZDogYW55O1xyXG4gIGN1c3RvbWVyY291bnQgPSAwO1xyXG4gIGp1bmtjb3VudCA9IDA7XHJcbiAgZW1wbG95ZWVjb3VudCA9IDA7XHJcbiAgZGVtb2dyYXBoaWM6IGFueTtcclxuICBpZDogYW55ID0gJyc7XHJcbiAgcXVldWVOYW1lOiBhbnkgPSAnJztcclxuICBhdWRpdG1hcHBpbmdkYXRhOiBhbnk7XHJcbiAgdG90YWxmaWxlOiBhbnkgPSAwO1xyXG4gIGF1ZGl0TG9hZGluZyA9IHRydWU7XHJcbiAgYmFkZ2UgPSBmYWxzZTtcclxuICBpbWFnZWxpc3Q6IGFueSA9IFwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2xvYWRpbmctaW1nLnBuZ1wiXHJcbiAgc2VsZWN0ZWQ6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkVHlwZTogYW55O1xyXG4gIGF1ZGl0TG9hZGluZzEgPSB0cnVlO1xyXG4gIE5vZGF0YSA9IGZhbHNlO1xyXG4gIGNvdW50ZXI6IGFueSA9IDE7XHJcbiAgY2xpY2tlZEltYWdlczogYm9vbGVhbltdID0gW107XHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybURyYWZ0JykgY29uZmlybURyYWZ0OiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybWVycm9yJykgY29uZmlybWVycm9yOiBhbnk7XHJcbiAgRXJyb3Jtc2c6IGFueTtcclxuICBzdG9yZWRldGFpbHM6IGFueTtcclxuICBvcGVubW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBnZXRCYWNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2F0ZWdvcnk6IGFueSA9IFtdXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpzY3JvbGxcIiwgW10pXHJcbiAgb25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICBpZiAoJ3RvdGFsZmlsZXMnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICAgIGlmIChmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbikge1xyXG4gICAgICAgIGlmIChNYXRoLmNlaWwod2luZG93LmlubmVySGVpZ2h0ICsgd2luZG93LnNjcm9sbFkpID49IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KSB7Ly90aGlzIGNvbmRpdGlvbiBmYWlsZWQgd2hlbiB0aGUgYnJvd3NlciBpbnNwZWN0IHNjcmVlbiBvcGVuIGluIGhvcml6b250YWxcclxuICAgICAgICAgIGlmICh0aGlzLnNwaW5uZXJzdGFydCkge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRNYXBwaW5nKCduZXh0SWQnKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHJlc3VsdDogYW55ID0gd2luZG93LmNvbmZpcm0oXCJTb21ldGhpbmcgV2VudCBXcm9uZy4gUGxlYXNlIGNsZWFyIGJyb3dzZXIgY2FjaGUgb3IgVXNlIGluY29nbml0byB3aW5kb3dcIilcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiT0sgYnV0dG9uIGNsaWNrZWQhXCIpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJBbGVydCBjbG9zZWQgd2l0aG91dCBjbGlja2luZyBPS1wiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5vcGVubW9kZWwpIHJldHVybjtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdnJyB8fCBldmVudC5jb2RlID09PSAnS2V5RycpIHtcclxuICAgICAgdmFyIGdyb3VwID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID09PSB0cnVlKVxyXG4gICAgICBpZiAoZ3JvdXAubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmIChncm91cC5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIFNlbGVjdCBtdWx0aXBsZSBmaWxlIHRoZW4gYWRkIHRvIEdyb3VwJylcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGR1bW15YXJyYXkgPSBncm91cC5zaGlmdCgpXHJcbiAgICAgICAgICB2YXIgZ3JvdXBpbWFnZXM6IGFueSA9IFtdXHJcbiAgICAgICAgICBncm91cC5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkYXRhLmltZ19uYW1lKSwgMSk7XHJcbiAgICAgICAgICAgIGdyb3VwaW1hZ2VzLnB1c2goZGF0YS5tYXBwZWRpZFswXSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgICAgICAgIGR1bW15YXJyYXkuY291bnQgPSBkdW1teWFycmF5LmNvdW50ICsgZ3JvdXBpbWFnZXMubGVuZ3RoXHJcbiAgICAgICAgICBkdW1teWFycmF5LnNlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICAgIGR1bW15YXJyYXkuZGVtb2dyYXBoaWMgPSAnJ1xyXG4gICAgICAgICAgZHVtbXlhcnJheS5tYXBwZWRpZCA9IFsuLi5kdW1teWFycmF5Lm1hcHBlZGlkLCAuLi5ncm91cGltYWdlc11cclxuICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2F1ZGl0JywgY29tcHJlc3NlZERhdGEpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLmluaXRpYWxfZGF0YV9sb2FkaW5nKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdQbGVhc2UgU2VsZWN0IGZpbGUgdGhlbiBhZGQgdG8gR3JvdXAnKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcmVzc2VkID0gKGV2ZW50LmtleSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLmNhdGVnb3J5LmZpbmQoKG06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIW0ua2V5KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNvbnN0IG1hcEtleSA9IG0ua2V5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIC8vIG1hdGNoIGJ5IGV2ZW50LmtleSAocHJlZmVycmVkKSBPUiBieSBldmVudC5jb2RlIGxpa2UgJ0tleUonXHJcbiAgICAgIHJldHVybiBwcmVzc2VkID09PSBtYXBLZXkgfHwgZXZlbnQuY29kZSA9PT0gYEtleSR7bWFwS2V5LnRvVXBwZXJDYXNlKCl9YDtcclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2cobWF0Y2hlZClcclxuICAgIGlmICghbWF0Y2hlZCkgcmV0dXJuXHJcbiAgICBpZiAobWF0Y2hlZCkge1xyXG4gICAgICB2YXIgbmV3RGF0YSA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5zZWxlY3RlZCA9PT0gdHJ1ZSlcclxuICAgICAgaWYgKG5ld0RhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHZhciBvbGREYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKG1hdGNoZWQ/LnR5cGUpIHx8ICd7fScpXHJcbiAgICAgICAgaWYgKE51bWJlcihvbGREYXRhLmxlbmd0aCkgPiAwKSB7XHJcbiAgICAgICAgICBuZXdEYXRhID0gWy4uLm9sZERhdGEsIC4uLm5ld0RhdGFdXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld0RhdGEgPSBuZXdEYXRhXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09IG1hdGNoZWQ/LnR5cGUpIHtcclxuICAgICAgICAgICAgZGF0YS5jb3VudCA9IG5ld0RhdGEubGVuZ3RoXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG1hdGNoZWQ/LnR5cGUsIEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKVxyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5zZWxlY3RlZCA9PT0gZmFsc2UpXHJcbiAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgIHRoaXMudG9hc3RyLmdldFN1Y2Nlc3NUb2FzdChgJHttYXRjaGVkPy50eXBlfSBBZGRlZCBTdWNjZXNmdWxseSFgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KGBQbGVhc2UgU2VsZWN0IGZpbGUgdGhlbiBhZGQgdG8gJHttYXRjaGVkPy50eXBlfSBgKVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBleGNlbDogRXhjZWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdWRpdHNlcnZpY2U6IEF1ZGl0U2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSB0aW1lclNlcnZpY2U6IFRpbWVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5neFNwaW5uZXJTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgndHlwZScpXHJcbiAgfVxyXG4gIGRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHNob3dEaWFsb2cgPSBmYWxzZTtcclxuICB0aW1lUGFzc2VkOiBudW1iZXIgPSAwO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgZm9ybWF0dGVkVGltZTogc3RyaW5nID0gJzAwOjAwOjAwJztcclxuXHJcbiAgbm90aWNlID0gJ3Nlc3Npb24gZXhwaXJlZCc7XHJcbiAgc2hvd05vdGljZSA9IGZhbHNlO1xyXG4gIHJ4anNUaW1lcjogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5nZXRBdWRpdENvbmZpZygpXHJcbiAgICBpZiAoJ3VzZXItaW5mbycgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHZhciB1c2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgICAgdGhpcy5pZCA9IHVzZXIuX2lkXHJcbiAgICB9XHJcbiAgICBpZiAoJ2F1ZGl0JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGF1ZGl0ZGF0YSA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICBpZiAoYXVkaXRkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBhdWRpdGRhdGE7XHJcbiAgICAgICAgdGhpcy5jdXN0b21lcmNvdW50ID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmxlbmd0aFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2V0VGltZXIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBmaWxlZGF0YVxyXG4gICAgICBpZiAoJ3RvdGFsZmlsZXMnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgICAgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICAgIHRoaXMuZ2V0TWFwcGluZygpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFRpbWVyKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVyU2VydmljZS5nZXRUaW1lUGFzc2VkKCkuc3Vic2NyaWJlKHRpbWUgPT4ge1xyXG4gICAgICB0aGlzLnRpbWVQYXNzZWQgPSB0aW1lO1xyXG4gICAgICB0aGlzLmZvcm1hdHRlZFRpbWUgPSB0aGlzLnRpbWVyU2VydmljZS5mb3JtYXRUaW1lKHRpbWUpO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUdsb2JhbE1vdXNlRXZlbnQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2UuY2xlYXJUaW1lcigpXHJcbiAgfVxyXG5cclxuICBpbml0aWFsX2RhdGFfbG9hZGluZygpIHtcclxuICAgIGlmICgnYXVkaXQnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICB2YXIgYXVkaXRkYXRhID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgIGlmIChhdWRpdGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IGF1ZGl0ZGF0YTtcclxuICAgICAgICB0aGlzLmRlbW9ncmFwaGljID0gdGhpcy5hdWRpdG1hcHBpbmdkYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmRlbW9ncmFwaGljID09PSAnZCcpLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyY291bnQgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEubGVuZ3RoXHJcbiAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBbXVxyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHZhciBjb3VudCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICd7fScpXHJcbiAgICAgIGRhdGEuY291bnQgPSBjb3VudD8ubGVuZ3RoXHJcbiAgICB9KVxyXG4gICAgaWYgKCdyZXRhZycgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgdmFyIHJldGFnaWFtZ2UgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldGFnJykgfHwgJ1tdJylcclxuICAgICAgaWYgKHJldGFnaWFtZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgY3VzdG9tZXIgPSBbLi4uY3VzdG9tZXIsIC4uLnJldGFnaWFtZ2VdXHJcbiAgICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYXVkaXRtYXBwaW5nZGF0YSk7XHJcbiAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3JldGFnJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCd0b3RhbGZpbGVzJyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB2YXIgZmlsZXMgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICB0aGlzLnRvdGFsZmlsZSA9IGZpbGVzPy50b3RhbGZpbGVzXHJcbiAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSBmaWxlcz8uZmlsZWRldGFpbHNcclxuICAgICAgdGhpcy5zdG9yZWRldGFpbHMgPSBmaWxlcz8uc3RvcmVkZXRhaWxzXHJcbiAgICB9XHJcbiAgfVxyXG4gIHRvZ2dsZUltYWdlKGltZ19uYW1lOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQucHVzaChpbWdfbmFtZSlcclxuICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgaWYgKGRhdGEuaW1nX25hbWUgPT0gaW1nX25hbWUpIHtcclxuICAgICAgICBpZiAoZGF0YS5tYXBwZWRpZC5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgZGF0YS5zZWxlY3RlZCA9ICFkYXRhLnNlbGVjdGVkXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRhdGEuZHJvcHBlZCA9ICFkYXRhLmRyb3BwZWRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldEF1ZGl0Q29uZmlnKCkge1xyXG5cclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICB0aGlzLmF1ZGl0c2VydmljZS5nZXRBdWRpdGNvbmZpZyhmaWxlZGF0YT8uZmlsZWRldGFpbHM/LmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMuZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MudGFnZ2luZ0xpbWl0YXRpb24pXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gcmVzLmRhdGEuZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzLnRhZ2dpbmdMaW1pdGF0aW9uXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTphbnkpPT57XHJcbiAgICAgICAgICAgIGlmKGRhdGE/LnR5cGUgaW4gc2Vzc2lvblN0b3JhZ2Upe1xyXG5cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhLnR5cGUsIEpTT04uc3RyaW5naWZ5KFtdKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldE1hcHBpbmcobmV4dElkPzogYW55KSB7XHJcbiAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlXHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgY29uc29sZS5sb2coXCItLS0+XCIsIGZpbGVkYXRhKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IGZpbGVkYXRhPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgbGltaXQ6IHRoaXMubGltaXQsXHJcbiAgICAgIG5leHRJZDogZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4gPyBmaWxlZGF0YT8uZmlsZWRldGFpbHM/Lm5leHRUb2tlbiA6ICcnLFxyXG4gICAgICBEYXRlOiBmaWxlZGF0YT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgIGNvdW50OmZpbGVkYXRhPy50b3RhbGZpbGVzXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuYXVkaXRzZXJ2aWNlLmdldEF1ZGl0TWFwcGluZyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlZGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5kYXRhPy5maWxlPy5uZXh0VG9rZW4pIHtcclxuICAgICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcocmVzPy5kYXRhPy5maWxlPy5uZXh0VG9rZW4pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMClcclxuICAgICAgICAgIGlmIChyZXM/LmRhdGE/LmlzRHJhZnQpIHtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndGltZVNwZW50JywgSlNPTi5zdHJpbmdpZnkocmVzPy5kYXRhPy50aW1lU3BlbnQpKTtcclxuICAgICAgICAgICAgdGhpcy5zcGlubmVyc3RhcnQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlckRhdGEgPSByZXM/LmRhdGE/LnJlc3VsdC5maWx0ZXIoKHg6IGFueSkgPT4geC50eXBlID09PSBkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IGdldE1hcHBpbmcgfiBmaWx0ZXJEYXRhOlwiLCBmaWx0ZXJEYXRhKVxyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YS50eXBlLCBKU09OLnN0cmluZ2lmeShmaWx0ZXJEYXRhWzBdLnZhbHVlKSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgbGV0IGN1c3RvbWVyRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0LmZpbHRlcigoeDogYW55KSA9PiB4LnR5cGUgPT09ICdjdXN0b21lcicpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFN0YXJ0QXVkaXRDb21wb25lbnQgfiBnZXRNYXBwaW5nIH4gY3VzdG9tZXJEYXRhOlwiLCBjdXN0b21lckRhdGEpXHJcbiAgICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IGN1c3RvbWVyRGF0YVswXS52YWx1ZVxyXG4gICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJEYXRhWzBdLnZhbHVlKTtcclxuICAgICAgICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLnRvdGFsZmlsZSA9IHJlcz8uZGF0YT8uY291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSByZXM/LmRhdGE/LmZpbGU7XHJcblxyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFN0YXJ0QXVkaXRDb21wb25lbnQgfiBnZXRNYXBwaW5nIH4gZGF0YS50eXBlOlwiLCBkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgdmFyIGNvdW50ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGEudHlwZSkgfHwgJ3t9JylcclxuICAgICAgICAgICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlcz8uZGF0YT8ucmVzdWx0Py5yZXRhZ19pbWFnZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICAgICAgY3VzdG9tZXIgPSBbLi4uY3VzdG9tZXIsIC4uLnJlcy5kYXRhLnJlc3VsdC5yZXRhZ19pbWFnZV1cclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEgPSBjdXN0b21lcjtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIHRvdGFsZmlsZXMgPSB7XHJcbiAgICAgICAgICAgICAgXCJzdG9yZWRldGFpbHNcIjoge1xyXG4gICAgICAgICAgICAgICAgXCJzdG9yZU5hbWVcIjogcmVzPy5kYXRhPy5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogcmVzPy5kYXRhPy5hZGRyZXNzXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcInRvdGFsZmlsZXNcIjogdGhpcy5zdG9yZWRldGFpbHM/LmNvdW50LFxyXG4gICAgICAgICAgICAgIFwiYXVkaXRJZFwiOiByZXM/LmRhdGEuZmlsZT8uYXVkaXRJZCxcclxuICAgICAgICAgICAgICBcImZpbGVkZXRhaWxzXCI6IHtcclxuICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlZGV0YWlscz8uZmlsZT8uc3RvcmVJZCxcclxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiByZXM/LmRhdGE/LmZpbGU/LkRhdGUsXHJcbiAgICAgICAgICAgICAgICBcInVzZXJJZFwiOiByZXM/LmRhdGE/LmZpbGU/LnVzZXJJZCxcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50SWRcIjogcmVzPy5kYXRhPy5maWxlPy5jbGllbnRJZCxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KHRvdGFsZmlsZXMpKVxyXG4gICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IGZhbHNlXHJcbiAgICAgICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgICAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgICAgICAgICBpZiAoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5uZXh0VG9rZW4pIHtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRJZCA9IHJlcy5kYXRhLmZpbGU/LmF1ZGl0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3RhbGZpbGUgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMgPSByZXM/LmRhdGE/LmZpbGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscy56b25lTmFtZSA9IHJlcz8uZGF0YT8uZmlsZT8uem9uZU5hbWU7XHJcbiAgICAgICAgICAgICAgaWYgKCdhdWRpdCcgaW4gc2Vzc2lvblN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1ZGl0bWFwcGluZ2RhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhID0gWy4uLnRoaXMuYXVkaXRtYXBwaW5nZGF0YSwgLi4ucmVzPy5kYXRhPy5yZXN1bHRdXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJjb3VudCA9IHRoaXMuYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcxID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlZGV0YWlscyA9IHJlcz8uZGF0YT8uZmlsZTtcclxuICAgICAgICAgICAgICB0aGlzLmF1ZGl0SWQgPSByZXMuZGF0YS5maWxlPy5hdWRpdElkO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXVkaXRtYXBwaW5nZGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgICAgICAgIHRoaXMudG90YWxmaWxlID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVkZXRhaWxzLnF1ZXVlTmFtZSA9IHRoaXMucXVldWVOYW1lO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsZWRldGFpbHMuem9uZU5hbWUgPSByZXM/LmRhdGE/LmZpbGU/LnpvbmVOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEpO1xyXG4gICAgICAgICAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gICAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICAgIHRvdGFsZmlsZXM6IHRoaXMudG90YWxmaWxlLFxyXG4gICAgICAgICAgICAgIGZpbGVkZXRhaWxzOiB0aGlzLmZpbGVkZXRhaWxzLFxyXG4gICAgICAgICAgICAgIGF1ZGl0SWQ6IHRoaXMuYXVkaXRJZCxcclxuXHJcbiAgICAgICAgICAgICAgc3RvcmVkZXRhaWxzOiB7XHJcbiAgICAgICAgICAgICAgICBcInN0b3JlTmFtZVwiOiByZXM/LmRhdGE/LnN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiByZXM/LmRhdGE/LmFkZHJlc3NcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RvdGFsZmlsZXMnLCBKU09OLnN0cmluZ2lmeShvYmopKVxyXG4gICAgICAgICAgICB0aGlzLnNwaW5uZXJzdGFydCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKCFyZXMgfHwgcmVzLmNvZGUgPT0gMjA0KSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb3VudGVyIDwgNikge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXIgPSB0aGlzLmNvdW50ZXIgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLmdldE1hcHBpbmcoKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFuZXh0SWQpIHsgdGhpcy5Ob2RhdGEgPSB0cnVlIH0gZWxzZSB7IH1cclxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3kubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd05vdGljZSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICBpZiAoZXJyPy5zdGF0dXMgPT0gNDA0KSB7XHJcbiAgICAgICAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuICAgICAgICAgIGlmIChmaWxlZGF0YS5maWxlZGV0YWlscyAmJiBmaWxlZGF0YS5maWxlZGV0YWlscy5uZXh0VG9rZW4pIHtcclxuICAgICAgICAgICAgZGVsZXRlIGZpbGVkYXRhLmZpbGVkZXRhaWxzLm5leHRUb2tlbjtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KGZpbGVkYXRhKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TWFwcGluZygnJylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yPy5tZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbW92ZWF1ZGl0KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFJlbW92ZUF1ZGl0Q29tcG9uZW50LCB7XHJcbiAgICAgIHNpemU6ICdsZycsXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZVxyXG4gICAgfSlcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBkYXRhLFxyXG4gICAgICBtb2RhbFJlZi5jbG9zZWQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5yZWxvYWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdGlhbF9kYXRhX2xvYWRpbmcoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgYWxsb3dEcm9wKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBkcmFnSW1hZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBldmVudC50YXJnZXQuaWQpO1xyXG4gIH1cclxuXHJcbiAgZHJvcEltYWdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBkcmFnZ2VkSW1hZ2VJZCA9IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XHJcbiAgICBjb25zdCBkcmFnZ2VkSW1hZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkcmFnZ2VkSW1hZ2VJZCk7XHJcbiAgICBldmVudC50YXJnZXQuYXBwZW5kQ2hpbGQoZHJhZ2dlZEltYWdlKTtcclxuICAgIGNvbnN0IGRyb3Bab25lID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgoZGF0YTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChkYXRhLmltZ19uYW1lID09IGRyb3Bab25lLmlkKSB7XHJcbiAgICAgICAgaWYgKGRhdGEubWFwcGVkaWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdmFyIGZpbmRvbmUgPSB0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuaW1nX25hbWUgPT0gZHJhZ2dlZEltYWdlSWQpXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhmaW5kb25lKVxyXG4gICAgICAgICAgaWYgKGZpbmRvbmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YS5jb3VudCArIGZpbmRvbmVbMF0uY291bnRcclxuICAgICAgICAgICAgZGF0YS5tYXBwZWRpZCA9IFsuLi5kYXRhLm1hcHBlZGlkLCAuLi5maW5kb25lWzBdLm1hcHBlZGlkXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCdkdXBsaWNhdGUnIGluIHNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZHVwbGljYXRlJykgfHwgJ3t9JylcclxuICAgICAgICAgICAgZmlsZWRhdGEgPSBbLi4uZmlsZWRhdGEsIC4uLmZpbmRvbmVdXHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2R1cGxpY2F0ZScsIEpTT04uc3RyaW5naWZ5KGZpbGVkYXRhKSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2R1cGxpY2F0ZScsIEpTT04uc3RyaW5naWZ5KGZpbmRvbmUpKVxyXG4gICAgICAgICAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2R1cGxpY2F0ZScpIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFN0YXJ0QXVkaXRDb21wb25lbnQgfiBkcm9wSW1hZ2UgfiBmaWxlZGF0YTpcIiwgZmlsZWRhdGEpXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY291bnQgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAne30nKVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gY291bnQ/Lmxlbmd0aFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGF0YS5jb3VudCA9IGRhdGEuY291bnQgKyAxLFxyXG4gICAgICAgICAgICBkYXRhLm1hcHBlZGlkLnB1c2goZHJhZ2dlZEltYWdlSWQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLnNwbGljZSh0aGlzLmF1ZGl0bWFwcGluZ2RhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkcmFnZ2VkSW1hZ2VJZCksIDEpO1xyXG4gICAgdGhpcy5hdWRpdG1hcHBpbmdkYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnNlbGVjdGVkID0gZmFsc2UpXHJcbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hdWRpdG1hcHBpbmdkYXRhKTtcclxuICAgIGNvbnN0IGNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuY29tcHJlc3MoanNvblN0cmluZyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdWRpdCcsIGNvbXByZXNzZWREYXRhKVxyXG4gIH1cclxuXHJcbiAgZHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xyXG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgdGFyZ2V0LmlkKTtcclxuICB9XHJcblxyXG4gIFJldmlld2RhdGEoKSB7XHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ1Njcm9sbCBEb3duIHRvIGJvdHRvbSBsb2FkIHRoZSBmaWxlcyBiZWZvcmUgTW92ZSB0byBOZXh0IHBhZ2UhJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgIGxldCBzdG9yZWREYXRhID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgIHZhbHVlOiBjdXN0b21lciA/IGN1c3RvbWVyIDogW10sXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcblxyXG4gICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IHNlc3Npb252YWx1ZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICdbXScpO1xyXG4gICAgICAgIHN0b3JlZERhdGEucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTogc2Vzc2lvbnZhbHVlJiZzZXNzaW9udmFsdWUubGVuZ3RoPjAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFN0YXJ0QXVkaXRDb21wb25lbnQgfiBSZXZpZXdkYXRhIH4gc3RvcmVkRGF0YTpcIiwgc3RvcmVkRGF0YSlcclxuICAgICAgdmFyIGluc2Vyb2JqOiBhbnkgPSB7XHJcbiAgICAgICAgdXNlckNvbW1hbmRzOiB0aGlzLmRhdGFyZWFzb24gPyB0aGlzLmRhdGFyZWFzb24gOiBcIlwiLFxyXG4gICAgICAgICBjdXN0b21lckNvdW50OiBjdXN0b21lciA/IGN1c3RvbWVyPy5sZW5ndGggOiAwLFxyXG4gICAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgIHRvdGFsQ291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlcyA/IHRvdGFsZmlsZS50b3RhbGZpbGVzIDogMCxcclxuICAgICAgICByZXRhZ0NvdW50OiAwLFxyXG4gICAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICAgIHJldGFnSW1hZ2U6IFtdLFxyXG4gICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gU3RhcnRBdWRpdENvbXBvbmVudCB+IFJldmlld2RhdGEgfiBpbnNlcm9iajpcIiwgaW5zZXJvYmopXHJcbiAgICAgIHRoaXMuYXVkaXRzZXJ2aWNlLnNhdmVEcmFmdChpbnNlcm9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS90aWNrZXRzL21hcHBpbmctbGlzdFwiXSlcclxuICAgICAgICAgIH0gaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5tZXNzYWdlXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvciwgeyBjZW50ZXJlZDogdHJ1ZSB9KVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlcnI/LmNvZGUgPT0gNDAwIHx8IGVycj8uY29kZSA9PSAyMDQgfHwgZXJyPy5jb2RlID09IDQwNCB8fCBlcnI/LmNvZGUgPT0gNTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSBlcnIubWVzc2FnZVxyXG4gICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IsIHsgY2VudGVyZWQ6IHRydWUgfSlcclxuICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHZpZXdjYXRlZ29yeShkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihWaWV3Y2F0ZWdvcnlDb21wb25lbnQsIHtcclxuICAgICAgc2l6ZTogJ2xnJyxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcclxuICAgICAga2V5Ym9hcmQ6IGZhbHNlXHJcbiAgICB9KVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IGRhdGFcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmltYWdlTGlzdCA9IGRhdGEsXHJcbiAgICAgIG1vZGFsUmVmLmNsb3NlZC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LnJlbG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsX2RhdGFfbG9hZGluZygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBhc3luYyBzYXZlZHJhZnQoKSB7XHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgaWYgKGZpbGVkYXRhPy5maWxlZGV0YWlscz8ubmV4dFRva2VuKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ1Njcm9sbCBEb3duIHRvIGJvdHRvbSBsb2FkIHRoZSBmaWxlcyBiZWZvcmUgc2F2ZSEnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3Blbm1vZGVsID0gdHJ1ZTtcclxuICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybURyYWZ0LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCdcclxuICAgICAgfSlcclxuICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFN0YXJ0QXVkaXRDb21wb25lbnQgfiBzYXZlZHJhZnQgfiByZXN1bHQ6XCIsIHJlc3VsdClcclxuICAgICAgICBcclxuICAgICAgICBpZiAocmVzdWx0ID09PSAnaXNEZW5pZWQnKSB7XHJcbiAgICAgICAgICB2YXIgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICAgICAgbGV0IHN0b3JlZERhdGEgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBcImN1c3RvbWVyXCIsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbWVyID8gY3VzdG9tZXIgOiBbXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG5cclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IHNlc3Npb252YWx1ZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhLnR5cGUpIHx8ICdbXScpO1xyXG4gICAgICAgICAgICBzdG9yZWREYXRhLnB1c2goe1xyXG4gICAgICAgICAgICAgIHR5cGU6IGRhdGEudHlwZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogc2Vzc2lvbnZhbHVlJiZzZXNzaW9udmFsdWUubGVuZ3RoPjAgPyBzZXNzaW9udmFsdWUgOiBbXVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgICAgICAgdXNlckNvbW1hbmRzOiB0aGlzLmRhdGFyZWFzb24gPyB0aGlzLmRhdGFyZWFzb24gOiBcIlwiLFxyXG4gICAgICAgICAgICAvLyAgIHVzZXJJZDogdXNlcj8udXNlcixcclxuICAgICAgICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHMuYXVkaXRJZCxcclxuICAgICAgICAgICAgdG90YWxDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzID8gdG90YWxmaWxlLnRvdGFsZmlsZXMgOiAwLFxyXG4gICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXIgPyBjdXN0b21lcj8ubGVuZ3RoIDogMCxcclxuICAgICAgICAgICAgcmV0YWdDb3VudDogMCxcclxuICAgICAgICAgICAgdGltZVNwZW50OiB0aGlzLnRpbWVQYXNzZWQsXHJcbiAgICAgICAgICAgIHJldGFnSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBkcmFmdGVkRGF0YTogc3RvcmVkRGF0YVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5hdWRpdHNlcnZpY2Uuc2F2ZURyYWZ0KGluc2Vyb2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRTdWNjZXNzVG9hc3QocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvcilcclxuICAgICAgICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGVycj8uY29kZSA9PSA0MDAgfHwgZXJyPy5jb2RlID09IDIwNCB8fCBlcnI/LmNvZGUgPT0gNDA0IHx8IGVycj8uY29kZSA9PSA1MDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmdldEVycm9yVG9hc3QoJ0ZpbGUgbm90IHNhdmVkIScpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJ2lzQ29uZmlybWVkJykge1xyXG4gICAgICAgICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcblxyXG4gICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICBsZXQgc3RvcmVkRGF0YSA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tZXJcIixcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5hdWRpdG1hcHBpbmdkYXRhID8gdGhpcy5hdWRpdG1hcHBpbmdkYXRhIDogW10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9udmFsdWUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YS50eXBlKSB8fCAnW10nKTtcclxuICAgICAgICAgICAgc3RvcmVkRGF0YS5wdXNoKHtcclxuICAgICAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHNlc3Npb252YWx1ZSYmc2Vzc2lvbnZhbHVlLmxlbmd0aD4wID8gc2Vzc2lvbnZhbHVlIDogW11cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICB2YXIgaW5zZXJvYmo6IGFueSA9IHtcclxuICAgICAgICAgICAgdXNlckNvbW1hbmRzOiB0aGlzLmRhdGFyZWFzb24gPyB0aGlzLmRhdGFyZWFzb24gOiBcIlwiLFxyXG4gICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXIgPyBjdXN0b21lcj8ubGVuZ3RoIDogMCxcclxuICAgICAgICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgYXVkaXRUeXBlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy50eXBlLFxyXG4gICAgICAgICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscy5hdWRpdElkLFxyXG4gICAgICAgICAgICB0b3RhbENvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMgPyB0b3RhbGZpbGUudG90YWxmaWxlcyA6IDAsXHJcbiAgICAgICAgICAgIHJldGFnQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkLFxyXG4gICAgICAgICAgICByZXRhZ0ltYWdlOiBbXSxcclxuICAgICAgICAgICAgIGRyYWZ0ZWREYXRhOiBzdG9yZWREYXRhXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF1ZGl0c2VydmljZS5zYXZlRHJhZnQoaW5zZXJvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChlcnI/LmNvZGUgPT0gNDAwIHx8IGVycj8uY29kZSA9PSAyMDQgfHwgZXJyPy5jb2RlID09IDQwNCB8fCBlcnI/LmNvZGUgPT0gNTAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5nZXRFcnJvclRvYXN0KCdGaWxlIG5vdCBzYXZlZCEnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICB0aGlzLm9wZW5tb2RlbCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJhY2t0b3RpY2tldHMoKSB7ICAgXHJcbiAgICAgIHRoaXMuc2F2ZWRyYWZ0KCk7XHJcbiAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICBcclxuICB9XHJcbiAgY2FtZXJhUHJldmlldygpIHtcclxuICAgIC8vIGNvbnN0IE1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihDYW1lcmFQcmV2aWV3Q29tcG9uZW50LHtcclxuICAgIC8vICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAvLyAgIHNpemU6J2xnJ1xyXG4gICAgLy8gfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1iLTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHctNDBweCBiZy13aGl0ZSBjdXJzb3ItcG9pbnRlciBtZS01IHRleHQtY2VudGVyXCIgKGNsaWNrKT1cImJhY2t0b3RpY2tldHMoKVwiPjxzdmdcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODMzNCAxMEg0LjE2NjY5TTQuMTY2NjkgMTBMMTAgMTUuODMzNE00LjE2NjY5IDEwTDEwIDQuMTY2NjlcIiBzdHJva2U9XCIjMzQ0MDU0XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgKGNsaWNrKT1cImNhbWVyYVByZXZpZXcoKVwiPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LkRhdGVcIj57e2ZpbGVkZXRhaWxzPy5EYXRlfX08L3NwYW4+PHNwYW4+IC1cclxuICAgICAgICAgICAgPC9zcGFuPjxzcGFuICpuZ0lmPVwiZmlsZWRldGFpbHM/LnN0b3JlSWRcIj57e2ZpbGVkZXRhaWxzPy5zdG9yZUlkfX08L3NwYW4+PHNwYW4+IC0gPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uc3RvcmVOYW1lXCI+e3tzdG9yZWRldGFpbHM/LnN0b3JlTmFtZX19PC9zcGFuPjxzcGFuICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSd6b25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgLSA8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZWRldGFpbHM/LnpvbmVOYW1lICYmIHNlbGVjdGVkVHlwZSA9PT0nem9uZSdcIj57e2ZpbGVkZXRhaWxzPy56b25lTmFtZX19PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0b3JlZGV0YWlscz8uYWRkcmVzc1wiPiB8IHt7c3RvcmVkZXRhaWxzPy5hZGRyZXNzfX0gPC9zcGFuPjwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJnLXRpbWVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zIHRleHQtdGltZXIgZnctc2VtaWJvbGRcIj57eyBmb3JtYXR0ZWRUaW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMTY2NjcgMi44NzA3MUM5LjE2NjY3IDIuNjIwMjMgOS4yNjYxNyAyLjM4MDAxIDkuNDQzMjkgMi4yMDI4OUM5LjYyMDQxIDIuMDI1NzcgOS44NjA2MyAxLjkyNjI3IDEwLjExMTEgMS45MjYyN0gxMy44ODg5QzE0LjEzOTQgMS45MjYyNyAxNC4zNzk2IDIuMDI1NzcgMTQuNTU2NyAyLjIwMjg5QzE0LjczMzggMi4zODAwMSAxNC44MzMzIDIuNjIwMjMgMTQuODMzMyAyLjg3MDcxQzE0LjgzMzMgMy4xMjEyIDE0LjczMzggMy4zNjE0MiAxNC41NTY3IDMuNTM4NTRDMTQuMzc5NiAzLjcxNTY1IDE0LjEzOTQgMy44MTUxNiAxMy44ODg5IDMuODE1MTZIMTIuOTQ0NFY1LjA3NDQyTDEyLjk0MzIgNS4xMjYwNUMxNC41Mzk2IDUuMzAwOTcgMTYuMDUyOCA1LjkyNzg3IDE3LjMwNTMgNi45MzMwOEwxNy4zMTQxIDYuOTI1NTNMMTguMjU4NSA1Ljk4MTA4QzE4LjM3NCA1Ljg1Njc2IDE4LjUyMDggNS43NjU4OCAxOC42ODM1IDUuNzE4MDFDMTguODQ2MyA1LjY3MDE0IDE5LjAxOSA1LjY2NzA2IDE5LjE4MzMgNS43MDkwOEMxOS4zNDc3IDUuNzUxMTEgMTkuNDk3NyA1LjgzNjY5IDE5LjYxNzUgNS45NTY4QzE5LjczNzMgNi4wNzY5MiAxOS44MjI1IDYuMjI3MTMgMTkuODY0MSA2LjM5MTZDMTkuOTA2IDYuNTU1NzggMTkuOTAzIDYuNzI4MjMgMTkuODU1NCA2Ljg5MDg1QzE5LjgwNzcgNy4wNTM0OCAxOS43MTcyIDcuMjAwMjkgMTkuNTkzMyA3LjMxNTlMMTguNjQ4OSA4LjI2MDM0TDE4LjY0MTMgOC4yNjkxNUMxOS42NDAzIDkuNTE5NzQgMjAuMjY1OCAxMS4wMjcgMjAuNDQ2IDEyLjYxNzRDMjAuNjI2MSAxNC4yMDc4IDIwLjM1MzYgMTUuODE2NyAxOS42NTk3IDE3LjI1OTFDMTguOTY1OCAxOC43MDE0IDE3Ljg3ODggMTkuOTE4NSAxNi41MjM3IDIwLjc3MDRDMTUuMTY4NiAyMS42MjIyIDEzLjYwMDYgMjIuMDc0MSAxMiAyMi4wNzQxQzEwLjM5OTQgMjIuMDc0MSA4LjgzMTM3IDIxLjYyMjIgNy40NzYyOSAyMC43NzA0QzYuMTIxMjIgMTkuOTE4NSA1LjAzNDE5IDE4LjcwMTQgNC4zNDAzIDE3LjI1OTFDMy42NDY0MSAxNS44MTY3IDMuMzczODYgMTQuMjA3OCAzLjU1NDAyIDEyLjYxNzRDMy43MzQxOCAxMS4wMjcgNC4zNTk3MyA5LjUxOTc0IDUuMzU4NjcgOC4yNjkxNUw1LjM1MTExIDguMjYwMzRMNC40MDY2NyA3LjMxNTlDNC4yMzk2NCA3LjEzNjkgNC4xNDg2NSA2LjkwMDAzIDQuMTUyODcgNi42NTUyNEM0LjE1NzEgNi40MTA0NSA0LjI1NjIyIDYuMTc2ODcgNC40MjkzNCA2LjAwMzc1QzQuNjAyNDYgNS44MzA2MyA0LjgzNjA0IDUuNzMxNTEgNS4wODA4MyA1LjcyNzI4QzUuMzI1NjIgNS43MjMwNiA1LjU2MjQ5IDUuODE0MDUgNS43NDE0OSA1Ljk4MTA4TDYuNjg1OTMgNi45MjU1M0w2LjY5NDc0IDYuOTMzMDhDNy45NDY4MSA1LjkyODA5IDkuNDU5NjMgNS4zMDEyIDExLjA1NTYgNS4xMjYwNVYzLjgxNTE2SDEwLjExMTFDOS44NjA2MyAzLjgxNTE2IDkuNjIwNDEgMy43MTU2NSA5LjQ0MzI5IDMuNTM4NTRDOS4yNjYxNyAzLjM2MTQyIDkuMTY2NjcgMy4xMjEyIDkuMTY2NjcgMi44NzA3MVpNMTIgMjAuMTg1NUMxMy43NTM1IDIwLjE4NTQgMTUuNDM1MiAxOS40ODg2IDE2LjY3NSAxOC4yNDg1QzE3LjkxNDggMTcuMDA4NSAxOC42MTEzIDE1LjMyNjcgMTguNjExMSAxMy41NzMyQzE4LjYxMDkgMTEuODE5NiAxNy45MTQyIDEwLjEzOCAxNi42NzQxIDguODk4MTNDMTUuNDM0MSA3LjY1ODMxIDEzLjc1MjMgNi45NjE4OCAxMS45OTg3IDYuOTYyMDRDMTAuMjQ1MiA2Ljk2MjIxIDguNTYzNTQgNy42NTg5NiA3LjMyMzcyIDguODk5MDJDNi4wODM5IDEwLjEzOTEgNS4zODc0NyAxMS44MjA5IDUuMzg3NjMgMTMuNTc0NEM1LjM4NzggMTUuMzI4IDYuMDg0NTUgMTcuMDA5NiA3LjMyNDYxIDE4LjI0OTRDOC41NjQ2NyAxOS40ODkzIDEwLjI0NjUgMjAuMTg1NyAxMiAyMC4xODU1Wk0xMi40ODk5IDExLjc0ODVMMTQuMTY0NyAxMC4wNzM3QzE0LjI1MTcgOS45ODM0MyAxNC4zNTU5IDkuOTExNDMgMTQuNDcxMSA5Ljg2MTg4QzE0LjU4NjMgOS44MTIzMyAxNC43MTAyIDkuNzg2MjIgMTQuODM1NiA5Ljc4NTA3QzE0Ljk2MTEgOS43ODM5MiAxNS4wODU0IDkuODA3NzYgMTUuMjAxNSA5Ljg1NTE5QzE1LjMxNzYgOS45MDI2MiAxNS40MjMxIDkuOTcyNyAxNS41MTE4IDEwLjA2MTNDMTUuNjAwNSAxMC4xNSAxNS42NzA3IDEwLjI1NTQgMTUuNzE4MiAxMC4zNzE0QzE1Ljc2NTggMTAuNDg3NSAxNS43ODk3IDEwLjYxMTggMTUuNzg4NyAxMC43MzcyQzE1Ljc4NzcgMTAuODYyNiAxNS43NjE3IDEwLjk4NjYgMTUuNzEyMiAxMS4xMDE4QzE1LjY2MjggMTEuMjE3MSAxNS41OTA5IDExLjMyMTMgMTUuNTAwNyAxMS40MDg1TDEzLjgyNTkgMTMuMDg0NkMxMy45MDAzIDEzLjM2NDUgMTMuOTA5NSAxMy42NTc5IDEzLjg1MjYgMTMuOTQyQzEzLjc5NTggMTQuMjI2IDEzLjY3NDUgMTQuNDkzMyAxMy40OTgxIDE0LjcyMzFDMTMuMzIxNyAxNC45NTI5IDEzLjA5NDkgMTUuMTM5MSAxMi44MzUyIDE1LjI2NzVDMTIuNTc1NCAxNS4zOTU4IDEyLjI4OTcgMTUuNDYyOCAxMiAxNS40NjMzQzExLjczMjcgMTUuNDYxIDExLjQ2ODggMTUuNDAxOSAxMS4yMjYgMTUuMjlDMTAuOTgzMiAxNS4xNzgxIDEwLjc2NyAxNS4wMTU5IDEwLjU5MTYgMTQuODE0MUMxMC40MTYyIDE0LjYxMjMgMTAuMjg1NyAxNC4zNzU1IDEwLjIwODcgMTQuMTE5NUMxMC4xMzE2IDEzLjg2MzUgMTAuMTA5OSAxMy41OTQgMTAuMTQ0OCAxMy4zMjlDMTAuMTc5OCAxMy4wNjM5IDEwLjI3MDYgMTIuODA5MyAxMC40MTE0IDEyLjU4MkMxMC41NTIyIDEyLjM1NDcgMTAuNzM5NiAxMi4xNTk5IDEwLjk2MTMgMTIuMDEwNEMxMS4xODMgMTEuODYxIDExLjQzMzkgMTEuNzYwNCAxMS42OTc0IDExLjcxNTJDMTEuOTYwOSAxMS42NzAxIDEyLjIzMSAxMS42ODE0IDEyLjQ4OTkgMTEuNzQ4NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmQgcHktMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBvdmVyZmxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInctNTBweCBoLTUwcHggYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciByb3VuZGVkLTNcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI4IDI4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMSAxNS4xNjY3VjIzLjMzMzRINC42NjY2NVY3LjAwMDA0SDEwLjUyMzNDMTAuNTgxNiA2LjE3MTcxIDEwLjc4IDUuMzkwMDQgMTEuMDgzMyA0LjY2NjcxSDQuNjY2NjVDMy4zODMzMSA0LjY2NjcxIDIuMzMzMzEgNS43MTY3MSAyLjMzMzMxIDcuMDAwMDRWMjMuMzMzNEMyLjMzMzMxIDI0LjYxNjcgMy4zODMzMSAyNS42NjY3IDQuNjY2NjUgMjUuNjY2N0gyMUMyMi4yODMzIDI1LjY2NjcgMjMuMzMzMyAyNC42MTY3IDIzLjMzMzMgMjMuMzMzNFYxNy41TDIxIDE1LjE2NjdaTTE5LjI1IDIxSDYuNDE2NjVMOS42MjQ5OCAxNi44ODE3TDExLjkxMTYgMTkuNjM1TDE1LjEyIDE1LjUwNUwxOS4yNSAyMVpNMjIuNTE2NiAxMC4zNzE3QzIzLjAzIDkuNTU1MDQgMjMuMzMzMyA4LjYxMDA0IDIzLjMzMzMgNy41ODMzN0MyMy4zMzMzIDQuNjc4MzcgMjAuOTg4MyAyLjMzMzM3IDE4LjA4MzMgMi4zMzMzN0MxNS4xNzgzIDIuMzMzMzcgMTIuODMzMyA0LjY3ODM3IDEyLjgzMzMgNy41ODMzN0MxMi44MzMzIDEwLjQ4ODQgMTUuMTc4MyAxMi44MzM0IDE4LjA3MTYgMTIuODMzNEMxOS4wOTgzIDEyLjgzMzQgMjAuMDU1IDEyLjUzIDIwLjg2IDEyLjAxNjdMMjQuNSAxNS42NTY3TDI2LjE1NjYgMTRMMjIuNTE2NiAxMC4zNzE3Wk0xOC4wODMzIDEwLjVDMTcuMzA5OCAxMC41IDE2LjU2NzkgMTAuMTkyNyAxNi4wMjA5IDkuNjQ1NzdDMTUuNDczOSA5LjA5ODc5IDE1LjE2NjYgOC4zNTY5MiAxNS4xNjY2IDcuNTgzMzdDMTUuMTY2NiA2LjgwOTgzIDE1LjQ3MzkgNi4wNjc5NiAxNi4wMjA5IDUuNTIwOThDMTYuNTY3OSA0Ljk3NCAxNy4zMDk4IDQuNjY2NzEgMTguMDgzMyA0LjY2NjcxQzE4Ljg1NjkgNC42NjY3MSAxOS41OTg3IDQuOTc0IDIwLjE0NTcgNS41MjA5OEMyMC42OTI3IDYuMDY3OTYgMjEgNi44MDk4MyAyMSA3LjU4MzM3QzIxIDguMzU2OTIgMjAuNjkyNyA5LjA5ODc5IDIwLjE0NTcgOS42NDU3N0MxOS41OTg3IDEwLjE5MjcgMTguODU2OSAxMC41IDE4LjA4MzMgMTAuNVpcIiBmaWxsPVwiIzAwQTNGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IFxyXG4gICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1sYWJlbCBtcy0yXCI+PHNwYW4gKm5nSWY9XCJmaWxlZGV0YWlscz8udHlwZVwiPnt7ZmlsZWRldGFpbHM/LnR5cGUgPyBmaWxlZGV0YWlscz8udHlwZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWxlZGV0YWlsc1wiIGNsYXNzPVwic3ViLXRleHQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTQ1MDhfMTg1ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yLjUgMTAuNUg5LjVDMTAuMDUyMyAxMC41IDEwLjUgMTAuMDUyMyAxMC41IDkuNVYyLjVDMTAuNSAxLjk0NzcyIDEwLjA1MjMgMS41IDkuNSAxLjVIMi41QzEuOTQ3NzIgMS41IDEuNSAxLjk0NzcyIDEuNSAyLjVWOS41QzEuNSAxMC4wNTIzIDEuOTQ3NzIgMTAuNSAyLjUgMTAuNVpNMi41IDEwLjVMOCA1TDEwLjUgNy41TTUgNC4yNUM1IDQuNjY0MjEgNC42NjQyMSA1IDQuMjUgNUMzLjgzNTc5IDUgMy41IDQuNjY0MjEgMy41IDQuMjVDMy41IDMuODM1NzkgMy44MzU3OSAzLjUgNC4yNSAzLjVDNC42NjQyMSAzLjUgNSAzLjgzNTc5IDUgNC4yNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE0NTA4XzE4NTgzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+e3t0b3RhbGZpbGUgPyB0b3RhbGZpbGUgOiAwfX0gQWZ0ZXIgQ291bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMSByb3VuZGVkLTMgdy1hdXRvIGgtNDVweCBweC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0LW5vd3JhcCBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBteC0yXCIgKGNsaWNrKT1cInZpZXdjYXRlZ29yeShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS0yXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPnt7aXRlbT8ubmFtZX19PHNwYW4gY2xhc3M9XCIgbXMtMyBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1lLTUgdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtPy5rZXl9fTwvc3Bhbj48L2Rpdj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xIHJvdW5kZWQtMyB3LWF1dG8gaC00NXB4IHB4LTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNSBoLTEwMCBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0IGZ3LXNlbWlib2xkIHBlLW5vbmVcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtZS01XCI+e3thdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggPyBhdWRpdG1hcHBpbmdkYXRhPy5sZW5ndGggOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+VW5pcXVlIEN1c3RvbWVyczwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXVkaXRMb2FkaW5nICYmICFOb2RhdGFcIiBjbGFzcz1cImNhcmQtdG9vbGJhciB0ZXh0LW5vd3JhcCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgbXMtMyBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVtcGxveWVlY291bnQgJiYgIWp1bmtjb3VudCAmJiAoYXVkaXRtYXBwaW5nZGF0YT8ubGVuZ3RoID09PSB0b3RhbGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZWRyYWZ0KClcIj5TYXZlIERyYWZ0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgcHktMiBtcy0zXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlJldmlld2RhdGEoKVwiPlJldmlldyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjY2NiA5Ljk5OTk2SDE1LjgzMzNNMTUuODMzMyA5Ljk5OTk2TDkuOTk5OTkgNC4xNjY2M00xNS44MzMzIDkuOTk5OTZMOS45OTk5OSAxNS44MzMzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBzY3JvbGwtdG9wIC0tPlxyXG48ZGl2IGNsYXNzPVwiY2FyZCBtdC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXVkaXRMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTm9kYXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgY29udmVyc2lvbiBmdW5uZWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gc2Nyb2xsLXkgaC01MDBweCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhdWRpdExvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC0xMiBpdGVtIFwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXVkaXRtYXBwaW5nZGF0YTtsZXQgaT1pbmRleFwiIHN0eWxlPVwicGFkZGluZzogNXB4IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0zIG15LTMgaW1nXCIgW3NyY109XCJpdGVtPy5pbWdfcGF0aFwiIGlkPVwie3tpdGVtPy5pbWdfbmFtZX19XCIgYWx0PVwiSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIiAoZHJvcCk9XCJkcm9wSW1hZ2UoJGV2ZW50KVwiIGRyYWdnYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdJbWFnZSgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZUltYWdlKGl0ZW0/LmltZ19uYW1lIClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aXRlbT8uaW1nX25hbWV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0/LnNlbGVjdGVkXCIgY2xhc3M9XCJub3RpZnktYmFkZ2UxXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMEEzRkZcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3RpZnktYmFkZ2UgY3Vyc29yLXBvaW50ZXJcIiAgKGNsaWNrKT1cInJlbW92ZWF1ZGl0KGl0ZW0pXCIgKm5nSWY9XCJpdGVtPy5jb3VudD4xXCI+e3tpdGVtPy5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5neC1zcGlubmVyIHNpemU9XCJtZWRpdW1cIiB0eXBlPVwiYmFsbC1hdG9tXCI+PC9uZ3gtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtRHJhZnQgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgaC1hdXRvIHAtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1ncmlkIHAtMCBib3JkZXItMFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZ2V0QmFja1wiPjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvZGFuZ2VyLWljb24uc3ZnXCI+PC9zcGFuPiAgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsIG10LTVcIj5TYXZlIENoYW5nZXM8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZ2V0QmFja1wiIGNsYXNzPVwiY2FyZC1sYWJlbCBtdC01XCI+VW5zYXZlZCBDaGFuZ2VzPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zdWIgbXQtNVwiPkRvIHlvdSB3YW50IHRvIGRyYWZ0IHRoZSBmaWxlPzwvcD5cclxuICAgICAgICAgICAgPCEtLSA8cCAqbmdJZj1cImdldEJhY2tcIiBjbGFzcz1cInRleHQtc3ViIG10LTVcIj5EbyB5b3Ugd2FudCB0byBnZXQgYmFjaz88L3A+IC0tPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtNVwiIFsobmdNb2RlbCldPVwiZGF0YXJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgeW91ciByZWFzb24gKFJlcXVpcmVkKSAuLi5cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctNTAgbWUtMiBmdy1ib2xkXCIgW2Rpc2FibGVkXT1cIiFkYXRhcmVhc29uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ2lzQ29uZmlybWVkJylcIj5TYXZlICYgRXhpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBzYXZlYnRuIHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNEZW5pZWQnKVwiPnNhdmUgJlxyXG4gICAgICAgICAgICAgICAgICAgIENvbnRpbnVlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1lcnJvciBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy00MDBweCBoLWF1dG8gcC0xMCBjYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWxhYmVsXCI+e3tFcnJvcm1zZ319PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmNsb3NlKCdpc0RlbmllZCcpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMlwiIChjbGljayk9XCJtb2RhbC5jbG9zZSgnaXNDb25maXJtZWQnKVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|