@colijnit/corecomponents_v12 258.1.3 → 258.1.4
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/bundles/colijnit-corecomponents_v12.umd.js +9 -4
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/lib/components/calendar/calendar-template.component.js +11 -6
- package/fesm2015/colijnit-corecomponents_v12.js +10 -5
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/package.json +1 -1
|
@@ -170,9 +170,14 @@ export class CalendarTemplateComponent {
|
|
|
170
170
|
}
|
|
171
171
|
selectDate(day) {
|
|
172
172
|
if (day) {
|
|
173
|
-
this.
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
if (!this.doubleCalendar) {
|
|
174
|
+
// Single calendar → select and close
|
|
175
|
+
this.selectedDate = day;
|
|
176
|
+
this.setAndClose();
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
this.selectedDate = day;
|
|
180
|
+
this._fillDatesBetweenSelected();
|
|
176
181
|
this.dateSelected.emit(new Date(this.selectedDate));
|
|
177
182
|
}
|
|
178
183
|
}
|
|
@@ -372,8 +377,8 @@ CalendarTemplateComponent.decorators = [
|
|
|
372
377
|
</div>
|
|
373
378
|
</div>
|
|
374
379
|
<div class="calendar-action-buttons" *ngIf="showButtons">
|
|
375
|
-
<span class="set-and-close-button" (click)="setAndClose()">Instellen</span>
|
|
376
|
-
<span class="clear-date-button" (click)="clearDate()">Wissen</span>
|
|
380
|
+
<span class="set-and-close-button" *ngIf="this.doubleCalendar" (click)="setAndClose()">Instellen</span>
|
|
381
|
+
<span class="clear-date-button" *ngIf="this.selectedDate" (click)="clearDate()">Wissen</span>
|
|
377
382
|
<span class="cancel-button" (click)="closeDate()">Annuleren</span>
|
|
378
383
|
</div>
|
|
379
384
|
</div>
|
|
@@ -397,4 +402,4 @@ CalendarTemplateComponent.propDecorators = {
|
|
|
397
402
|
clearDates: [{ type: Output }],
|
|
398
403
|
showClass: [{ type: HostBinding, args: ["class.calendar-template",] }]
|
|
399
404
|
};
|
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQWlGN0UsTUFBTSxPQUFPLHlCQUF5QjtJQS9FdEM7UUFnRmtCLFVBQUssR0FBOEIsa0JBQWtCLENBQUM7UUFHL0Qsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFFM0IsV0FBTSxHQUFXLE9BQU8sQ0FBQztRQUd6Qiw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFHM0MsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFrRGhDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHNUQsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHbEUsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1RCxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzlELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxRCxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFDakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU9uQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhC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LElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7SUFDbEUsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHVEQUF1RDtJQUNyRixDQUFDOzs7WUFwY0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7Ozs4QkFJRSxLQUFLO3FCQUlMLEtBQUs7d0NBR0wsS0FBSzswQkFHTCxLQUFLOzZCQUdMLEtBQUs7MkJBRUwsS0FBSztpQ0FrQkwsS0FBSztpQ0FjTCxLQUFLOzJCQWdCTCxNQUFNO2lDQUdOLE1BQU07MkJBR04sTUFBTTs2QkFHTixNQUFNO3lCQUdOLE1BQU07d0JBaUNOLFdBQVcsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tIFwiLi4vLi4vY29yZS9lbnVtL2NvcmUtY29tcG9uZW50cy1pY29uLmVudW1cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNhbGVuZGFyLXRlbXBsYXRlXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWRhdGUtZGlzcGxheVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkRGF0ZVwiIGNsYXNzPVwic2VsZWN0ZWQtZGF0ZS15ZWFyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWREYXRlXCIgY2xhc3M9XCJzZWxlY3RlZC1kYXRlLWRheVwiPlxyXG4gICAgICAgICAgICAgIHt7IHNlbGVjdGVkRGF0ZSB8IGRhdGU6ICdFRUUgZCBNTU0nIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWREYXRlXCIgY2xhc3M9XCJuby1kYXRlLXNlbGVjdGVkXCIgW3RleHRDb250ZW50XT1cIidTZWxlY3RlZXIgZGF0dW0nXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXJcIiAqbmdJZj1cIm1vbnRoU2VsZWN0aW9uIHx8IHllYXJTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiY2FsZW5kYXItY2hhbmdlLW1vbnRoLWJ1dHRvblwiIFtpY29uXT1cImljb25zLkFycm93UG9pbnRMZWZ0XCIgKGNsaWNrKT1cInByZXZNb250aCgpXCI+PC9jby1pY29uPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXItdGl0bGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJtb250aFNlbGVjdGlvbiA/IG1vbnRoSGVhZGVyIDogeWVhckhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb250aFNlbGVjdGlvbiA/IG9wZW5Nb250aFNlbGVjdGlvbigpIDogb3BlblllYXJTZWxlY3Rpb24oKVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cImNhbGVuZGFyLWNoYW5nZS1tb250aC1idXR0b25cIiBbaWNvbl09XCJpY29ucy5BcnJvd1BvaW50UmlnaHRcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb24tZ3JpZCBtb250aFwiICpuZ0lmPVwic2hvd01vbnRoU2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aFNlbGVjdGlvbk5hbWVzXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1tb250aC1vci15ZWFyXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vbnRoKG1vbnRoKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9udGhcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGhcIiBbdGV4dENvbnRlbnRdPVwibW9udGhcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbi1ncmlkIHllYXJcIiAqbmdJZj1cInNob3dZZWFyU2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJTZWxlY3Rpb25ZZWFyc1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXItbW9udGgtb3IteWVhclwiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RZZWFyKHllYXIpXCJcclxuICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInllYXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInllYXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwieWVhclwiIFt0ZXh0Q29udGVudF09XCJ5ZWFyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLXdyYXBwZXJcIiAqbmdJZj1cInNob3dXZWVrTnVtYmVycyAmJiBzaG93Q2FsZW5kYXJCb2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLW51bWJlclwiIFt0ZXh0Q29udGVudF09XCInVydcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstbnVtYmVyXCIgKm5nRm9yPVwibGV0IHdlZWtOdW1iZXIgb2Ygd2Vla051bWJlcnNcIj5cclxuICAgICAgICAgICAgICB7eyB3ZWVrTnVtYmVyIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiICpuZ0lmPVwic2hvd0NhbGVuZGFyQm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW5hbWVzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXlcIiAqbmdGb3I9XCJsZXQgZGF5TmFtZSBvZiBkYXlOYW1lc1wiIFt0ZXh0Q29udGVudF09XCJkYXlOYW1lXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF5c0luTW9udGhcIiBjbGFzcz1cImNhbGVuZGFyLWRheVwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZ2hsaWdodGVkLWRheV09XCJkYXlzVG9IaWdobGlnaHQuaW5jbHVkZXMoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLWRheV09XCJzZWxlY3RlZERhdGUgJiYgKGRheSAmJiBkYXkuZ2V0VGltZSgpID09PSBzZWxlY3RlZERhdGUuZ2V0VGltZSgpKSB8fFxyXG4gICAgICAgICAgICBzZWNvbmRTZWxlY3RlZERhdGUgJiYgKGRheSAmJiBkYXkuZ2V0VGltZSgpID09PSBzZWNvbmRTZWxlY3RlZERhdGUuZ2V0VGltZSgpKSB8fFxyXG4gICAgICAgICAgICB0ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUgJiYgKGRheSAmJiBkYXkuZ2V0VGltZSgpID09PSB0ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUuZ2V0VGltZSgpKVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJoYW5kbGVNb3VzZU92ZXJEYXkoZGF5KVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gRGF5IG51bWJlciAtLT5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LW51bWJlclwiIFt0ZXh0Q29udGVudF09XCJkYXkuZ2V0RGF0ZSgpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWFjdGlvbi1idXR0b25zXCIgKm5nSWY9XCJzaG93QnV0dG9uc1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXQtYW5kLWNsb3NlLWJ1dHRvblwiIChjbGljayk9XCJzZXRBbmRDbG9zZSgpXCI+SW5zdGVsbGVuPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbGVhci1kYXRlLWJ1dHRvblwiIChjbGljayk9XCJjbGVhckRhdGUoKVwiPldpc3Nlbjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZURhdGUoKVwiPkFubnVsZXJlbjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclRlbXBsYXRlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dXZWVrTnVtYmVyczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsb2NhbGU6IHN0cmluZyA9IFwibmwtTkxcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaGlnaGxpZ2h0RGF5c0JldHdlZW5EYXRlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRvdWJsZUNhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZERhdGUgPSAhIWRhdGUgPyBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpIDogZGF0ZTtcclxuXHJcbiAgICAvLyBTdG9yZSB0aGUgaW5pdGlhbCBzZWxlY3RlZCBkYXRlIHdoZW4gdGhlIGNhbGVuZGFyIGlzIGZpcnN0IG9wZW5lZFxyXG4gICAgaWYgKHRoaXMuX2luaXRpYWxTZWxlY3RlZERhdGUgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5faW5pdGlhbFNlbGVjdGVkRGF0ZSA9IHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWNvbmRTZWxlY3RlZERhdGUgJiYgZGF0ZSAmJiB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgdGhpcy50ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUpIHtcclxuICAgICAgdGhpcy5kYXlzVG9IaWdobGlnaHQgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWREYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWNvbmRTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fc2Vjb25kU2VsZWN0ZWREYXRlID0gISFkYXRlID8gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKSA6IGRhdGU7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuZGF5c1RvSGlnaGxpZ2h0ID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9maWxsRGF0ZXNCZXR3ZWVuU2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2Vjb25kU2VsZWN0ZWREYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZFNlbGVjdGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWNvbmRIb3ZlcmluZ0RhdGUoZGF0ZSA6IERhdGUpIHtcclxuICAgIHRoaXMuX3NlY29uZEhvdmVyaW5nRGF0ZSA9IGRhdGU7XHJcbiAgICBpZiAoISFkYXRlKSB7XHJcbiAgICAgIHRoaXMudGVtcG9yYXJ5U2VsZWN0ZWRTZWNvbmRhcnlEYXRlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSAmJiAhdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy50ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlTW91c2VPdmVyRGF5KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZWNvbmRIb3ZlcmluZ0RhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kSG92ZXJpbmdEYXRlO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRhdGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2Vjb25kRGF0ZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBob3ZlcmluZ0RhdGU6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsaWNrZWRPdXRzaWRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjbGVhckRhdGVzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXJCb2R5OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd01vbnRoU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dZZWFyU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTZWxlY3RlZE1vbnRoOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB3b3JraW5nRGF5OiBEYXRlO1xyXG4gIHB1YmxpYyB3b3JraW5nWWVhcjogbnVtYmVyO1xyXG4gIHB1YmxpYyB3b3JraW5nTW9udGg6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIG1vbnRoSGVhZGVyOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgeWVhckhlYWRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIHB1YmxpYyBtb250aFNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHllYXJTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGRheU5hbWVzID0gW107XHJcbiAgcHVibGljIG1vbnRoTmFtZXMgPSBbXTtcclxuICBwdWJsaWMgbW9udGhTZWxlY3Rpb25OYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgeWVhclNlbGVjdGlvblllYXJzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBkYXlzSW5Nb250aDogRGF0ZVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBkYXlzVW5peFRpbWVzdGFtcHM6IG51bWJlcltdID0gW107XHJcbiAgcHVibGljIGRheXNUb0hpZ2hsaWdodDogRGF0ZVtdID0gW107XHJcbiAgcHVibGljIHRlbXBvcmFyeVNlbGVjdGVkU2Vjb25kYXJ5RGF0ZTogRGF0ZTtcclxuXHJcbiAgcHJpdmF0ZSBfc2Vjb25kSG92ZXJpbmdEYXRlOiBEYXRlO1xyXG4gIHByaXZhdGUgX3NlY29uZFNlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbFNlbGVjdGVkRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jYWxlbmRhci10ZW1wbGF0ZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldEluaXRpYWxWYWx1ZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVNb250aE5hbWVzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICAgIHRoaXMuX2ZpbGxEYXRlc0JldHdlZW5TZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXZNb250aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndvcmtpbmdNb250aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLndvcmtpbmdNb250aCA9IDExO1xyXG4gICAgICB0aGlzLndvcmtpbmdZZWFyLS07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndvcmtpbmdNb250aC0tO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XHJcbiAgICB0aGlzLl9maWxsRGF0ZXNCZXR3ZWVuU2VsZWN0ZWQoKTtcclxuICAgIHRoaXMuY2FsY3VsYXRlV2Vla051bWJlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0TW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53b3JraW5nTW9udGggPT09IDExKSB7XHJcbiAgICAgIHRoaXMud29ya2luZ01vbnRoID0gMDtcclxuICAgICAgdGhpcy53b3JraW5nWWVhcisrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53b3JraW5nTW9udGgrKztcclxuICAgIH1cclxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xyXG4gICAgdGhpcy5fZmlsbERhdGVzQmV0d2VlblNlbGVjdGVkKCk7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVdlZWtOdW1iZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJldlllYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLndvcmtpbmdZZWFyLS07XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0WWVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMud29ya2luZ1llYXIrKztcclxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRNb250aERheXNGb3JEYXRlKHRoaXMud29ya2luZ01vbnRoKTtcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIGRpc3BsYXllZCBtb250aFxyXG4gICAgY29uc3QgbW9udGggPSB0aGlzLm1vbnRoTmFtZXNbdGhpcy53b3JraW5nTW9udGhdO1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMud29ya2luZ1llYXI7XHJcblxyXG4gICAgLy8gVXBkYXRlIGhlYWRlclRleHRcclxuICAgIHRoaXMubW9udGhIZWFkZXIgPSBgJHttb250aH0gJHt5ZWFyfWA7XHJcbiAgICB0aGlzLnllYXJIZWFkZXIgPSBgJHt5ZWFyfWA7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZVllYXJTZWxlY3Rpb25ZZWFycygpO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVXZWVrTnVtYmVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0SW5pdGlhbFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMud29ya2luZ0RheSA9IHRoaXMuc2VsZWN0ZWREYXRlID8gdGhpcy5zZWxlY3RlZERhdGUgOiBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy53b3JraW5nWWVhciA9IHRoaXMud29ya2luZ0RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgdGhpcy53b3JraW5nTW9udGggPSB0aGlzLndvcmtpbmdEYXkuZ2V0TW9udGgoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE1vbnRoRGF5c0ZvckRhdGUobW9udGhOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKHRoaXMud29ya2luZ1llYXIsIG1vbnRoTnVtYmVyLCAwKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGxhc3REYXlPZk1vbnRoID0gbmV3IERhdGUodGhpcy53b3JraW5nWWVhciwgbW9udGhOdW1iZXIgKyAxLCAwKS5nZXREYXRlKCk7XHJcblxyXG4gICAgLy8gQWRkIG51bGwgdmFsdWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5IHRvIGFsaWduIHRoZSBmaXJzdCBkYXkgd2l0aCB0aGUgY29ycmVjdCBkYXkgb2YgdGhlIHdlZWtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3REYXlPZk1vbnRoOyBpKyspIHtcclxuICAgICAgdGhpcy5kYXlzSW5Nb250aC5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCB0aGUgZGF5cyBvZiB0aGUgY3VycmVudCBtb250aCB0byB0aGUgYXJyYXlcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3REYXlPZk1vbnRoOyBpKyspIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMud29ya2luZ1llYXIsIHRoaXMud29ya2luZ01vbnRoLCBpKTtcclxuICAgICAgdGhpcy5kYXlzSW5Nb250aC5wdXNoKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCBudWxsIHZhbHVlcyB0byB0aGUgZW5kIG9mIHRoZSBhcnJheSB0byBmaWxsIG91dCB0aGUgZ3JpZFxyXG4gICAgLy8gY29uc3QgcmVtYWluaW5nQ2VsbHMgPSA0MiAtIHRoaXMuZGF5c0luTW9udGgubGVuZ3RoO1xyXG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZW1haW5pbmdDZWxsczsgaSsrKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF5c0luTW9udGgucHVzaChudWxsKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICB0aGlzLmRheXNVbml4VGltZXN0YW1wcyA9IHRoaXMuZGF5c0luTW9udGgubWFwKGRheSA9PiB7IHJldHVybiBkYXkgPyBkYXkuZ2V0VGltZSgpIDogdW5kZWZpbmVkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlWWVhclNlbGVjdGlvblllYXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFzdFllYXJzID0gNTtcclxuICAgIGNvbnN0IGZ1dHVyZVllYXJzID0gMztcclxuICAgIGNvbnN0IHllYXJzID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IHBhc3RZZWFyczsgaSA+PSAxOyBpLS0pIHtcclxuXHJcbiAgICAgIHllYXJzLnB1c2godGhpcy53b3JraW5nWWVhciAtIGkpO1xyXG4gICAgfVxyXG5cclxuICAgIHllYXJzLnB1c2godGhpcy53b3JraW5nWWVhcik7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gZnV0dXJlWWVhcnM7IGkrKykge1xyXG4gICAgICB5ZWFycy5wdXNoKHRoaXMud29ya2luZ1llYXIgKyBpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnllYXJTZWxlY3Rpb25ZZWFycyA9IHllYXJzLnJldmVyc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuTW9udGhTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhckJvZHkgPSBmYWxzZTtcclxuICAgIHRoaXMubW9udGhTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMueWVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblllYXJTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93WWVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0RGF0ZShkYXk6IERhdGUpOiB2b2lkIHtcclxuICAgIGlmKGRheSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRheTtcclxuICAgICAgdGhpcy5fZmlsbERhdGVzQmV0d2VlblNlbGVjdGVkKCk7XHJcbiAgICAgIGlmICh0aGlzLmRvdWJsZUNhbGVuZGFyKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdChuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TW9udGgobW9udGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U2VsZWN0ZWRNb250aCA9IG1vbnRoO1xyXG4gICAgdGhpcy53b3JraW5nTW9udGggPSB0aGlzLm1vbnRoU2VsZWN0aW9uTmFtZXMuaW5kZXhPZihtb250aCk7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy55ZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICB0aGlzLm1vbnRoU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyQm9keSA9IHRydWU7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RZZWFyKHllYXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy53b3JraW5nWWVhciA9IHllYXI7XHJcbiAgICB0aGlzLnNob3dZZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZW5lcmF0ZU1vbnRoTmFtZXMoKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEyOyBpKyspIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMDAsIGksIDEpO1xyXG4gICAgICBjb25zdCBtb250aE5hbWVTaG9ydCA9IGRhdGUudG9Mb2NhbGVTdHJpbmcodGhpcy5sb2NhbGUsIHttb250aDogJ3Nob3J0J30pO1xyXG4gICAgICBjb25zdCBtb250aE5hbWVGdWxsID0gZGF0ZS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSwge21vbnRoOiAnbG9uZyd9KTtcclxuICAgICAgdGhpcy5tb250aFNlbGVjdGlvbk5hbWVzLnB1c2godGhpcy5fY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG1vbnRoTmFtZVNob3J0KSk7XHJcbiAgICAgIHRoaXMubW9udGhOYW1lcy5wdXNoKHRoaXMuX2NhcGl0YWxpemVGaXJzdExldHRlcihtb250aE5hbWVGdWxsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNzsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgyMDE4LCAwLCBpKTtcclxuICAgICAgY29uc3Qgd2Vla2RheU5hbWUgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKHRoaXMubG9jYWxlLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XHJcbiAgICAgIHRoaXMuZGF5TmFtZXMucHVzaCh0aGlzLl9jYXBpdGFsaXplRmlyc3RMZXR0ZXIod2Vla2RheU5hbWUuY2hhckF0KDApKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyRGF5KGRheTogRGF0ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0RGF5c0JldHdlZW5EYXRlcyAmJiBkYXkgJiYgKHRoaXMuc2VsZWN0ZWREYXRlIHx8IHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKSAmJiAhKHRoaXMuc2VsZWN0ZWREYXRlICYmIHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKSAmJiAhKHRoaXMuc2VsZWN0ZWREYXRlICYmICF0aGlzLnRlbXBvcmFyeVNlbGVjdGVkU2Vjb25kYXJ5RGF0ZSAmJiAhdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGF5c1RvSGlnaGxpZ2h0ID0gW107XHJcbiAgICAgIGlmICh0aGlzLmRheXNVbml4VGltZXN0YW1wcy5pbmNsdWRlcyhkYXkuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgIHRoaXMuZGF5c1RvSGlnaGxpZ2h0LnB1c2goLi4udGhpcy5kYXlzSW5Nb250aC5tYXAoKGRheUluTW9udGg6IERhdGUpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICAgICAgICBpZiAoZGF5SW5Nb250aCAmJlxyXG4gICAgICAgICAgICAgIC8vIGRheSBpbiB0aGUgbW9udGggaXMgYWZ0ZXIgc2VsZWN0ZWQgZGF0ZSBhbmQgZGF5IGluIHRoZSBtb250aCBpcyBiZWZvcmUgdGhlIGhvdmVyaW5nIGRheVxyXG4gICAgICAgICAgICAgIChkYXlJbk1vbnRoLmdldFRpbWUoKSA+IHRoaXMuc2VsZWN0ZWREYXRlLmdldFRpbWUoKSAmJiBkYXlJbk1vbnRoLmdldFRpbWUoKSA8IGRheS5nZXRUaW1lKCkpIHx8XHJcbiAgICAgICAgICAgICAgLy8gc2Vjb25kIGRhdGUgaXMgYWZ0ZXIgc2VsZWN0ZWQgZGF0ZSBhbmQgZGF5IGluIHRoZSBtb250aCBpcyBiZWZvcmUgaG92ZXJpbmcgZGF5IGFuZCBkYXkgaW4gbW9udGggaXMgYWZ0ZXIgc2VsZWN0ZWQgZGF0ZVxyXG4gICAgICAgICAgICAgICh0aGlzLl9zZWNvbmRIb3ZlcmluZ0RhdGUgJiYgdGhpcy5fc2Vjb25kSG92ZXJpbmdEYXRlLmdldFRpbWUoKSA+IHRoaXMuc2VsZWN0ZWREYXRlLmdldFRpbWUoKSAmJiBkYXkgJiYgZGF5SW5Nb250aCAmJiBkYXlJbk1vbnRoLmdldFRpbWUoKSA8IGRheS5nZXRUaW1lKCkgJiYgZGF5SW5Nb250aC5nZXRUaW1lKCkgPiB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRheUluTW9udGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChkYXlJbk1vbnRoICYmXHJcbiAgICAgICAgICAgICAgLy8gZGF5IGluIHRoZSBtb250aCBpcyBhZnRlciBzZWNvbmQgZGF0ZSBhbmQgZGF5IGluIHRoZSBtb250aCBpcyBiZWZvcmUgdGhlIGhvdmVyaW5nIGRheVxyXG4gICAgICAgICAgICAgIChkYXlJbk1vbnRoLmdldFRpbWUoKSA+IHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlLmdldFRpbWUoKSAmJiBkYXlJbk1vbnRoLmdldFRpbWUoKSA8IGRheS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRheUluTW9udGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXlzVG9IaWdobGlnaHQucHVzaCguLi50aGlzLmRheXNJbk1vbnRoLm1hcCgoZGF5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF5ID4gdGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRheTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaG92ZXJpbmdEYXRlLm5leHQoZGF5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbGxEYXRlc0JldHdlZW5TZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLmRheXNUb0hpZ2hsaWdodCA9IFtdO1xyXG4gICAgICB0aGlzLmRheXNUb0hpZ2hsaWdodC5wdXNoKC4uLnRoaXMuZGF5c0luTW9udGgubWFwKChkYXlJbk1vbnRoOiBEYXRlKSA9PiB7XHJcbiAgICAgICAgaWYgKGRheUluTW9udGggJiYgKGRheUluTW9udGggPiB0aGlzLnNlbGVjdGVkRGF0ZSAmJiBkYXlJbk1vbnRoIDwgdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpIHx8IChkYXlJbk1vbnRoID4gdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUgJiYgZGF5SW5Nb250aCA8IHRoaXMuc2VsZWN0ZWREYXRlKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGRheUluTW9udGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVXZWVrTnVtYmVycygpOiB2b2lkIHtcclxuICAgIHRoaXMud2Vla051bWJlcnMgPSBbXTtcclxuICAgIGxldCB3ZWVrTnVtYmVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXlzSW5Nb250aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBkYXkgPSB0aGlzLmRheXNJbk1vbnRoW2ldO1xyXG4gICAgICBpZiAoZGF5KSB7XHJcbiAgICAgICAgICAvLyBTdGFydCBvZiBhIG5ldyB3ZWVrIG9yIGZpcnN0IGRheSBvZiB0aGUgbW9udGgsIGNhbGN1bGF0ZSBhbmQgc2V0IHdlZWtOdW1iZXJcclxuICAgICAgICAgIHdlZWtOdW1iZXIgPSB0aGlzLmdldElTT1dlZWsoZGF5KTtcclxuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSB3ZWVrTnVtYmVyIGlzIG5vdCBhbHJlYWR5IGluIHRoZSBhcnJheVxyXG4gICAgICAgICAgaWYgKCF0aGlzLndlZWtOdW1iZXJzLmluY2x1ZGVzKHdlZWtOdW1iZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2Vla051bWJlcnMucHVzaCh3ZWVrTnVtYmVyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgZ2V0SVNPV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkpO1xyXG4gICAgICBkLnNldFVUQ0RhdGUoZC5nZXRVVENEYXRlKCkgKyA0IC0gKGQuZ2V0VVRDRGF5KCkgfHwgNykpO1xyXG4gICAgICBjb25zdCB5ZWFyU3RhcnQgPSBuZXcgRGF0ZShEYXRlLlVUQyhkLmdldFVUQ0Z1bGxZZWFyKCksIDAsIDEpKTtcclxuICAgICAgY29uc3Qgd2Vla051bWJlciA9IE1hdGguY2VpbCgoKGQudmFsdWVPZigpIC0geWVhclN0YXJ0LnZhbHVlT2YoKSkgLyA4NjQwMDAwMCArIDEpIC8gNyk7XHJcbiAgICAgIHJldHVybiB3ZWVrTnVtYmVyO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0QW5kQ2xvc2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgIHRoaXMuc2Vjb25kRGF0ZVNlbGVjdGVkLmVtaXQodGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpOy8vIEVtaXQgdGhlIHNlbGVjdGVkIGRhdGVcclxuICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7IC8vIFRyaWdnZXIgcG9wdXAgY2xvc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckRhdGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xyXG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlID0gbnVsbDtcclxuICAgICAgdGhpcy5zZWNvbmREYXRlU2VsZWN0ZWQuZW1pdChudWxsKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2xlYXJEYXRlcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VEYXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLl9pbml0aWFsU2VsZWN0ZWREYXRlO1xyXG4gICAgdGhpcy5jbG9zZVBvcHVwKCk7IC8vIFRyaWdnZXIgcG9wdXAgY2xvc2Ugd2l0aG91dCBtYWtpbmcgY2hhbmdlc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZVBvcHVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja2VkT3V0c2lkZS5lbWl0KCk7IC8vIEVtaXQgdGhlIGBjbGlja2VkT3V0c2lkZWAgZXZlbnQgdG8gbm90aWZ5IHRoZSBwYXJlbnRcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQWlGN0UsTUFBTSxPQUFPLHlCQUF5QjtJQS9FdEM7UUFnRmtCLFVBQUssR0FBOEIsa0JBQWtCLENBQUM7UUFHL0Qsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFFM0IsV0FBTSxHQUFXLE9BQU8sQ0FBQztRQUd6Qiw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFHM0MsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFrRGhDLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHNUQsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHbEUsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1RCxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzlELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUxRCxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFDakMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU9uQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRS9CLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLHdCQUFtQixHQUFhLEVBQUUsQ0FBQztRQUNuQyx1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBTTVCLHlCQUFvQixHQUFnQixJQUFJLENBQUM7SUErUW5ELENBQUM7SUExV0MsSUFDVyxZQUFZLENBQUMsSUFBVTtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVuRyxvRUFBb0U7UUFDcEUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUM3SSxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNXLGtCQUFrQixDQUFDLElBQVU7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6RyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjthQUFNO1lBQ0wsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ1csa0JBQWtCLENBQUMsSUFBVztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNWLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDakQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBZ0RNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTdDLDZCQUE2QjtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTlCLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxXQUFtQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1RSxNQUFNLGNBQWMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFaEYsd0dBQXdHO1FBQ3hHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFFRCxpREFBaUQ7UUFDakQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFFRCwrREFBK0Q7UUFDL0QsdURBQXVEO1FBQ3ZELDZDQUE2QztRQUM3QyxpQ0FBaUM7UUFDakMsSUFBSTtRQUVKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUVuQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFTO1FBQ3pCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3hCLHFDQUFxQztnQkFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7WUFDMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNsRTtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsR0FBUztRQUNqQyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDMU8sSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFO2dCQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBZ0IsRUFBRSxFQUFFO29CQUNyRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7d0JBQ3JCLElBQUksVUFBVTs0QkFDWiwwRkFBMEY7NEJBQzFGLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDNUYseUhBQXlIOzRCQUN6SCxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxHQUFHLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTs0QkFDbk4sT0FBTyxVQUFVLENBQUM7eUJBQ25CO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksVUFBVTs0QkFDWix3RkFBd0Y7NEJBQ3hGLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7NEJBQ3BHLE9BQU8sVUFBVSxDQUFDO3lCQUNuQjtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ0w7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUN4RCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUMzQixPQUFPLEdBQUcsQ0FBQztxQkFDWjtnQkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ0w7U0FDRjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBZ0IsRUFBRSxFQUFFO2dCQUNyRSxJQUFJLFVBQVUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtvQkFDdEssT0FBTyxVQUFVLENBQUM7aUJBQ25CO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWE7UUFDMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLFVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksR0FBRyxFQUFFO2dCQUNMLDhFQUE4RTtnQkFDOUUsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDbkM7YUFDSjtTQUNGO0lBQ0gsQ0FBQztJQUNNLFVBQVUsQ0FBQyxJQUFVO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUEseUJBQXlCO1lBQy9FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQjtTQUMxQztJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLDZDQUE2QztJQUNsRSxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsdURBQXVEO0lBQ3JGLENBQUM7OztZQXhjRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OzhCQUlFLEtBQUs7cUJBSUwsS0FBSzt3Q0FHTCxLQUFLOzBCQUdMLEtBQUs7NkJBR0wsS0FBSzsyQkFFTCxLQUFLO2lDQWtCTCxLQUFLO2lDQWNMLEtBQUs7MkJBZ0JMLE1BQU07aUNBR04sTUFBTTsyQkFHTixNQUFNOzZCQUdOLE1BQU07eUJBR04sTUFBTTt3QkFpQ04sV0FBVyxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb259IGZyb20gXCIuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY2FsZW5kYXItdGVtcGxhdGVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtZGF0ZS1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWREYXRlXCIgY2xhc3M9XCJzZWxlY3RlZC1kYXRlLXllYXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZERhdGVcIiBjbGFzcz1cInNlbGVjdGVkLWRhdGUtZGF5XCI+XHJcbiAgICAgICAgICAgICAge3sgc2VsZWN0ZWREYXRlIHwgZGF0ZTogJ0VFRSBkIE1NTScgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFzZWxlY3RlZERhdGVcIiBjbGFzcz1cIm5vLWRhdGUtc2VsZWN0ZWRcIiBbdGV4dENvbnRlbnRdPVwiJ1NlbGVjdGVlciBkYXR1bSdcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiICpuZ0lmPVwibW9udGhTZWxlY3Rpb24gfHwgeWVhclNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJjYWxlbmRhci1jaGFuZ2UtbW9udGgtYnV0dG9uXCIgW2ljb25dPVwiaWNvbnMuQXJyb3dQb2ludExlZnRcIiAoY2xpY2spPVwicHJldk1vbnRoKClcIj48L2NvLWljb24+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIm1vbnRoU2VsZWN0aW9uID8gbW9udGhIZWFkZXIgOiB5ZWFySGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vbnRoU2VsZWN0aW9uID8gb3Blbk1vbnRoU2VsZWN0aW9uKCkgOiBvcGVuWWVhclNlbGVjdGlvbigpXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiY2FsZW5kYXItY2hhbmdlLW1vbnRoLWJ1dHRvblwiIFtpY29uXT1cImljb25zLkFycm93UG9pbnRSaWdodFwiIChjbGljayk9XCJuZXh0TW9udGgoKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbi1ncmlkIG1vbnRoXCIgKm5nSWY9XCJzaG93TW9udGhTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoU2VsZWN0aW9uTmFtZXNcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLW1vbnRoLW9yLXllYXJcIlxyXG4gICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TW9udGgobW9udGgpXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb250aFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aFwiIFt0ZXh0Q29udGVudF09XCJtb250aFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLWdyaWQgeWVhclwiICpuZ0lmPVwic2hvd1llYXJTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhclNlbGVjdGlvblllYXJzXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1tb250aC1vci15ZWFyXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFllYXIoeWVhcilcIlxyXG4gICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwieWVhclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieWVhclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ZWFyXCIgW3RleHRDb250ZW50XT1cInllYXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstd3JhcHBlclwiICpuZ0lmPVwic2hvd1dlZWtOdW1iZXJzICYmIHNob3dDYWxlbmRhckJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstbnVtYmVyXCIgW3RleHRDb250ZW50XT1cIidXJ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1udW1iZXJcIiAqbmdGb3I9XCJsZXQgd2Vla051bWJlciBvZiB3ZWVrTnVtYmVyc1wiPlxyXG4gICAgICAgICAgICAgIHt7IHdlZWtOdW1iZXIgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5XCIgKm5nSWY9XCJzaG93Q2FsZW5kYXJCb2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbmFtZXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheVwiICpuZ0Zvcj1cImxldCBkYXlOYW1lIG9mIGRheU5hbWVzXCIgW3RleHRDb250ZW50XT1cImRheU5hbWVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlzSW5Nb250aFwiIGNsYXNzPVwiY2FsZW5kYXItZGF5XCJcclxuICAgICAgICAgICAgICAgICBbY2xhc3MuaGlnaGxpZ2h0ZWQtZGF5XT1cImRheXNUb0hpZ2hsaWdodC5pbmNsdWRlcyhkYXkpXCJcclxuICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWQtZGF5XT1cInNlbGVjdGVkRGF0ZSAmJiAoZGF5ICYmIGRheS5nZXRUaW1lKCkgPT09IHNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkpIHx8XHJcbiAgICAgICAgICAgIHNlY29uZFNlbGVjdGVkRGF0ZSAmJiAoZGF5ICYmIGRheS5nZXRUaW1lKCkgPT09IHNlY29uZFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkpIHx8XHJcbiAgICAgICAgICAgIHRlbXBvcmFyeVNlbGVjdGVkU2Vjb25kYXJ5RGF0ZSAmJiAoZGF5ICYmIGRheS5nZXRUaW1lKCkgPT09IHRlbXBvcmFyeVNlbGVjdGVkU2Vjb25kYXJ5RGF0ZS5nZXRUaW1lKCkpXCJcclxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkpXCJcclxuICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cImhhbmRsZU1vdXNlT3ZlckRheShkYXkpXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSBEYXkgbnVtYmVyIC0tPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbnVtYmVyXCIgW3RleHRDb250ZW50XT1cImRheS5nZXREYXRlKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYWN0aW9uLWJ1dHRvbnNcIiAqbmdJZj1cInNob3dCdXR0b25zXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNldC1hbmQtY2xvc2UtYnV0dG9uXCIgKm5nSWY9XCJ0aGlzLmRvdWJsZUNhbGVuZGFyXCIgKGNsaWNrKT1cInNldEFuZENsb3NlKClcIj5JbnN0ZWxsZW48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsZWFyLWRhdGUtYnV0dG9uXCIgKm5nSWY9XCJ0aGlzLnNlbGVjdGVkRGF0ZVwiIChjbGljayk9XCJjbGVhckRhdGUoKVwiPldpc3Nlbjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZURhdGUoKVwiPkFubnVsZXJlbjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclRlbXBsYXRlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dXZWVrTnVtYmVyczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsb2NhbGU6IHN0cmluZyA9IFwibmwtTkxcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaGlnaGxpZ2h0RGF5c0JldHdlZW5EYXRlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRvdWJsZUNhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRGF0ZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZERhdGUgPSAhIWRhdGUgPyBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpIDogZGF0ZTtcclxuXHJcbiAgICAvLyBTdG9yZSB0aGUgaW5pdGlhbCBzZWxlY3RlZCBkYXRlIHdoZW4gdGhlIGNhbGVuZGFyIGlzIGZpcnN0IG9wZW5lZFxyXG4gICAgaWYgKHRoaXMuX2luaXRpYWxTZWxlY3RlZERhdGUgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5faW5pdGlhbFNlbGVjdGVkRGF0ZSA9IHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWNvbmRTZWxlY3RlZERhdGUgJiYgZGF0ZSAmJiB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgPCB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgdGhpcy50ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUpIHtcclxuICAgICAgdGhpcy5kYXlzVG9IaWdobGlnaHQgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWREYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWNvbmRTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fc2Vjb25kU2VsZWN0ZWREYXRlID0gISFkYXRlID8gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKSA6IGRhdGU7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuZGF5c1RvSGlnaGxpZ2h0ID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9maWxsRGF0ZXNCZXR3ZWVuU2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2Vjb25kU2VsZWN0ZWREYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZFNlbGVjdGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWNvbmRIb3ZlcmluZ0RhdGUoZGF0ZSA6IERhdGUpIHtcclxuICAgIHRoaXMuX3NlY29uZEhvdmVyaW5nRGF0ZSA9IGRhdGU7XHJcbiAgICBpZiAoISFkYXRlKSB7XHJcbiAgICAgIHRoaXMudGVtcG9yYXJ5U2VsZWN0ZWRTZWNvbmRhcnlEYXRlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSAmJiAhdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy50ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlTW91c2VPdmVyRGF5KGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZWNvbmRIb3ZlcmluZ0RhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kSG92ZXJpbmdEYXRlO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRhdGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2Vjb25kRGF0ZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBob3ZlcmluZ0RhdGU6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsaWNrZWRPdXRzaWRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjbGVhckRhdGVzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXJCb2R5OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd01vbnRoU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dZZWFyU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTZWxlY3RlZE1vbnRoOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB3b3JraW5nRGF5OiBEYXRlO1xyXG4gIHB1YmxpYyB3b3JraW5nWWVhcjogbnVtYmVyO1xyXG4gIHB1YmxpYyB3b3JraW5nTW9udGg6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIG1vbnRoSGVhZGVyOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgeWVhckhlYWRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIHB1YmxpYyBtb250aFNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHllYXJTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGRheU5hbWVzID0gW107XHJcbiAgcHVibGljIG1vbnRoTmFtZXMgPSBbXTtcclxuICBwdWJsaWMgbW9udGhTZWxlY3Rpb25OYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgeWVhclNlbGVjdGlvblllYXJzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBkYXlzSW5Nb250aDogRGF0ZVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBkYXlzVW5peFRpbWVzdGFtcHM6IG51bWJlcltdID0gW107XHJcbiAgcHVibGljIGRheXNUb0hpZ2hsaWdodDogRGF0ZVtdID0gW107XHJcbiAgcHVibGljIHRlbXBvcmFyeVNlbGVjdGVkU2Vjb25kYXJ5RGF0ZTogRGF0ZTtcclxuXHJcbiAgcHJpdmF0ZSBfc2Vjb25kSG92ZXJpbmdEYXRlOiBEYXRlO1xyXG4gIHByaXZhdGUgX3NlY29uZFNlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICBwcml2YXRlIF9zZWxlY3RlZERhdGU6IERhdGU7XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbFNlbGVjdGVkRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jYWxlbmRhci10ZW1wbGF0ZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldEluaXRpYWxWYWx1ZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVNb250aE5hbWVzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICAgIHRoaXMuX2ZpbGxEYXRlc0JldHdlZW5TZWxlY3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXZNb250aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndvcmtpbmdNb250aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLndvcmtpbmdNb250aCA9IDExO1xyXG4gICAgICB0aGlzLndvcmtpbmdZZWFyLS07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndvcmtpbmdNb250aC0tO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XHJcbiAgICB0aGlzLl9maWxsRGF0ZXNCZXR3ZWVuU2VsZWN0ZWQoKTtcclxuICAgIHRoaXMuY2FsY3VsYXRlV2Vla051bWJlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0TW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53b3JraW5nTW9udGggPT09IDExKSB7XHJcbiAgICAgIHRoaXMud29ya2luZ01vbnRoID0gMDtcclxuICAgICAgdGhpcy53b3JraW5nWWVhcisrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53b3JraW5nTW9udGgrKztcclxuICAgIH1cclxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xyXG4gICAgdGhpcy5fZmlsbERhdGVzQmV0d2VlblNlbGVjdGVkKCk7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVdlZWtOdW1iZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJldlllYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLndvcmtpbmdZZWFyLS07XHJcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0WWVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMud29ya2luZ1llYXIrKztcclxuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRNb250aERheXNGb3JEYXRlKHRoaXMud29ya2luZ01vbnRoKTtcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIGRpc3BsYXllZCBtb250aFxyXG4gICAgY29uc3QgbW9udGggPSB0aGlzLm1vbnRoTmFtZXNbdGhpcy53b3JraW5nTW9udGhdO1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMud29ya2luZ1llYXI7XHJcblxyXG4gICAgLy8gVXBkYXRlIGhlYWRlclRleHRcclxuICAgIHRoaXMubW9udGhIZWFkZXIgPSBgJHttb250aH0gJHt5ZWFyfWA7XHJcbiAgICB0aGlzLnllYXJIZWFkZXIgPSBgJHt5ZWFyfWA7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZVllYXJTZWxlY3Rpb25ZZWFycygpO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVXZWVrTnVtYmVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0SW5pdGlhbFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMud29ya2luZ0RheSA9IHRoaXMuc2VsZWN0ZWREYXRlID8gdGhpcy5zZWxlY3RlZERhdGUgOiBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy53b3JraW5nWWVhciA9IHRoaXMud29ya2luZ0RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgdGhpcy53b3JraW5nTW9udGggPSB0aGlzLndvcmtpbmdEYXkuZ2V0TW9udGgoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE1vbnRoRGF5c0ZvckRhdGUobW9udGhOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKHRoaXMud29ya2luZ1llYXIsIG1vbnRoTnVtYmVyLCAwKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGxhc3REYXlPZk1vbnRoID0gbmV3IERhdGUodGhpcy53b3JraW5nWWVhciwgbW9udGhOdW1iZXIgKyAxLCAwKS5nZXREYXRlKCk7XHJcblxyXG4gICAgLy8gQWRkIG51bGwgdmFsdWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5IHRvIGFsaWduIHRoZSBmaXJzdCBkYXkgd2l0aCB0aGUgY29ycmVjdCBkYXkgb2YgdGhlIHdlZWtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3REYXlPZk1vbnRoOyBpKyspIHtcclxuICAgICAgdGhpcy5kYXlzSW5Nb250aC5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCB0aGUgZGF5cyBvZiB0aGUgY3VycmVudCBtb250aCB0byB0aGUgYXJyYXlcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3REYXlPZk1vbnRoOyBpKyspIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMud29ya2luZ1llYXIsIHRoaXMud29ya2luZ01vbnRoLCBpKTtcclxuICAgICAgdGhpcy5kYXlzSW5Nb250aC5wdXNoKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCBudWxsIHZhbHVlcyB0byB0aGUgZW5kIG9mIHRoZSBhcnJheSB0byBmaWxsIG91dCB0aGUgZ3JpZFxyXG4gICAgLy8gY29uc3QgcmVtYWluaW5nQ2VsbHMgPSA0MiAtIHRoaXMuZGF5c0luTW9udGgubGVuZ3RoO1xyXG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZW1haW5pbmdDZWxsczsgaSsrKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF5c0luTW9udGgucHVzaChudWxsKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICB0aGlzLmRheXNVbml4VGltZXN0YW1wcyA9IHRoaXMuZGF5c0luTW9udGgubWFwKGRheSA9PiB7IHJldHVybiBkYXkgPyBkYXkuZ2V0VGltZSgpIDogdW5kZWZpbmVkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlWWVhclNlbGVjdGlvblllYXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFzdFllYXJzID0gNTtcclxuICAgIGNvbnN0IGZ1dHVyZVllYXJzID0gMztcclxuICAgIGNvbnN0IHllYXJzID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IHBhc3RZZWFyczsgaSA+PSAxOyBpLS0pIHtcclxuXHJcbiAgICAgIHllYXJzLnB1c2godGhpcy53b3JraW5nWWVhciAtIGkpO1xyXG4gICAgfVxyXG5cclxuICAgIHllYXJzLnB1c2godGhpcy53b3JraW5nWWVhcik7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gZnV0dXJlWWVhcnM7IGkrKykge1xyXG4gICAgICB5ZWFycy5wdXNoKHRoaXMud29ya2luZ1llYXIgKyBpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnllYXJTZWxlY3Rpb25ZZWFycyA9IHllYXJzLnJldmVyc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuTW9udGhTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhckJvZHkgPSBmYWxzZTtcclxuICAgIHRoaXMubW9udGhTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMueWVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblllYXJTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dNb250aFNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93WWVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0RGF0ZShkYXk6IERhdGUpOiB2b2lkIHtcclxuICAgIGlmIChkYXkpIHtcclxuICAgICAgaWYgKCF0aGlzLmRvdWJsZUNhbGVuZGFyKSB7XHJcbiAgICAgICAgLy8gU2luZ2xlIGNhbGVuZGFyIOKGkiBzZWxlY3QgYW5kIGNsb3NlXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXk7XHJcbiAgICAgICAgdGhpcy5zZXRBbmRDbG9zZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF5O1xyXG4gICAgICAgIHRoaXMuX2ZpbGxEYXRlc0JldHdlZW5TZWxlY3RlZCgpO1xyXG4gICAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkLmVtaXQobmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1vbnRoKG1vbnRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1NlbGVjdGVkTW9udGggPSBtb250aDtcclxuICAgIHRoaXMud29ya2luZ01vbnRoID0gdGhpcy5tb250aFNlbGVjdGlvbk5hbWVzLmluZGV4T2YobW9udGgpO1xyXG4gICAgdGhpcy5zaG93TW9udGhTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMueWVhclNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb250aFNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhckJvZHkgPSB0cnVlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0WWVhcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMud29ya2luZ1llYXIgPSB5ZWFyO1xyXG4gICAgdGhpcy5zaG93WWVhclNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93TW9udGhTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVNb250aE5hbWVzKCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgyMDAwLCBpLCAxKTtcclxuICAgICAgY29uc3QgbW9udGhOYW1lU2hvcnQgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKHRoaXMubG9jYWxlLCB7bW9udGg6ICdzaG9ydCd9KTtcclxuICAgICAgY29uc3QgbW9udGhOYW1lRnVsbCA9IGRhdGUudG9Mb2NhbGVTdHJpbmcodGhpcy5sb2NhbGUsIHttb250aDogJ2xvbmcnfSk7XHJcbiAgICAgIHRoaXMubW9udGhTZWxlY3Rpb25OYW1lcy5wdXNoKHRoaXMuX2NhcGl0YWxpemVGaXJzdExldHRlcihtb250aE5hbWVTaG9ydCkpO1xyXG4gICAgICB0aGlzLm1vbnRoTmFtZXMucHVzaCh0aGlzLl9jYXBpdGFsaXplRmlyc3RMZXR0ZXIobW9udGhOYW1lRnVsbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDc7IGkrKykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMjAxOCwgMCwgaSk7XHJcbiAgICAgIGNvbnN0IHdlZWtkYXlOYW1lID0gZGF0ZS50b0xvY2FsZVN0cmluZyh0aGlzLmxvY2FsZSwgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pO1xyXG4gICAgICB0aGlzLmRheU5hbWVzLnB1c2godGhpcy5fY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHdlZWtkYXlOYW1lLmNoYXJBdCgwKSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlckRheShkYXk6IERhdGUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodERheXNCZXR3ZWVuRGF0ZXMgJiYgZGF5ICYmICh0aGlzLnNlbGVjdGVkRGF0ZSB8fCB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZSkgJiYgISh0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZSkgJiYgISh0aGlzLnNlbGVjdGVkRGF0ZSAmJiAhdGhpcy50ZW1wb3JhcnlTZWxlY3RlZFNlY29uZGFyeURhdGUgJiYgIXRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKSkge1xyXG4gICAgICB0aGlzLmRheXNUb0hpZ2hsaWdodCA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5kYXlzVW5peFRpbWVzdGFtcHMuaW5jbHVkZXMoZGF5LmdldFRpbWUoKSkpIHtcclxuICAgICAgICB0aGlzLmRheXNUb0hpZ2hsaWdodC5wdXNoKC4uLnRoaXMuZGF5c0luTW9udGgubWFwKChkYXlJbk1vbnRoOiBEYXRlKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgaWYgKGRheUluTW9udGggJiZcclxuICAgICAgICAgICAgICAvLyBkYXkgaW4gdGhlIG1vbnRoIGlzIGFmdGVyIHNlbGVjdGVkIGRhdGUgYW5kIGRheSBpbiB0aGUgbW9udGggaXMgYmVmb3JlIHRoZSBob3ZlcmluZyBkYXlcclxuICAgICAgICAgICAgICAoZGF5SW5Nb250aC5nZXRUaW1lKCkgPiB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgZGF5SW5Nb250aC5nZXRUaW1lKCkgPCBkYXkuZ2V0VGltZSgpKSB8fFxyXG4gICAgICAgICAgICAgIC8vIHNlY29uZCBkYXRlIGlzIGFmdGVyIHNlbGVjdGVkIGRhdGUgYW5kIGRheSBpbiB0aGUgbW9udGggaXMgYmVmb3JlIGhvdmVyaW5nIGRheSBhbmQgZGF5IGluIG1vbnRoIGlzIGFmdGVyIHNlbGVjdGVkIGRhdGVcclxuICAgICAgICAgICAgICAodGhpcy5fc2Vjb25kSG92ZXJpbmdEYXRlICYmIHRoaXMuX3NlY29uZEhvdmVyaW5nRGF0ZS5nZXRUaW1lKCkgPiB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgZGF5ICYmIGRheUluTW9udGggJiYgZGF5SW5Nb250aC5nZXRUaW1lKCkgPCBkYXkuZ2V0VGltZSgpICYmIGRheUluTW9udGguZ2V0VGltZSgpID4gdGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBkYXlJbk1vbnRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZGF5SW5Nb250aCAmJlxyXG4gICAgICAgICAgICAgIC8vIGRheSBpbiB0aGUgbW9udGggaXMgYWZ0ZXIgc2Vjb25kIGRhdGUgYW5kIGRheSBpbiB0aGUgbW9udGggaXMgYmVmb3JlIHRoZSBob3ZlcmluZyBkYXlcclxuICAgICAgICAgICAgICAoZGF5SW5Nb250aC5nZXRUaW1lKCkgPiB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgZGF5SW5Nb250aC5nZXRUaW1lKCkgPCBkYXkuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBkYXlJbk1vbnRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF5c1RvSGlnaGxpZ2h0LnB1c2goLi4udGhpcy5kYXlzSW5Nb250aC5tYXAoKGRheSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRheSA+IHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmhvdmVyaW5nRGF0ZS5uZXh0KGRheSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxsRGF0ZXNCZXR3ZWVuU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUgJiYgdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUpIHtcclxuICAgICAgdGhpcy5kYXlzVG9IaWdobGlnaHQgPSBbXTtcclxuICAgICAgdGhpcy5kYXlzVG9IaWdobGlnaHQucHVzaCguLi50aGlzLmRheXNJbk1vbnRoLm1hcCgoZGF5SW5Nb250aDogRGF0ZSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXlJbk1vbnRoICYmIChkYXlJbk1vbnRoID4gdGhpcy5zZWxlY3RlZERhdGUgJiYgZGF5SW5Nb250aCA8IHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKSB8fCAoZGF5SW5Nb250aCA+IHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlICYmIGRheUluTW9udGggPCB0aGlzLnNlbGVjdGVkRGF0ZSkpIHtcclxuICAgICAgICAgIHJldHVybiBkYXlJbk1vbnRoO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgY2FsY3VsYXRlV2Vla051bWJlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLndlZWtOdW1iZXJzID0gW107XHJcbiAgICBsZXQgd2Vla051bWJlcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF5c0luTW9udGgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZGF5ID0gdGhpcy5kYXlzSW5Nb250aFtpXTtcclxuICAgICAgaWYgKGRheSkge1xyXG4gICAgICAgICAgLy8gU3RhcnQgb2YgYSBuZXcgd2VlayBvciBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoLCBjYWxjdWxhdGUgYW5kIHNldCB3ZWVrTnVtYmVyXHJcbiAgICAgICAgICB3ZWVrTnVtYmVyID0gdGhpcy5nZXRJU09XZWVrKGRheSk7XHJcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgd2Vla051bWJlciBpcyBub3QgYWxyZWFkeSBpbiB0aGUgYXJyYXlcclxuICAgICAgICAgIGlmICghdGhpcy53ZWVrTnVtYmVycy5pbmNsdWRlcyh3ZWVrTnVtYmVyKSkge1xyXG4gICAgICAgICAgICB0aGlzLndlZWtOdW1iZXJzLnB1c2god2Vla051bWJlcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGdldElTT1dlZWsoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpKTtcclxuICAgICAgZC5zZXRVVENEYXRlKGQuZ2V0VVRDRGF0ZSgpICsgNCAtIChkLmdldFVUQ0RheSgpIHx8IDcpKTtcclxuICAgICAgY29uc3QgeWVhclN0YXJ0ID0gbmV3IERhdGUoRGF0ZS5VVEMoZC5nZXRVVENGdWxsWWVhcigpLCAwLCAxKSk7XHJcbiAgICAgIGNvbnN0IHdlZWtOdW1iZXIgPSBNYXRoLmNlaWwoKChkLnZhbHVlT2YoKSAtIHllYXJTdGFydC52YWx1ZU9mKCkpIC8gODY0MDAwMDAgKyAxKSAvIDcpO1xyXG4gICAgICByZXR1cm4gd2Vla051bWJlcjtcclxuICB9XHJcbiAgcHVibGljIHNldEFuZENsb3NlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICB0aGlzLnNlY29uZERhdGVTZWxlY3RlZC5lbWl0KHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlKTsvLyBFbWl0IHRoZSBzZWxlY3RlZCBkYXRlXHJcbiAgICAgIHRoaXMuY2xvc2VQb3B1cCgpOyAvLyBUcmlnZ2VyIHBvcHVwIGNsb3NlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJEYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcclxuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdChudWxsKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLnNlY29uZFNlbGVjdGVkRGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2Vjb25kRGF0ZVNlbGVjdGVkLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsZWFyRGF0ZXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5faW5pdGlhbFNlbGVjdGVkRGF0ZTtcclxuICAgIHRoaXMuY2xvc2VQb3B1cCgpOyAvLyBUcmlnZ2VyIHBvcHVwIGNsb3NlIHdpdGhvdXQgbWFraW5nIGNoYW5nZXNcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VQb3B1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tlZE91dHNpZGUuZW1pdCgpOyAvLyBFbWl0IHRoZSBgY2xpY2tlZE91dHNpZGVgIGV2ZW50IHRvIG5vdGlmeSB0aGUgcGFyZW50XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -6555,9 +6555,14 @@ class CalendarTemplateComponent {
|
|
|
6555
6555
|
}
|
|
6556
6556
|
selectDate(day) {
|
|
6557
6557
|
if (day) {
|
|
6558
|
-
this.
|
|
6559
|
-
|
|
6560
|
-
|
|
6558
|
+
if (!this.doubleCalendar) {
|
|
6559
|
+
// Single calendar → select and close
|
|
6560
|
+
this.selectedDate = day;
|
|
6561
|
+
this.setAndClose();
|
|
6562
|
+
}
|
|
6563
|
+
else {
|
|
6564
|
+
this.selectedDate = day;
|
|
6565
|
+
this._fillDatesBetweenSelected();
|
|
6561
6566
|
this.dateSelected.emit(new Date(this.selectedDate));
|
|
6562
6567
|
}
|
|
6563
6568
|
}
|
|
@@ -6757,8 +6762,8 @@ CalendarTemplateComponent.decorators = [
|
|
|
6757
6762
|
</div>
|
|
6758
6763
|
</div>
|
|
6759
6764
|
<div class="calendar-action-buttons" *ngIf="showButtons">
|
|
6760
|
-
<span class="set-and-close-button" (click)="setAndClose()">Instellen</span>
|
|
6761
|
-
<span class="clear-date-button" (click)="clearDate()">Wissen</span>
|
|
6765
|
+
<span class="set-and-close-button" *ngIf="this.doubleCalendar" (click)="setAndClose()">Instellen</span>
|
|
6766
|
+
<span class="clear-date-button" *ngIf="this.selectedDate" (click)="clearDate()">Wissen</span>
|
|
6762
6767
|
<span class="cancel-button" (click)="closeDate()">Annuleren</span>
|
|
6763
6768
|
</div>
|
|
6764
6769
|
</div>
|