mis-crystal-design-system 18.1.21 → 18.2.0
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/datepicker_v2/tz-datepicker.directive.d.ts +2 -2
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -2
- package/esm2022/mis-slider/index.mjs +2 -0
- package/esm2022/mis-slider/mis-crystal-design-system-mis-slider.mjs +5 -0
- package/esm2022/mis-slider/mis-slider.component.mjs +327 -0
- package/esm2022/mis-slider/mis-slider.module.mjs +23 -0
- package/esm2022/mis-slider/public_api.mjs +3 -0
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/specificdatepicker/specificdatepicker.module.mjs +5 -4
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +204 -110
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +10 -3
- package/fesm2022/mis-crystal-design-system-mis-slider.mjs +353 -0
- package/fesm2022/mis-crystal-design-system-mis-slider.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +216 -114
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system.mjs +1 -0
- package/fesm2022/mis-crystal-design-system.mjs.map +1 -1
- package/mis-slider/README.md +30 -0
- package/mis-slider/index.d.ts +1 -0
- package/mis-slider/mis-slider.component.d.ts +64 -0
- package/mis-slider/mis-slider.module.d.ts +11 -0
- package/mis-slider/public_api.d.ts +2 -0
- package/package.json +13 -7
- package/specificdatepicker/specificdatepicker.module.d.ts +2 -1
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +10 -2
- package/specificdatepicker/tz-specificdatepicker.directive.d.ts +2 -2
|
@@ -16,6 +16,7 @@ import * as i2 from "@angular/common";
|
|
|
16
16
|
import * as i3 from "mis-crystal-design-system/button";
|
|
17
17
|
import * as i4 from "mis-crystal-design-system/radio-button";
|
|
18
18
|
import * as i5 from "mis-crystal-design-system/datepicker_v2";
|
|
19
|
+
import * as i6 from "@angular/cdk/a11y";
|
|
19
20
|
const _c0 = ["singleDatePickerElement"];
|
|
20
21
|
const _c1 = a0 => ({ "display": a0 });
|
|
21
22
|
const _c2 = a0 => ({ "disabled-month": a0 });
|
|
@@ -25,36 +26,39 @@ const _c5 = (a0, a1, a2, a3, a4, a5) => ({ "selected-day": a0, "disabled-day": a
|
|
|
25
26
|
const _c6 = (a0, a1, a2, a3, a4) => ({ "margin-right": a0, "width": a1, "justify-content": a2, "padding-top": a3, "height": a4 });
|
|
26
27
|
const _c7 = a0 => ({ "circular-dot": a0 });
|
|
27
28
|
const _c8 = (a0, a1) => ({ "current-day": a0, "holiday-text": a1 });
|
|
28
|
-
function
|
|
29
|
+
function TzDrpContainerComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
29
30
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
30
|
-
i0.ɵɵelementStart(0, "div",
|
|
31
|
-
i0.ɵɵlistener("
|
|
31
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
32
|
+
i0.ɵɵlistener("keydown.enter", function TzDrpContainerComponent_div_3_Template_div_keydown_enter_0_listener() { const picker_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.changePicker(picker_r3)); });
|
|
33
|
+
i0.ɵɵelementStart(1, "mis-radio", 33);
|
|
34
|
+
i0.ɵɵlistener("valueChange", function TzDrpContainerComponent_div_3_Template_mis_radio_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.changePicker($event)); });
|
|
32
35
|
i0.ɵɵelementEnd();
|
|
33
36
|
i0.ɵɵelementStart(2, "span");
|
|
34
37
|
i0.ɵɵtext(3);
|
|
35
38
|
i0.ɵɵelementEnd()();
|
|
36
39
|
} if (rf & 2) {
|
|
37
|
-
const
|
|
38
|
-
const
|
|
40
|
+
const picker_r3 = ctx.$implicit;
|
|
41
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
42
|
+
i0.ɵɵattribute("aria-label", (ctx_r3.formControl == null ? null : ctx_r3.formControl.value) === picker_r3 ? picker_r3 + ", selected" : picker_r3 + ", click to select");
|
|
39
43
|
i0.ɵɵadvance();
|
|
40
|
-
i0.ɵɵproperty("name", "dateSelection")("value",
|
|
44
|
+
i0.ɵɵproperty("name", "dateSelection")("value", picker_r3)("formControl", ctx_r3.formControl);
|
|
41
45
|
i0.ɵɵadvance(2);
|
|
42
|
-
i0.ɵɵtextInterpolate(
|
|
46
|
+
i0.ɵɵtextInterpolate(picker_r3);
|
|
43
47
|
} }
|
|
44
|
-
function
|
|
45
|
-
i0.ɵɵelementStart(0, "div",
|
|
48
|
+
function TzDrpContainerComponent_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "span", 35);
|
|
46
50
|
i0.ɵɵtext(2);
|
|
47
51
|
i0.ɵɵelementEnd()();
|
|
48
52
|
} if (rf & 2) {
|
|
49
53
|
const weekDay_r5 = ctx.$implicit;
|
|
50
|
-
const
|
|
54
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
51
55
|
i0.ɵɵadvance();
|
|
52
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c4, weekDay_r5.isCurrentDay &&
|
|
56
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c4, weekDay_r5.isCurrentDay && ctx_r3.currentMonthNumber() === ctx_r3.todayMonthNumber()));
|
|
53
57
|
i0.ɵɵadvance();
|
|
54
58
|
i0.ɵɵtextInterpolate(weekDay_r5.label);
|
|
55
59
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵelementStart(0, "span",
|
|
60
|
+
function TzDrpContainerComponent_div_18_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
58
62
|
i0.ɵɵtext(1);
|
|
59
63
|
i0.ɵɵelementEnd();
|
|
60
64
|
} if (rf & 2) {
|
|
@@ -63,24 +67,25 @@ function TzDrpContainerComponent_div_17_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
63
67
|
i0.ɵɵadvance();
|
|
64
68
|
i0.ɵɵtextInterpolate1(" ", day_r7.date, " ");
|
|
65
69
|
} }
|
|
66
|
-
function
|
|
70
|
+
function TzDrpContainerComponent_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
67
71
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
68
|
-
i0.ɵɵelementStart(0, "div",
|
|
69
|
-
i0.ɵɵlistener("click", function
|
|
70
|
-
i0.ɵɵelement(1, "div",
|
|
71
|
-
i0.ɵɵtemplate(2,
|
|
72
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
73
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_div_18_Template_div_click_0_listener() { const day_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.selectDay("LEFT", day_r7)); })("keydown", function TzDrpContainerComponent_div_18_Template_div_keydown_0_listener($event) { const day_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.handleDayKeydown($event, "LEFT", day_r7)); });
|
|
74
|
+
i0.ɵɵelement(1, "div", 37);
|
|
75
|
+
i0.ɵɵtemplate(2, TzDrpContainerComponent_div_18_span_2_Template, 2, 5, "span", 38);
|
|
72
76
|
i0.ɵɵelementEnd();
|
|
73
77
|
} if (rf & 2) {
|
|
74
78
|
const day_r7 = ctx.$implicit;
|
|
75
|
-
const
|
|
76
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction6(
|
|
79
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
80
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction6(8, _c5, day_r7.isSelectedDay && ctx_r3.isSpecificPickerSelected(), day_r7.isDisabledDay, day_r7.isSelectedStartDay && !ctx_r3.isSpecificPickerSelected(), day_r7.isSelectedEndDay && !ctx_r3.isSpecificPickerSelected(), day_r7.inRangeDay && !ctx_r3.isSpecificPickerSelected(), day_r7.date > 0 && !ctx_r3.isSpecificPickerSelected() && !(day_r7.isSelectedStartDay && day_r7.isSelectedEndDay)))("ngStyle", i0.ɵɵpureFunction5(15, _c6, !ctx_r3.isSpecificPickerSelected() ? "0px" : "1px", !ctx_r3.isSpecificPickerSelected() ? "36px" : "35px", day_r7.isHoliday ? "flex-start" : "center", day_r7.isHoliday ? "2.8px" : "0px", day_r7.isHoliday ? "33px" : "36px"));
|
|
81
|
+
i0.ɵɵattribute("data-sdp-cell", ctx_r3.getDayCellId(day_r7, "LEFT"))("tabindex", ctx_r3.getDayTabIndex(day_r7, "LEFT"))("aria-label", day_r7.date > 0 ? day_r7.date + " " + ctx_r3.currentMonth() + " " + ctx_r3.currentYearNumber() + (day_r7.isDisabledDay ? ", disabled" : "") : null)("aria-disabled", day_r7.isDisabledDay);
|
|
77
82
|
i0.ɵɵadvance();
|
|
78
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
83
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(21, _c7, day_r7.isHoliday));
|
|
79
84
|
i0.ɵɵadvance();
|
|
80
85
|
i0.ɵɵproperty("ngIf", day_r7.date > 0);
|
|
81
86
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵelementStart(0, "div",
|
|
87
|
+
function TzDrpContainerComponent_div_29_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "span");
|
|
84
89
|
i0.ɵɵtext(2);
|
|
85
90
|
i0.ɵɵelementEnd()();
|
|
86
91
|
} if (rf & 2) {
|
|
@@ -88,42 +93,43 @@ function TzDrpContainerComponent_div_28_Template(rf, ctx) { if (rf & 1) {
|
|
|
88
93
|
i0.ɵɵadvance(2);
|
|
89
94
|
i0.ɵɵtextInterpolate(weekDay_r8.label);
|
|
90
95
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelementStart(0, "span",
|
|
96
|
+
function TzDrpContainerComponent_div_31_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
97
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
93
98
|
i0.ɵɵtext(1);
|
|
94
99
|
i0.ɵɵelementEnd();
|
|
95
100
|
} if (rf & 2) {
|
|
96
101
|
const day_r10 = i0.ɵɵnextContext().$implicit;
|
|
97
|
-
const
|
|
98
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c8, day_r10.isCurrentDay &&
|
|
102
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
103
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c8, day_r10.isCurrentDay && ctx_r3.currentMonthNumber() === ctx_r3.todayMonthNumber(), day_r10.isHoliday || day_r10.isWeekOff));
|
|
99
104
|
i0.ɵɵadvance();
|
|
100
105
|
i0.ɵɵtextInterpolate1(" ", day_r10.date, " ");
|
|
101
106
|
} }
|
|
102
|
-
function
|
|
107
|
+
function TzDrpContainerComponent_div_31_Template(rf, ctx) { if (rf & 1) {
|
|
103
108
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
104
|
-
i0.ɵɵelementStart(0, "div",
|
|
105
|
-
i0.ɵɵlistener("click", function
|
|
106
|
-
i0.ɵɵelement(1, "div",
|
|
107
|
-
i0.ɵɵtemplate(2,
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 39);
|
|
110
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_div_31_Template_div_click_0_listener() { const day_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.selectDay("RIGHT", day_r10)); })("keydown", function TzDrpContainerComponent_div_31_Template_div_keydown_0_listener($event) { const day_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.handleDayKeydown($event, "RIGHT", day_r10)); });
|
|
111
|
+
i0.ɵɵelement(1, "div", 37);
|
|
112
|
+
i0.ɵɵtemplate(2, TzDrpContainerComponent_div_31_span_2_Template, 2, 5, "span", 38);
|
|
108
113
|
i0.ɵɵelementEnd();
|
|
109
114
|
} if (rf & 2) {
|
|
110
115
|
const day_r10 = ctx.$implicit;
|
|
111
|
-
const
|
|
112
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction6(
|
|
116
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
117
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction6(7, _c5, day_r10.isSelectedDay && ctx_r3.isSpecificPickerSelected(), day_r10.isDisabledDay, day_r10.isSelectedStartDay && !ctx_r3.isSpecificPickerSelected(), day_r10.isSelectedEndDay && !ctx_r3.isSpecificPickerSelected(), day_r10.inRangeDay && !ctx_r3.isSpecificPickerSelected(), day_r10.date > 0 && !ctx_r3.isSpecificPickerSelected() && !(day_r10.isSelectedStartDay && day_r10.isSelectedEndDay)));
|
|
118
|
+
i0.ɵɵattribute("data-sdp-cell", ctx_r3.getDayCellId(day_r10, "RIGHT"))("tabindex", ctx_r3.getDayTabIndex(day_r10, "RIGHT"))("aria-label", day_r10.date > 0 ? day_r10.date + " " + ctx_r3.nextMonth() + " " + ctx_r3.nextYearNumber() + (day_r10.isDisabledDay ? ", disabled" : "") : null)("aria-disabled", day_r10.isDisabledDay);
|
|
113
119
|
i0.ɵɵadvance();
|
|
114
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
120
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c7, day_r10.isHoliday));
|
|
115
121
|
i0.ɵɵadvance();
|
|
116
122
|
i0.ɵɵproperty("ngIf", day_r10.date > 0);
|
|
117
123
|
} }
|
|
118
|
-
function
|
|
124
|
+
function TzDrpContainerComponent_span_35_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
119
125
|
i0.ɵɵelementStart(0, "span");
|
|
120
126
|
i0.ɵɵtext(1, ",");
|
|
121
127
|
i0.ɵɵelementEnd();
|
|
122
128
|
} }
|
|
123
|
-
function
|
|
129
|
+
function TzDrpContainerComponent_span_35_Template(rf, ctx) { if (rf & 1) {
|
|
124
130
|
i0.ɵɵelementStart(0, "span");
|
|
125
131
|
i0.ɵɵtext(1);
|
|
126
|
-
i0.ɵɵtemplate(2,
|
|
132
|
+
i0.ɵɵtemplate(2, TzDrpContainerComponent_span_35_span_2_Template, 2, 0, "span", 26);
|
|
127
133
|
i0.ɵɵelementEnd();
|
|
128
134
|
} if (rf & 2) {
|
|
129
135
|
const weekOff_r11 = ctx.$implicit;
|
|
@@ -133,47 +139,47 @@ function TzDrpContainerComponent_span_34_Template(rf, ctx) { if (rf & 1) {
|
|
|
133
139
|
i0.ɵɵadvance();
|
|
134
140
|
i0.ɵɵproperty("ngIf", !last_r12);
|
|
135
141
|
} }
|
|
136
|
-
function
|
|
142
|
+
function TzDrpContainerComponent_span_40_Template(rf, ctx) { if (rf & 1) {
|
|
137
143
|
i0.ɵɵelementStart(0, "span")(1, "span");
|
|
138
144
|
i0.ɵɵtext(2);
|
|
139
145
|
i0.ɵɵelementEnd();
|
|
140
146
|
i0.ɵɵtext(3, " day(s) selected ");
|
|
141
147
|
i0.ɵɵelementEnd();
|
|
142
148
|
} if (rf & 2) {
|
|
143
|
-
const
|
|
149
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
144
150
|
i0.ɵɵadvance(2);
|
|
145
|
-
i0.ɵɵtextInterpolate(
|
|
151
|
+
i0.ɵɵtextInterpolate(ctx_r3.localSelectedDates().length);
|
|
146
152
|
} }
|
|
147
|
-
function
|
|
153
|
+
function TzDrpContainerComponent_span_41_Template(rf, ctx) { if (rf & 1) {
|
|
148
154
|
i0.ɵɵelementStart(0, "span")(1, "span");
|
|
149
155
|
i0.ɵɵtext(2);
|
|
150
156
|
i0.ɵɵelementEnd();
|
|
151
157
|
i0.ɵɵtext(3, "day(s) selected");
|
|
152
158
|
i0.ɵɵelementEnd();
|
|
153
159
|
} if (rf & 2) {
|
|
154
|
-
const
|
|
160
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
155
161
|
i0.ɵɵadvance(2);
|
|
156
|
-
i0.ɵɵtextInterpolate1("",
|
|
162
|
+
i0.ɵɵtextInterpolate1("", ctx_r3.dateRangeLength() > 0 ? ctx_r3.dateRangeLength() : 0, " ");
|
|
157
163
|
} }
|
|
158
|
-
function
|
|
164
|
+
function TzDrpContainerComponent_button_46_Template(rf, ctx) { if (rf & 1) {
|
|
159
165
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
160
|
-
i0.ɵɵelementStart(0, "button",
|
|
161
|
-
i0.ɵɵlistener("click", function
|
|
166
|
+
i0.ɵɵelementStart(0, "button", 40);
|
|
167
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_button_46_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.applyDates()); });
|
|
162
168
|
i0.ɵɵtext(1, "Apply");
|
|
163
169
|
i0.ɵɵelementEnd();
|
|
164
170
|
} if (rf & 2) {
|
|
165
|
-
const
|
|
166
|
-
i0.ɵɵproperty("disabled", !
|
|
171
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
172
|
+
i0.ɵɵproperty("disabled", !ctx_r3.isDatesValid());
|
|
167
173
|
} }
|
|
168
|
-
function
|
|
174
|
+
function TzDrpContainerComponent_button_47_Template(rf, ctx) { if (rf & 1) {
|
|
169
175
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
170
|
-
i0.ɵɵelementStart(0, "button",
|
|
171
|
-
i0.ɵɵlistener("click", function
|
|
172
|
-
i0.ɵɵtext(
|
|
176
|
+
i0.ɵɵelementStart(0, "button", 40, 2);
|
|
177
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_button_47_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.applyDatesRange()); });
|
|
178
|
+
i0.ɵɵtext(2, "Apply");
|
|
173
179
|
i0.ɵɵelementEnd();
|
|
174
180
|
} if (rf & 2) {
|
|
175
|
-
const
|
|
176
|
-
i0.ɵɵproperty("disabled", !
|
|
181
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
182
|
+
i0.ɵɵproperty("disabled", !ctx_r3.isDatesValid() || ctx_r3.dateRangeLength() === 0);
|
|
177
183
|
} }
|
|
178
184
|
dayjs.extend(isBetween);
|
|
179
185
|
dayjs.extend(utc);
|
|
@@ -182,9 +188,10 @@ dayjs.extend(customParseFormat);
|
|
|
182
188
|
dayjs.extend(isSameOrAfter);
|
|
183
189
|
dayjs.extend(isSameOrBefore);
|
|
184
190
|
export class TzDrpContainerComponent {
|
|
185
|
-
constructor(injectedData, toast) {
|
|
191
|
+
constructor(injectedData, toast, elementRef) {
|
|
186
192
|
this.injectedData = injectedData;
|
|
187
193
|
this.toast = toast;
|
|
194
|
+
this.elementRef = elementRef;
|
|
188
195
|
this.data = signal(this.injectedData);
|
|
189
196
|
this.dayjsInstance = computed(() => {
|
|
190
197
|
const config = this.data().dpConfig;
|
|
@@ -388,6 +395,7 @@ export class TzDrpContainerComponent {
|
|
|
388
395
|
}
|
|
389
396
|
});
|
|
390
397
|
}
|
|
398
|
+
this.scheduleFocusCell(this.getDayCellId(day, from));
|
|
391
399
|
}
|
|
392
400
|
applyDates() {
|
|
393
401
|
this.data().dateChange(this.localSelectedDates());
|
|
@@ -412,85 +420,168 @@ export class TzDrpContainerComponent {
|
|
|
412
420
|
// The view will simply update to reflect the active mode.
|
|
413
421
|
this.formControl.setValue(event, { emitEvent: false });
|
|
414
422
|
}
|
|
423
|
+
getDayTabIndex(day, panel) {
|
|
424
|
+
const dates = panel === "LEFT" ? this.currentMonthDates() : this.nextMonthDates();
|
|
425
|
+
if (!dates?.length)
|
|
426
|
+
return -1;
|
|
427
|
+
const firstIndex = dates.findIndex((d) => d.date > 0 && !d.isDisabledDay);
|
|
428
|
+
if (firstIndex < 0)
|
|
429
|
+
return -1;
|
|
430
|
+
const currentIndex = dates.findIndex((d) => d === day);
|
|
431
|
+
return currentIndex === firstIndex ? 0 : -1;
|
|
432
|
+
}
|
|
433
|
+
getDayCellId(day, panel) {
|
|
434
|
+
if (day?.date <= 0)
|
|
435
|
+
return "";
|
|
436
|
+
const month = panel === "LEFT" ? this.currentMonthNumber() : this.nextMonthNumber();
|
|
437
|
+
const year = panel === "LEFT" ? this.currentYearNumber() : this.nextYearNumber();
|
|
438
|
+
return `${panel === "LEFT" ? "L" : "R"}-${month}-${year}-${day.date}`;
|
|
439
|
+
}
|
|
440
|
+
scheduleFocusCell(cellId) {
|
|
441
|
+
if (!cellId)
|
|
442
|
+
return;
|
|
443
|
+
const host = this.elementRef?.nativeElement;
|
|
444
|
+
setTimeout(() => {
|
|
445
|
+
const el = host?.querySelector?.(`[data-sdp-cell="${cellId}"]`);
|
|
446
|
+
if (el?.focus)
|
|
447
|
+
el.focus();
|
|
448
|
+
}, 0);
|
|
449
|
+
}
|
|
450
|
+
static { this.ROW_SIZE = 7; }
|
|
451
|
+
getDayIndexInMonth(day, panel) {
|
|
452
|
+
const dates = panel === "LEFT" ? this.currentMonthDates() : this.nextMonthDates();
|
|
453
|
+
const idx = dates.findIndex((d) => d.date === day.date);
|
|
454
|
+
return idx >= 0 ? idx : -1;
|
|
455
|
+
}
|
|
456
|
+
getNextDayIndex(currentIndex, direction, panel) {
|
|
457
|
+
const dates = panel === "LEFT" ? this.currentMonthDates() : this.nextMonthDates();
|
|
458
|
+
const len = dates.length;
|
|
459
|
+
if (len === 0)
|
|
460
|
+
return -1;
|
|
461
|
+
let delta = 0;
|
|
462
|
+
if (direction === "ArrowRight")
|
|
463
|
+
delta = 1;
|
|
464
|
+
else if (direction === "ArrowLeft")
|
|
465
|
+
delta = -1;
|
|
466
|
+
else if (direction === "ArrowUp")
|
|
467
|
+
delta = -TzDrpContainerComponent.ROW_SIZE;
|
|
468
|
+
else if (direction === "ArrowDown")
|
|
469
|
+
delta = TzDrpContainerComponent.ROW_SIZE;
|
|
470
|
+
let next = currentIndex + delta;
|
|
471
|
+
if (next < 0 || next >= len)
|
|
472
|
+
return -1;
|
|
473
|
+
if (dates[next].date > 0 && !dates[next].isDisabledDay)
|
|
474
|
+
return next;
|
|
475
|
+
while (next >= 0 && next < len && (dates[next].date === 0 || dates[next].isDisabledDay)) {
|
|
476
|
+
next += delta;
|
|
477
|
+
}
|
|
478
|
+
return next >= 0 && next < len && dates[next].date > 0 && !dates[next].isDisabledDay ? next : -1;
|
|
479
|
+
}
|
|
480
|
+
handleDayKeydown(event, panel, day) {
|
|
481
|
+
const arrowKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"];
|
|
482
|
+
if (arrowKeys.includes(event.key)) {
|
|
483
|
+
event.preventDefault();
|
|
484
|
+
const currentIndex = this.getDayIndexInMonth(day, panel);
|
|
485
|
+
if (currentIndex < 0)
|
|
486
|
+
return;
|
|
487
|
+
const nextIndex = this.getNextDayIndex(currentIndex, event.key, panel);
|
|
488
|
+
if (nextIndex >= 0) {
|
|
489
|
+
const dates = panel === "LEFT" ? this.currentMonthDates() : this.nextMonthDates();
|
|
490
|
+
const nextDay = dates[nextIndex];
|
|
491
|
+
this.scheduleFocusCell(this.getDayCellId(nextDay, panel));
|
|
492
|
+
}
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
if (day.date <= 0 || day.isDisabledDay)
|
|
496
|
+
return;
|
|
497
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
498
|
+
event.preventDefault();
|
|
499
|
+
this.selectDay(panel, day);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
415
502
|
ngOnDestroy() {
|
|
416
503
|
if (this.singleDatePickerElement) {
|
|
417
504
|
this.singleDatePickerElement.close();
|
|
418
505
|
}
|
|
419
506
|
}
|
|
420
|
-
static { this.ɵfac = function TzDrpContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzDrpContainerComponent)(i0.ɵɵdirectiveInject(CONTAINER_DATA), i0.ɵɵdirectiveInject(i1.ToastService)); }; }
|
|
507
|
+
static { this.ɵfac = function TzDrpContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzDrpContainerComponent)(i0.ɵɵdirectiveInject(CONTAINER_DATA), i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
|
|
421
508
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TzDrpContainerComponent, selectors: [["mis-tz-sdp"]], viewQuery: function TzDrpContainerComponent_Query(rf, ctx) { if (rf & 1) {
|
|
422
509
|
i0.ɵɵviewQuery(_c0, 7, TzDatepickerDirective);
|
|
423
510
|
} if (rf & 2) {
|
|
424
511
|
let _t;
|
|
425
512
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.singleDatePickerElement = _t.first);
|
|
426
|
-
} }, decls:
|
|
513
|
+
} }, decls: 51, vars: 41, consts: [["cancelBtn", ""], ["singleDatePickerElement", ""], ["applyRangeBtn", ""], ["aria-label", "Choose date or date range", "cdkTrapFocus", "", 1, "daterangepicker-container", 3, "ngClass", "cdkTrapFocusAutoCapture"], ["tabindex", "-1", "cdkFocusInitial", ""], [1, "radio-container"], ["class", "label", "tabindex", "0", 3, "keydown.enter", 4, "ngFor", "ngForOf"], [1, "specific-datepicker-container", 3, "ngStyle"], [1, "daterangepicker-container__view"], [1, "datepicker__left"], [1, "daterangepicker-container__header__prabu"], ["role", "button", "aria-label", "Previous month", 1, "daterangepicker-container__arrow__icon", 3, "click", "keydown.enter", "ngClass"], ["width", "20", "height", "16", "viewBox", "0 0 20 16", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", "aria-hidden", "true"], ["d", "M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z", "fill", "#181F33"], [1, "daterangepicker-container__body"], [1, "daterangepicker-container__weekdays"], ["class", "daterangepicker-container__weekday", 4, "ngFor", "ngForOf"], [1, "daterangepicker-container__days"], ["class", "daterangepicker-container__day", 3, "ngClass", "ngStyle", "click", "keydown", 4, "ngFor", "ngForOf"], [1, "datepicker__right"], ["role", "button", "aria-label", "Next month", 1, "daterangepicker-container__arrow__icon", 3, "click", "keydown.enter", "ngClass"], ["class", "daterangepicker-container__day", 3, "ngClass", "click", "keydown", 4, "ngFor", "ngForOf"], ["tabindex", "0", 1, "weekOffs_holidays_container"], [4, "ngFor", "ngForOf"], [1, "circular-dot", 3, "ngStyle"], [1, "daterangepicker__footer"], [4, "ngIf"], [1, "footer_action_btn"], ["mis-button", "", "size", "md", "type", "none", "tabindex", "0", 3, "click"], ["mis-button", "", "size", "md", "type", "primary", "tabindex", "0", 3, "disabled", "click", 4, "ngIf"], [1, "single-datepicker-container", 3, "ngStyle"], ["misTzDp", "", "misInput", "", "type", "text", "readonly", "", "placeholder", "Select", "positionX", "center", "positionY", "top", "offsetX", "71", "offsetY", "-1", 1, "date-input", 3, "dateChange", "dpConfig", "selectedDate", "value", "disableBoxShadow", "disableOverLay", "openElement"], ["tabindex", "0", 1, "label", 3, "keydown.enter"], ["ngDefaultControl", "", 1, "input", 3, "valueChange", "name", "value", "formControl"], [1, "daterangepicker-container__weekday"], [3, "ngClass"], [1, "daterangepicker-container__day", 3, "click", "keydown", "ngClass", "ngStyle"], ["aria-hidden", "true", 3, "ngClass"], [3, "ngClass", 4, "ngIf"], [1, "daterangepicker-container__day", 3, "click", "keydown", "ngClass"], ["mis-button", "", "size", "md", "type", "primary", "tabindex", "0", 3, "click", "disabled"]], template: function TzDrpContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
427
514
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
428
|
-
i0.ɵɵelementStart(0, "div",
|
|
429
|
-
i0.ɵɵ
|
|
515
|
+
i0.ɵɵelementStart(0, "div", 3);
|
|
516
|
+
i0.ɵɵelement(1, "div", 4);
|
|
517
|
+
i0.ɵɵelementStart(2, "div", 5);
|
|
518
|
+
i0.ɵɵtemplate(3, TzDrpContainerComponent_div_3_Template, 4, 5, "div", 6);
|
|
430
519
|
i0.ɵɵelementEnd();
|
|
431
|
-
i0.ɵɵelementStart(
|
|
432
|
-
i0.ɵɵlistener("click", function
|
|
520
|
+
i0.ɵɵelementStart(4, "div", 7)(5, "div", 8)(6, "div", 9)(7, "div", 10)(8, "div", 11);
|
|
521
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_Template_div_click_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(!ctx.isPreviousMonthDisabled() && ctx.navigateMonth("PREVIOUS")); })("keydown.enter", function TzDrpContainerComponent_Template_div_keydown_enter_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(!ctx.isPreviousMonthDisabled() && ctx.navigateMonth("PREVIOUS")); });
|
|
433
522
|
i0.ɵɵnamespaceSVG();
|
|
434
|
-
i0.ɵɵelementStart(
|
|
435
|
-
i0.ɵɵelement(
|
|
523
|
+
i0.ɵɵelementStart(9, "svg", 12);
|
|
524
|
+
i0.ɵɵelement(10, "path", 13);
|
|
436
525
|
i0.ɵɵelementEnd()();
|
|
437
526
|
i0.ɵɵnamespaceHTML();
|
|
438
|
-
i0.ɵɵelementStart(
|
|
439
|
-
i0.ɵɵtext(
|
|
527
|
+
i0.ɵɵelementStart(11, "span");
|
|
528
|
+
i0.ɵɵtext(12);
|
|
440
529
|
i0.ɵɵelementEnd();
|
|
441
|
-
i0.ɵɵelement(
|
|
530
|
+
i0.ɵɵelement(13, "div");
|
|
442
531
|
i0.ɵɵelementEnd();
|
|
443
|
-
i0.ɵɵelementStart(
|
|
444
|
-
i0.ɵɵtemplate(
|
|
532
|
+
i0.ɵɵelementStart(14, "div", 14)(15, "div", 15);
|
|
533
|
+
i0.ɵɵtemplate(16, TzDrpContainerComponent_div_16_Template, 3, 4, "div", 16);
|
|
445
534
|
i0.ɵɵelementEnd();
|
|
446
|
-
i0.ɵɵelementStart(
|
|
447
|
-
i0.ɵɵtemplate(
|
|
535
|
+
i0.ɵɵelementStart(17, "div", 17);
|
|
536
|
+
i0.ɵɵtemplate(18, TzDrpContainerComponent_div_18_Template, 3, 23, "div", 18);
|
|
448
537
|
i0.ɵɵelementEnd()()();
|
|
449
|
-
i0.ɵɵelementStart(
|
|
450
|
-
i0.ɵɵelement(
|
|
451
|
-
i0.ɵɵelementStart(
|
|
452
|
-
i0.ɵɵtext(
|
|
538
|
+
i0.ɵɵelementStart(19, "div", 19)(20, "div", 10);
|
|
539
|
+
i0.ɵɵelement(21, "div");
|
|
540
|
+
i0.ɵɵelementStart(22, "span");
|
|
541
|
+
i0.ɵɵtext(23);
|
|
453
542
|
i0.ɵɵelementEnd();
|
|
454
|
-
i0.ɵɵelementStart(
|
|
455
|
-
i0.ɵɵlistener("click", function
|
|
543
|
+
i0.ɵɵelementStart(24, "div", 20);
|
|
544
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_Template_div_click_24_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(!ctx.isNextMonthDisabled() && ctx.navigateMonth("NEXT")); })("keydown.enter", function TzDrpContainerComponent_Template_div_keydown_enter_24_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(!ctx.isNextMonthDisabled() && ctx.navigateMonth("NEXT")); });
|
|
456
545
|
i0.ɵɵnamespaceSVG();
|
|
457
|
-
i0.ɵɵelementStart(
|
|
458
|
-
i0.ɵɵelement(
|
|
546
|
+
i0.ɵɵelementStart(25, "svg", 12);
|
|
547
|
+
i0.ɵɵelement(26, "path", 13);
|
|
459
548
|
i0.ɵɵelementEnd()()();
|
|
460
549
|
i0.ɵɵnamespaceHTML();
|
|
461
|
-
i0.ɵɵelementStart(
|
|
462
|
-
i0.ɵɵtemplate(
|
|
550
|
+
i0.ɵɵelementStart(27, "div", 14)(28, "div", 15);
|
|
551
|
+
i0.ɵɵtemplate(29, TzDrpContainerComponent_div_29_Template, 3, 1, "div", 16);
|
|
463
552
|
i0.ɵɵelementEnd();
|
|
464
|
-
i0.ɵɵelementStart(
|
|
465
|
-
i0.ɵɵtemplate(
|
|
553
|
+
i0.ɵɵelementStart(30, "div", 17);
|
|
554
|
+
i0.ɵɵtemplate(31, TzDrpContainerComponent_div_31_Template, 3, 16, "div", 21);
|
|
466
555
|
i0.ɵɵelementEnd()()()();
|
|
467
|
-
i0.ɵɵelementStart(
|
|
468
|
-
i0.ɵɵtext(
|
|
469
|
-
i0.ɵɵtemplate(
|
|
556
|
+
i0.ɵɵelementStart(32, "div", 22)(33, "span");
|
|
557
|
+
i0.ɵɵtext(34, "Weekly offs: ");
|
|
558
|
+
i0.ɵɵtemplate(35, TzDrpContainerComponent_span_35_Template, 3, 2, "span", 23);
|
|
470
559
|
i0.ɵɵelementEnd();
|
|
471
|
-
i0.ɵɵelementStart(
|
|
472
|
-
i0.ɵɵtext(
|
|
473
|
-
i0.ɵɵelement(
|
|
560
|
+
i0.ɵɵelementStart(36, "span");
|
|
561
|
+
i0.ɵɵtext(37, "Holidays ");
|
|
562
|
+
i0.ɵɵelement(38, "span", 24);
|
|
474
563
|
i0.ɵɵelementEnd()();
|
|
475
|
-
i0.ɵɵelementStart(
|
|
476
|
-
i0.ɵɵtemplate(
|
|
477
|
-
i0.ɵɵelementStart(
|
|
478
|
-
i0.ɵɵlistener("click", function
|
|
479
|
-
i0.ɵɵtext(
|
|
564
|
+
i0.ɵɵelementStart(39, "div", 25);
|
|
565
|
+
i0.ɵɵtemplate(40, TzDrpContainerComponent_span_40_Template, 4, 1, "span", 26)(41, TzDrpContainerComponent_span_41_Template, 4, 1, "span", 26);
|
|
566
|
+
i0.ɵɵelementStart(42, "div", 27)(43, "button", 28, 0);
|
|
567
|
+
i0.ɵɵlistener("click", function TzDrpContainerComponent_Template_button_click_43_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cancelDatePicker()); });
|
|
568
|
+
i0.ɵɵtext(45, "Cancel");
|
|
480
569
|
i0.ɵɵelementEnd();
|
|
481
|
-
i0.ɵɵtemplate(
|
|
570
|
+
i0.ɵɵtemplate(46, TzDrpContainerComponent_button_46_Template, 2, 1, "button", 29)(47, TzDrpContainerComponent_button_47_Template, 3, 1, "button", 29);
|
|
482
571
|
i0.ɵɵelementEnd()()();
|
|
483
|
-
i0.ɵɵelementStart(
|
|
484
|
-
i0.ɵɵlistener("dateChange", function
|
|
572
|
+
i0.ɵɵelementStart(48, "div", 30)(49, "input", 31, 1);
|
|
573
|
+
i0.ɵɵlistener("dateChange", function TzDrpContainerComponent_Template_input_dateChange_49_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSingleDateChange($event)); });
|
|
485
574
|
i0.ɵɵelementEnd()()();
|
|
486
575
|
} if (rf & 2) {
|
|
487
|
-
|
|
488
|
-
i0.ɵɵ
|
|
576
|
+
let tmp_18_0;
|
|
577
|
+
i0.ɵɵproperty("ngClass", ctx.data().isSingleDatePickerEnable ? "single-date-picker-enabled" : "")("cdkTrapFocusAutoCapture", true);
|
|
578
|
+
i0.ɵɵadvance(3);
|
|
489
579
|
i0.ɵɵproperty("ngForOf", ctx.datePickerValue());
|
|
490
580
|
i0.ɵɵadvance();
|
|
491
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(
|
|
581
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(32, _c1, ctx.singleDatePickerSelected() ? "none" : ""));
|
|
492
582
|
i0.ɵɵadvance(4);
|
|
493
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
583
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(34, _c2, ctx.isPreviousMonthDisabled()));
|
|
584
|
+
i0.ɵɵattribute("tabindex", ctx.isPreviousMonthDisabled() ? -1 : 0)("aria-disabled", ctx.isPreviousMonthDisabled());
|
|
494
585
|
i0.ɵɵadvance(4);
|
|
495
586
|
i0.ɵɵtextInterpolate2(" ", ctx.currentMonth(), " ", ctx.currentYearNumber(), " ");
|
|
496
587
|
i0.ɵɵadvance(4);
|
|
@@ -500,38 +591,41 @@ export class TzDrpContainerComponent {
|
|
|
500
591
|
i0.ɵɵadvance(5);
|
|
501
592
|
i0.ɵɵtextInterpolate2(" ", ctx.nextMonth(), " ", ctx.nextYearNumber(), " ");
|
|
502
593
|
i0.ɵɵadvance();
|
|
503
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
594
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(36, _c2, ctx.isNextMonthDisabled()));
|
|
595
|
+
i0.ɵɵattribute("tabindex", ctx.isNextMonthDisabled() ? -1 : 0)("aria-disabled", ctx.isNextMonthDisabled());
|
|
504
596
|
i0.ɵɵadvance(5);
|
|
505
597
|
i0.ɵɵproperty("ngForOf", ctx.weekDays());
|
|
506
598
|
i0.ɵɵadvance(2);
|
|
507
599
|
i0.ɵɵproperty("ngForOf", ctx.nextMonthDates());
|
|
508
|
-
i0.ɵɵadvance(
|
|
600
|
+
i0.ɵɵadvance();
|
|
601
|
+
i0.ɵɵattribute("aria-label", "Weekly offs: " + (((tmp_18_0 = ctx.data().weekOffs) == null ? null : tmp_18_0.length) ? ctx.data().weekOffs.join(", ") : "None") + ". Holidays marked with a dot on the calendar.");
|
|
602
|
+
i0.ɵɵadvance(3);
|
|
509
603
|
i0.ɵɵproperty("ngForOf", ctx.data().weekOffs);
|
|
510
604
|
i0.ɵɵadvance(3);
|
|
511
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(
|
|
605
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(38, _c3));
|
|
512
606
|
i0.ɵɵadvance(2);
|
|
513
607
|
i0.ɵɵproperty("ngIf", ctx.isSpecificPickerSelected());
|
|
514
608
|
i0.ɵɵadvance();
|
|
515
609
|
i0.ɵɵproperty("ngIf", !ctx.isSpecificPickerSelected());
|
|
516
|
-
i0.ɵɵadvance(
|
|
610
|
+
i0.ɵɵadvance(5);
|
|
517
611
|
i0.ɵɵproperty("ngIf", ctx.isSpecificPickerSelected());
|
|
518
612
|
i0.ɵɵadvance();
|
|
519
613
|
i0.ɵɵproperty("ngIf", !ctx.isSpecificPickerSelected());
|
|
520
614
|
i0.ɵɵadvance();
|
|
521
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(
|
|
615
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(39, _c1, !ctx.singleDatePickerSelected() ? "none" : "block"));
|
|
522
616
|
i0.ɵɵadvance();
|
|
523
617
|
i0.ɵɵproperty("dpConfig", ctx.data().dpConfig)("selectedDate", ctx.singleDateSelectedValue())("value", ctx.singleDateSelectedValue())("disableBoxShadow", true)("disableOverLay", true)("openElement", ctx.openElement());
|
|
524
|
-
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.ButtonDirective, i4.RadioButtonComponent, i5.TzDatepickerDirective], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container[_ngcontent-%COMP%]{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%]{flex-direction:row}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%]{display:flex;align-items:center;height:48px;padding:8px 0;justify-content:center;border-radius:12px 12px 0 0;border-bottom:1px solid var(--border-primary, #E0E0E0);background:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .input[_ngcontent-%COMP%]{margin-right:8px;width:20px;height:20px}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:first-child{padding-right:16px;border-right:1px solid var(--border-primary, #E0E0E0)}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:nth-child(2){padding-left:16px}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;height:288px;padding:20px;border-right:1px solid var(--border-primary, #E0E0E0)!important;border-radius:0}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:first-child{padding-right:0;border-right:0px}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:nth-child(2){padding-left:0}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%]{display:flex;gap:24px;padding:16px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__left[_ngcontent-%COMP%], .daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__right[_ngcontent-%COMP%]{display:flex;flex-direction:column}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%]{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:16px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon.disabled-month[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:nth-child(1){transform:rotate(180deg)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%]{height:100%;width:252px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%]{width:100%;display:flex;padding-bottom:10px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%]{width:36px;height:18px;text-align:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]{flex-direction:column;width:35px;height:36px;display:flex;align-items:center;justify-content:center;margin-bottom:1px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]{cursor:default}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]:hover{background-color:transparent}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--brand-primary, #0937B2)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.selected-day[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.disabled-day[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day.selected-start-day[_ngcontent-%COMP%]{border-radius:50%!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .in-range-day[_ngcontent-%COMP%]:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary, #6A737D);padding:8px 24px 12px}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{margin-right:16px}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;word-spacing:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-family:Lato;font-size:15px;font-weight:400;align-self:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] span[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:700}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] .footer_action_btn[_ngcontent-%COMP%]{display:flex}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:104px;height:44px;border-radius:8px;margin-left:24px;font-weight:700}.circular-dot[_ngcontent-%COMP%]{width:5px;height:5px;background-color:var(--brand-warning, #FF9D00);border-radius:50%}.holiday-text[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)!important}.display-none[_ngcontent-%COMP%]{display:none!important}.single-datepicker-container[_ngcontent-%COMP%]{width:291px}"] }); }
|
|
618
|
+
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.ButtonDirective, i4.RadioButtonComponent, i5.TzDatepickerDirective, i6.CdkTrapFocus], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container[_ngcontent-%COMP%]{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%]{flex-direction:row}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%]{display:flex;align-items:center;height:48px;padding:8px 0;justify-content:center;border-radius:12px 12px 0 0;border-bottom:1px solid var(--border-primary, #E0E0E0);background:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .input[_ngcontent-%COMP%]{margin-right:8px;width:20px;height:20px}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:first-child{padding-right:16px;border-right:1px solid var(--border-primary, #E0E0E0)}.daterangepicker-container[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:nth-child(2){padding-left:16px}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;height:288px;padding:20px;border-right:1px solid var(--border-primary, #E0E0E0)!important;border-radius:0}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:first-child{padding-right:0;border-right:0px}.daterangepicker-container.single-date-picker-enabled[_ngcontent-%COMP%] .radio-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:nth-child(2){padding-left:0}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%]{display:flex;gap:24px;padding:16px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__left[_ngcontent-%COMP%], .daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .datepicker__right[_ngcontent-%COMP%]{display:flex;flex-direction:column}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%]{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:16px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon.disabled-month[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__header__prabu[_ngcontent-%COMP%] .daterangepicker-container__arrow__icon[_ngcontent-%COMP%]:nth-child(1){transform:rotate(180deg)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%]{height:100%;width:252px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%]{width:100%;display:flex;padding-bottom:10px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%]{width:36px;height:18px;text-align:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__weekdays[_ngcontent-%COMP%] .daterangepicker-container__weekday[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]{flex-direction:column;width:35px;height:36px;display:flex;align-items:center;justify-content:center;margin-bottom:1px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%]:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]{cursor:default}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%]:hover{background-color:transparent}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.disabled-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day.is-valid-date[_ngcontent-%COMP%]:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.current-day[_ngcontent-%COMP%]{font-weight:700;letter-spacing:.25px;color:var(--brand-primary, #0937B2)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.selected-day[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .daterangepicker-container__day[_ngcontent-%COMP%] span.disabled-day[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-start-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-end-day.selected-start-day[_ngcontent-%COMP%]{border-radius:50%!important}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .in-range-day[_ngcontent-%COMP%]:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-day[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2);border-radius:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker-container__view[_ngcontent-%COMP%] .daterangepicker-container__body[_ngcontent-%COMP%] .daterangepicker-container__days[_ngcontent-%COMP%] .selected-day[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary, #6A737D);padding:8px 24px 12px}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{margin-right:16px}.daterangepicker-container[_ngcontent-%COMP%] .weekOffs_holidays_container[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-primary, #181F33)}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;word-spacing:4px}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-family:Lato;font-size:15px;font-weight:400;align-self:center}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] span[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:700}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] .footer_action_btn[_ngcontent-%COMP%]{display:flex}.daterangepicker-container[_ngcontent-%COMP%] .daterangepicker__footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:104px;height:44px;border-radius:8px;margin-left:24px;font-weight:700}.circular-dot[_ngcontent-%COMP%]{width:5px;height:5px;background-color:var(--brand-warning, #FF9D00);border-radius:50%}.holiday-text[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D)!important}.display-none[_ngcontent-%COMP%]{display:none!important}.single-datepicker-container[_ngcontent-%COMP%]{width:291px}"] }); }
|
|
525
619
|
}
|
|
526
620
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TzDrpContainerComponent, [{
|
|
527
621
|
type: Component,
|
|
528
|
-
args: [{ selector: "mis-tz-sdp", template: "<div class=\"daterangepicker-container\" [ngClass]=\"data().isSingleDatePickerEnable?'single-date-picker-enabled':''\">\n <div class=\"radio-container\">\n <div class=\"label\" *ngFor=\"let picker of datePickerValue()\">\n <mis-radio class=\"input\" [name]=\"'dateSelection'\" [value]=\"picker\" (valueChange)=\"changePicker($event)\" ngDefaultControl [formControl]=\"formControl\"></mis-radio>\n <span>{{picker}}</span>\n </div>\n </div>\n <div class=\"specific-datepicker-container\" [ngStyle]=\"{'display': singleDatePickerSelected() ? 'none' : ''}\">\n <div class=\"daterangepicker-container__view\">\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n (click)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n [ngClass]=\"{\n 'disabled-month': isPreviousMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth() }} {{ currentYearNumber() }} </span>\n <div></div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span [ngClass]=\"{\n 'current-day': weekDay.isCurrentDay && (currentMonthNumber() === todayMonthNumber())\n }\">{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay && isSpecificPickerSelected(),\n 'disabled-day': day.isDisabledDay,\n 'selected-start-day': day.isSelectedStartDay && !isSpecificPickerSelected(),\n 'selected-end-day': day.isSelectedEndDay && !isSpecificPickerSelected(),\n 'in-range-day': day.inRangeDay && !isSpecificPickerSelected(),\n 'is-valid-date': day.date > 0 && !isSpecificPickerSelected() && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n [ngStyle]=\"{ 'margin-right': !isSpecificPickerSelected() ? '0px' : '1px','width': !isSpecificPickerSelected() ? '36px' : '35px','justify-content': day.isHoliday ? 'flex-start' : 'center','padding-top': day.isHoliday ? '2.8px' : '0px','height': day.isHoliday ? '33px' : '36px'}\"\n *ngFor=\"let day of currentMonthDates()\"\n (click)=\"selectDay('LEFT',day)\"\n >\n <div [ngClass]=\"{\n 'circular-dot': day.isHoliday\n }\"></div>\n <span *ngIf=\"day.date > 0\" [ngClass]=\"{\n 'current-day': day.isCurrentDay,\n 'holiday-text': day.isHoliday || day.isWeekOff\n }\" >\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth() }} {{ nextYearNumber() }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n [ngClass]=\"{\n 'disabled-month': isNextMonthDisabled()\n }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\" >\n <span >{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay && isSpecificPickerSelected(),\n 'disabled-day': day.isDisabledDay,\n 'selected-start-day': day.isSelectedStartDay && !isSpecificPickerSelected(),\n 'selected-end-day': day.isSelectedEndDay && !isSpecificPickerSelected(),\n 'in-range-day': day.inRangeDay && !isSpecificPickerSelected(),\n 'is-valid-date': day.date > 0 && !isSpecificPickerSelected() && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates()\"\n (click)=\"selectDay('RIGHT',day)\"\n >\n <div [ngClass]=\"{\n 'circular-dot': day.isHoliday\n }\"></div>\n <span *ngIf=\"day.date > 0\" [ngClass]=\"{\n 'current-day': day.isCurrentDay && (currentMonthNumber() === todayMonthNumber()),\n 'holiday-text': day.isHoliday || day.isWeekOff\n }\" >\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"weekOffs_holidays_container\">\n <span>Weekly offs: <span *ngFor=\"let weekOff of data().weekOffs; let last = last\">{{weekOff}} <span *ngIf=\"!last\">,</span></span></span>\n <span >Holidays <span class=\"circular-dot\" [ngStyle]=\"{ display: 'inline-block', 'margin-left': '10px' }\"></span></span>\n </div>\n <div class=\"daterangepicker__footer\">\n <span *ngIf=\"isSpecificPickerSelected()\">\n <span>{{localSelectedDates().length}}</span> day(s) selected\n </span>\n <span *ngIf=\"!isSpecificPickerSelected()\"><span>{{dateRangeLength() > 0 ? dateRangeLength() : 0 }} </span>day(s) selected</span>\n <div class=\"footer_action_btn\">\n <button mis-button size=\"md\" type=\"none\" (click)=\"cancelDatePicker()\" >Cancel</button>\n <button *ngIf=\"isSpecificPickerSelected()\" mis-button size=\"md\" type=\"primary\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid()\" >Apply</button>\n <button *ngIf=\"!isSpecificPickerSelected()\" mis-button size=\"md\" type=\"primary\" (click)=\"applyDatesRange()\" [disabled]=\"!isDatesValid() || (dateRangeLength() === 0)\" >Apply</button>\n </div>\n </div>\n </div>\n <div class=\"single-datepicker-container\" [ngStyle]=\"{'display': !singleDatePickerSelected() ? 'none' : 'block'}\">\n <input\n misTzDp\n misInput\n type=\"text\"\n readonly\n class=\"date-input\"\n [dpConfig]=\"data().dpConfig\"\n placeholder=\"Select\"\n (dateChange)=\"onSingleDateChange($event)\"\n [selectedDate]=\"singleDateSelectedValue()\"\n positionX=\"center\"\n positionY=\"top\"\n offsetX = 71\n offsetY = -1\n [value]=\"singleDateSelectedValue()\"\n [disableBoxShadow]=\"true\"\n [disableOverLay]=\"true\"\n [openElement]=\"openElement()\"\n #singleDatePickerElement\n />\n </div>\n\n</div>\n\n\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}.daterangepicker-container.single-date-picker-enabled{flex-direction:row}.daterangepicker-container .radio-container{display:flex;align-items:center;height:48px;padding:8px 0;justify-content:center;border-radius:12px 12px 0 0;border-bottom:1px solid var(--border-primary, #E0E0E0);background:var(--bg-primary, #FFFFFF)}.daterangepicker-container .radio-container .label{display:flex;align-items:center}.daterangepicker-container .radio-container .label .input{margin-right:8px;width:20px;height:20px}.daterangepicker-container .radio-container .label:first-child{padding-right:16px;border-right:1px solid var(--border-primary, #E0E0E0)}.daterangepicker-container .radio-container .label:nth-child(2){padding-left:16px}.daterangepicker-container.single-date-picker-enabled .radio-container{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;height:288px;padding:20px;border-right:1px solid var(--border-primary, #E0E0E0)!important;border-radius:0}.daterangepicker-container.single-date-picker-enabled .radio-container .label:first-child{padding-right:0;border-right:0px}.daterangepicker-container.single-date-picker-enabled .radio-container .label:nth-child(2){padding-left:0}.daterangepicker-container .daterangepicker-container__view{display:flex;gap:24px;padding:16px}.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{display:flex;flex-direction:column}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:16px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{height:100%;width:252px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{width:36px;height:18px;text-align:center}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-wrap:wrap}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{flex-direction:column;width:35px;height:36px;display:flex;align-items:center;justify-content:center;margin-bottom:1px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day{cursor:default}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day:hover{background-color:transparent}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day>span{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px;color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.selected-day{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.disabled-day{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day.selected-start-day{border-radius:50%!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .in-range-day:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-day{background-color:var(--brand-primary, #0937B2);border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .weekOffs_holidays_container{font-size:12px;color:var(--text-secondary, #6A737D);padding:8px 24px 12px}.daterangepicker-container .weekOffs_holidays_container>span{margin-right:16px}.daterangepicker-container .weekOffs_holidays_container>span>span{color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker__footer{display:flex;justify-content:space-between;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;word-spacing:4px}.daterangepicker-container .daterangepicker__footer span{font-family:Lato;font-size:15px;font-weight:400;align-self:center}.daterangepicker-container .daterangepicker__footer span span{font-weight:700}.daterangepicker-container .daterangepicker__footer .footer_action_btn{display:flex}.daterangepicker-container .daterangepicker__footer button{width:104px;height:44px;border-radius:8px;margin-left:24px;font-weight:700}.circular-dot{width:5px;height:5px;background-color:var(--brand-warning, #FF9D00);border-radius:50%}.holiday-text{color:var(--text-secondary, #6A737D)!important}.display-none{display:none!important}.single-datepicker-container{width:291px}\n"] }]
|
|
622
|
+
args: [{ selector: "mis-tz-sdp", template: "<div class=\"daterangepicker-container\" [ngClass]=\"data().isSingleDatePickerEnable?'single-date-picker-enabled':''\" aria-label=\"Choose date or date range\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <div tabindex=\"-1\" cdkFocusInitial></div>\n <div class=\"radio-container\">\n<div\n class=\"label\"\n tabindex=\"0\"\n (keydown.enter)=\"changePicker(picker)\"\n [attr.aria-label]=\"(formControl?.value === picker) ? (picker + ', selected') : (picker + ', click to select')\"\n *ngFor=\"let picker of datePickerValue(); let i = index\"\n>\n <mis-radio class=\"input\" [name]=\"'dateSelection'\" [value]=\"picker\" (valueChange)=\"changePicker($event)\" ngDefaultControl [formControl]=\"formControl\"></mis-radio>\n <span>{{picker}}</span>\n</div>\n</div>\n <div class=\"specific-datepicker-container\" [ngStyle]=\"{'display': singleDatePickerSelected() ? 'none' : ''}\">\n <div class=\"daterangepicker-container__view\">\n <div class=\"datepicker__left\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div\n class=\"daterangepicker-container__arrow__icon\"\n role=\"button\"\n [attr.tabindex]=\"isPreviousMonthDisabled() ? -1 : 0\"\n [attr.aria-disabled]=\"isPreviousMonthDisabled()\"\n aria-label=\"Previous month\"\n (click)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n (keydown.enter)=\"!isPreviousMonthDisabled() && navigateMonth('PREVIOUS')\"\n [ngClass]=\"{ 'disabled-month': isPreviousMonthDisabled() }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n <span> {{ currentMonth() }} {{ currentYearNumber() }} </span>\n <div></div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span [ngClass]=\"{\n 'current-day': weekDay.isCurrentDay && (currentMonthNumber() === todayMonthNumber())\n }\">{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [attr.data-sdp-cell]=\"getDayCellId(day, 'LEFT')\"\n [attr.tabindex]=\"getDayTabIndex(day, 'LEFT')\"\n [attr.aria-label]=\"day.date > 0 ? (day.date + ' ' + currentMonth() + ' ' + currentYearNumber() + (day.isDisabledDay ? ', disabled' : '')) : null\"\n [attr.aria-disabled]=\"day.isDisabledDay\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay && isSpecificPickerSelected(),\n 'disabled-day': day.isDisabledDay,\n 'selected-start-day': day.isSelectedStartDay && !isSpecificPickerSelected(),\n 'selected-end-day': day.isSelectedEndDay && !isSpecificPickerSelected(),\n 'in-range-day': day.inRangeDay && !isSpecificPickerSelected(),\n 'is-valid-date': day.date > 0 && !isSpecificPickerSelected() && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n [ngStyle]=\"{ 'margin-right': !isSpecificPickerSelected() ? '0px' : '1px','width': !isSpecificPickerSelected() ? '36px' : '35px','justify-content': day.isHoliday ? 'flex-start' : 'center','padding-top': day.isHoliday ? '2.8px' : '0px','height': day.isHoliday ? '33px' : '36px'}\"\n *ngFor=\"let day of currentMonthDates()\"\n (click)=\"selectDay('LEFT',day)\"\n (keydown)=\"handleDayKeydown($event, 'LEFT', day)\"\n >\n <div [ngClass]=\"{ 'circular-dot': day.isHoliday }\" aria-hidden=\"true\"></div>\n <span *ngIf=\"day.date > 0\" [ngClass]=\"{ 'current-day': day.isCurrentDay, 'holiday-text': day.isHoliday || day.isWeekOff }\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"datepicker__right\">\n <div class=\"daterangepicker-container__header__prabu\">\n <div></div>\n <span> {{ nextMonth() }} {{ nextYearNumber() }} </span>\n <div\n class=\"daterangepicker-container__arrow__icon\"\n role=\"button\"\n [attr.tabindex]=\"isNextMonthDisabled() ? -1 : 0\"\n [attr.aria-disabled]=\"isNextMonthDisabled()\"\n aria-label=\"Next month\"\n (click)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n (keydown.enter)=\"!isNextMonthDisabled() && navigateMonth('NEXT')\"\n [ngClass]=\"{ 'disabled-month': isNextMonthDisabled() }\"\n >\n <svg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path\n d=\"M19.7071 8.70711C20.0976 8.31658 20.0976 7.68342 19.7071 7.29289L13.3431 0.928933C12.9526 0.538409 12.3195 0.538409 11.9289 0.928933C11.5384 1.31946 11.5384 1.95262 11.9289 2.34315L17.5858 8L11.9289 13.6569C11.5384 14.0474 11.5384 14.6805 11.9289 15.0711C12.3195 15.4616 12.9526 15.4616 13.3431 15.0711L19.7071 8.70711ZM-8.74228e-08 9L19 9L19 7L8.74228e-08 7L-8.74228e-08 9Z\"\n fill=\"#181F33\"\n ></path>\n </svg>\n </div>\n </div>\n <div class=\"daterangepicker-container__body\">\n <div class=\"daterangepicker-container__weekdays\">\n <div class=\"daterangepicker-container__weekday\" *ngFor=\"let weekDay of weekDays()\">\n <span>{{ weekDay.label }}</span>\n </div>\n </div>\n <div class=\"daterangepicker-container__days\">\n <div\n class=\"daterangepicker-container__day\"\n [attr.data-sdp-cell]=\"getDayCellId(day, 'RIGHT')\"\n [attr.tabindex]=\"getDayTabIndex(day, 'RIGHT')\"\n [attr.aria-label]=\"day.date > 0 ? (day.date + ' ' + nextMonth() + ' ' + nextYearNumber() + (day.isDisabledDay ? ', disabled' : '')) : null\"\n [attr.aria-disabled]=\"day.isDisabledDay\"\n [ngClass]=\"{\n 'selected-day': day.isSelectedDay && isSpecificPickerSelected(),\n 'disabled-day': day.isDisabledDay,\n 'selected-start-day': day.isSelectedStartDay && !isSpecificPickerSelected(),\n 'selected-end-day': day.isSelectedEndDay && !isSpecificPickerSelected(),\n 'in-range-day': day.inRangeDay && !isSpecificPickerSelected(),\n 'is-valid-date': day.date > 0 && !isSpecificPickerSelected() && !(day.isSelectedStartDay && day.isSelectedEndDay)\n }\"\n *ngFor=\"let day of nextMonthDates()\"\n (click)=\"selectDay('RIGHT',day)\"\n (keydown)=\"handleDayKeydown($event, 'RIGHT', day)\"\n >\n <div [ngClass]=\"{ 'circular-dot': day.isHoliday }\" aria-hidden=\"true\"></div>\n <span *ngIf=\"day.date > 0\" [ngClass]=\"{ 'current-day': day.isCurrentDay && (currentMonthNumber() === todayMonthNumber()), 'holiday-text': day.isHoliday || day.isWeekOff }\">\n {{ day.date }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"weekOffs_holidays_container\" tabindex=\"0\" [attr.aria-label]=\"'Weekly offs: ' + (data().weekOffs?.length ? data().weekOffs.join(', ') : 'None') + '. Holidays marked with a dot on the calendar.'\">\n <span>Weekly offs: <span *ngFor=\"let weekOff of data().weekOffs; let last = last\">{{weekOff}} <span *ngIf=\"!last\">,</span></span></span>\n <span >Holidays <span class=\"circular-dot\" [ngStyle]=\"{ display: 'inline-block', 'margin-left': '10px' }\"></span></span>\n </div>\n <div class=\"daterangepicker__footer\">\n <span *ngIf=\"isSpecificPickerSelected()\">\n <span>{{localSelectedDates().length}}</span> day(s) selected\n </span>\n <span *ngIf=\"!isSpecificPickerSelected()\"><span>{{dateRangeLength() > 0 ? dateRangeLength() : 0 }} </span>day(s) selected</span>\n <div class=\"footer_action_btn\">\n <button #cancelBtn mis-button size=\"md\" type=\"none\" tabindex=\"0\" (click)=\"cancelDatePicker()\">Cancel</button>\n <button *ngIf=\"isSpecificPickerSelected()\" mis-button size=\"md\" type=\"primary\" tabindex=\"0\" (click)=\"applyDates()\" [disabled]=\"!isDatesValid()\">Apply</button>\n <button *ngIf=\"!isSpecificPickerSelected()\" #applyRangeBtn mis-button size=\"md\" type=\"primary\" tabindex=\"0\" (click)=\"applyDatesRange()\" [disabled]=\"!isDatesValid() || (dateRangeLength() === 0)\">Apply</button>\n </div>\n </div>\n </div>\n <div class=\"single-datepicker-container\" [ngStyle]=\"{'display': !singleDatePickerSelected() ? 'none' : 'block'}\">\n <input\n misTzDp\n misInput\n type=\"text\"\n readonly\n class=\"date-input\"\n [dpConfig]=\"data().dpConfig\"\n placeholder=\"Select\"\n (dateChange)=\"onSingleDateChange($event)\"\n [selectedDate]=\"singleDateSelectedValue()\"\n positionX=\"center\"\n positionY=\"top\"\n offsetX = 71\n offsetY = -1\n [value]=\"singleDateSelectedValue()\"\n [disableBoxShadow]=\"true\"\n [disableOverLay]=\"true\"\n [openElement]=\"openElement()\"\n #singleDatePickerElement\n />\n </div>\n\n</div>\n\n\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.daterangepicker-container{background:var(--bg-primary, #FFFFFF);border:1px solid var(--border-primary, #E0E0E0);box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:12px;display:flex;flex-direction:column;font-family:Lato;overflow:hidden;-webkit-user-select:none;user-select:none}.daterangepicker-container.single-date-picker-enabled{flex-direction:row}.daterangepicker-container .radio-container{display:flex;align-items:center;height:48px;padding:8px 0;justify-content:center;border-radius:12px 12px 0 0;border-bottom:1px solid var(--border-primary, #E0E0E0);background:var(--bg-primary, #FFFFFF)}.daterangepicker-container .radio-container .label{display:flex;align-items:center}.daterangepicker-container .radio-container .label .input{margin-right:8px;width:20px;height:20px}.daterangepicker-container .radio-container .label:first-child{padding-right:16px;border-right:1px solid var(--border-primary, #E0E0E0)}.daterangepicker-container .radio-container .label:nth-child(2){padding-left:16px}.daterangepicker-container.single-date-picker-enabled .radio-container{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;height:288px;padding:20px;border-right:1px solid var(--border-primary, #E0E0E0)!important;border-radius:0}.daterangepicker-container.single-date-picker-enabled .radio-container .label:first-child{padding-right:0;border-right:0px}.daterangepicker-container.single-date-picker-enabled .radio-container .label:nth-child(2){padding-left:0}.daterangepicker-container .daterangepicker-container__view{display:flex;gap:24px;padding:16px}.daterangepicker-container .daterangepicker-container__view .datepicker__left,.daterangepicker-container .daterangepicker-container__view .datepicker__right{display:flex;flex-direction:column}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu{display:flex;height:32px;justify-content:space-between;align-items:center;width:100%;padding-bottom:16px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu span{font-size:16px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:.2px;text-align:center}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon{height:20px;width:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon.disabled-month{opacity:.5;cursor:not-allowed}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:not(.disabled-month):hover{cursor:pointer;background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__header__prabu .daterangepicker-container__arrow__icon:nth-child(1){transform:rotate(180deg)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body{height:100%;width:252px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays{width:100%;display:flex;padding-bottom:10px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday{width:36px;height:18px;text-align:center}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span{font-size:12px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:.2px;text-align:center;color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__weekdays .daterangepicker-container__weekday span.current-day{font-weight:700;letter-spacing:.25px;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days{display:flex;flex-wrap:wrap}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day{flex-direction:column;width:35px;height:36px;display:flex;align-items:center;justify-content:center;margin-bottom:1px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day:not(.in-range-day):not(.selected-start-day):not(.selected-end-day){border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day{cursor:default}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day:hover{background-color:transparent}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.disabled-day>span{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day.is-valid-date:not(.disabled-day):not(.selected-start-day):not(.selected-end-day):hover{background-color:var(--brand-primary-lightest, #CBDDFB);cursor:pointer}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span{font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.2px;text-align:center;color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.current-day{font-weight:700;letter-spacing:.25px;color:var(--brand-primary, #0937B2)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.selected-day{color:var(--bg-primary, #FFFFFF)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .daterangepicker-container__day span.disabled-day{color:var(--text-secondary, #6A737D)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day{background-color:var(--brand-primary, #0937B2);border-radius:20px 4px 4px 20px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-start-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day{background-color:var(--brand-primary, #0937B2);border-radius:0 20px 20px 0}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-end-day.selected-start-day{border-radius:50%!important}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .in-range-day:not(.disabled-day){background-color:var(--brand-primary-lightest, #CBDDFB)}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-day{background-color:var(--brand-primary, #0937B2);border-radius:4px}.daterangepicker-container .daterangepicker-container__view .daterangepicker-container__body .daterangepicker-container__days .selected-day>span{color:var(--bg-primary, #FFFFFF)!important}.daterangepicker-container .weekOffs_holidays_container{font-size:12px;color:var(--text-secondary, #6A737D);padding:8px 24px 12px}.daterangepicker-container .weekOffs_holidays_container>span{margin-right:16px}.daterangepicker-container .weekOffs_holidays_container>span>span{color:var(--text-primary, #181F33)}.daterangepicker-container .daterangepicker__footer{display:flex;justify-content:space-between;border-top:1px solid var(--border-primary, #E0E0E0);padding:16px 24px;word-spacing:4px}.daterangepicker-container .daterangepicker__footer span{font-family:Lato;font-size:15px;font-weight:400;align-self:center}.daterangepicker-container .daterangepicker__footer span span{font-weight:700}.daterangepicker-container .daterangepicker__footer .footer_action_btn{display:flex}.daterangepicker-container .daterangepicker__footer button{width:104px;height:44px;border-radius:8px;margin-left:24px;font-weight:700}.circular-dot{width:5px;height:5px;background-color:var(--brand-warning, #FF9D00);border-radius:50%}.holiday-text{color:var(--text-secondary, #6A737D)!important}.display-none{display:none!important}.single-datepicker-container{width:291px}\n"] }]
|
|
529
623
|
}], () => [{ type: undefined, decorators: [{
|
|
530
624
|
type: Inject,
|
|
531
625
|
args: [CONTAINER_DATA]
|
|
532
|
-
}] }, { type: i1.ToastService }], { singleDatePickerElement: [{
|
|
626
|
+
}] }, { type: i1.ToastService }, { type: i0.ElementRef }], { singleDatePickerElement: [{
|
|
533
627
|
type: ViewChild,
|
|
534
628
|
args: ['singleDatePickerElement', { static: true, read: TzDatepickerDirective }]
|
|
535
629
|
}] }); })();
|
|
536
630
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TzDrpContainerComponent, { className: "TzDrpContainerComponent" }); })();
|
|
537
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc2RwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9zcGVjaWZpY2RhdGVwaWNrZXIvdHotc2RwLWNvbnRhaW5lci90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zZHAtY29udGFpbmVyL3R6LXNkcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEtBQW9CLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxTQUFTLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1Z6QyxBQURGLCtCQUE0RCxvQkFDMkY7SUFBbEYsd01BQWUsMkJBQW9CLEtBQUM7SUFBOEMsaUJB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QUNGLGtDQUNNOzs7aUZENUh4Qix1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxZQUFZOztzQkF5RlQsTUFBTTt1QkFBQyxjQUFjO2dEQUZtRCx1QkFBdUI7a0JBQTNHLFNBQVM7bUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTs7a0ZBbkZ4RSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDT05UQUlORVJfREFUQSwgREFURV9GT1JNQVQgfSBmcm9tIFwiLi4vZGF0ZXJhbmdlcGlja2VyLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgSUN1cnJlbnRNb250aCwgSUN1cnJlbnRNb250aERhdGVzLCBJRGF0ZVBpY2tlckRhdGEsIElXZWVrRGF5LCBJU1NlbGVjdGVkRGF0ZXNDb25maWcsIElSU2VsZWN0ZWREYXRlc0NvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvc2RwLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgZ2V0TW9udGggfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3RvYXN0XCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFR6RGF0ZXBpY2tlckRpcmVjdGl2ZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL2RhdGVwaWNrZXJfdjJcIjtcbmltcG9ydCBkYXlqcywgeyBEYXlqcywgdHogfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5pbXBvcnQgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XG5pbXBvcnQgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xuaW1wb3J0IGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcblxuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5kYXlqcy5leHRlbmQodXRjKTtcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQWZ0ZXIpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQmVmb3JlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10ei1zZHBcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFR6RHJwQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSBkYXRhID0gc2lnbmFsPElEYXRlUGlja2VyRGF0YT4odGhpcy5pbmplY3RlZERhdGEpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF5anNJbnN0YW5jZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmRhdGEoKS5kcENvbmZpZztcbiAgICBpZiAoY29uZmlnPy50aW1lem9uZSkge1xuICAgICAgLy8gUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIHRpbWV6b25lLWF3YXJlIGRheWpzIGluc3RhbmNlXG4gICAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiBkYXlqcyguLi5hcmdzKS50eihjb25maWcudGltZXpvbmUpO1xuICAgIH1cbiAgICAvLyBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgc3RhbmRhcmQgZGF5anMgaW5zdGFuY2VcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiBkYXlqcyguLi5hcmdzKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByYXdXZWVrRGF5czogc3RyaW5nW10gPSBbXCJTVU5cIiwgXCJNT05cIiwgXCJUVUVcIiwgXCJXRURcIiwgXCJUSFVcIiwgXCJGUklcIiwgXCJTQVRcIl07XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU2VsZWN0ZWREYXRlcyA9IHNpZ25hbDxJU1NlbGVjdGVkRGF0ZXNDb25maWdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UgPSBzaWduYWw8SVJTZWxlY3RlZERhdGVzQ29uZmlnPih7c3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzRGF0ZXNWYWxpZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSkge1xuICAgICAgLy8gVmFsaWQgaWYgYXQgbGVhc3Qgb25lIHNwZWNpZmljIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIC8vIFZhbGlkIGlmIGJvdGggc3RhcnQgYW5kIGVuZCBkYXRlIG9mIHRoZSByYW5nZSBhcmUgc2V0XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk7XG4gICAgcmV0dXJuICEhKHJhbmdlPy5zdGFydERhdGUgJiYgcmFuZ2U/LmVuZERhdGUpO1xuICB9KTtcblxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzaW5nbGVEYXRlUGlja2VyU2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbkVsZW1lbnQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkVmFsdWUgPSBzaWduYWwoJycpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uU3RhcnRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJ1NwZWNpZmljIERhdGUocyknKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGVQaWNrZXJWYWx1ZSA9IHNpZ25hbDxzdHJpbmdbXT4oWydTcGVjaWZpYyBEYXRlKHMpJywnRGF0ZSBSYW5nZSddKTtcbiAgXG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50TW9udGhOdW1iZXIgPSBzaWduYWwodGhpcy5pbmplY3RlZERhdGEuZHBDb25maWc/LnRpbWV6b25lID8gZGF5anMoKS50eih0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZy50aW1lem9uZSkubW9udGgoKSA6IGRheWpzKCkubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50WWVhck51bWJlciA9IHNpZ25hbCh0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZz8udGltZXpvbmUgPyBkYXlqcygpLnR6KHRoaXMuaW5qZWN0ZWREYXRhLmRwQ29uZmlnLnRpbWV6b25lKS55ZWFyKCkgOiBkYXlqcygpLnllYXIoKSk7XG4gIHB1YmxpYyByZWFkb25seSBuZXh0TW9udGhOdW1iZXIgPSBzaWduYWwodGhpcy5pbmplY3RlZERhdGEuZHBDb25maWc/LnRpbWV6b25lID8gZGF5anMoKS50eih0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZy50aW1lem9uZSkuYWRkKDEsIFwibW9udGhcIikubW9udGgoKSA6IGRheWpzKCkuYWRkKDEsIFwibW9udGhcIikubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBuZXh0WWVhck51bWJlciA9IHNpZ25hbCh0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZz8udGltZXpvbmUgPyBkYXlqcygpLnR6KHRoaXMuaW5qZWN0ZWREYXRhLmRwQ29uZmlnLnRpbWV6b25lKS5hZGQoMSwgXCJtb250aFwiKS55ZWFyKCkgOiBkYXlqcygpLmFkZCgxLCBcIm1vbnRoXCIpLnllYXIoKSk7XG4gIFxuXG4gIHB1YmxpYyByZWFkb25seSB3ZWVrRGF5cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5yYXdXZWVrRGF5cy5tYXAoKGRheSwgaW5kZXgpID0+ICh7XG4gICAgICBsYWJlbDogYCR7ZGF5WzBdfSR7ZGF5LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgIGlzQ3VycmVudERheTogdGhpcy5kYXlqc0luc3RhbmNlKCkoKS5kYXkoKSA9PT0gaW5kZXhcbiAgICB9KSk7XG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudE1vbnRoID0gY29tcHV0ZWQoKCkgPT4gZ2V0TW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmV4dE1vbnRoID0gY29tcHV0ZWQoKCkgPT4gZ2V0TW9udGgodGhpcy5uZXh0TW9udGhOdW1iZXIoKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgdG9kYXlNb250aE51bWJlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBkYXRlUmFuZ2VMZW5ndGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk7XG4gICAgaWYgKHJhbmdlPy5zdGFydERhdGUgJiYgcmFuZ2U/LmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5kYXlqc0luc3RhbmNlKCkocmFuZ2Uuc3RhcnREYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgY29uc3QgZW5kID0gdGhpcy5kYXlqc0luc3RhbmNlKCkocmFuZ2UuZW5kRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgIGlmIChzdGFydC5pc1ZhbGlkKCkgJiYgZW5kLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsICdkYXknKSArIDE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9KTtcbiAgcHVibGljIHJlYWRvbmx5IGlzUHJldmlvdXNNb250aERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkpO1xuICAgIGNvbnN0IG1pbkRhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1pbkRhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5taW5EYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICByZXR1cm4gbWluRGF0ZS5pc1ZhbGlkKCkgJiYgbWluRGF0ZS5pc1NhbWVPckFmdGVyKGN1cnJlbnRJbnN0YW5jZSwgXCJtb250aFwiKTtcbiAgfSk7XG4gIHB1YmxpYyByZWFkb25seSBpc05leHRNb250aERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkpO1xuICAgIGNvbnN0IG1heERhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1heERhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICByZXR1cm4gbWF4RGF0ZS5pc1ZhbGlkKCkgJiYgbWF4RGF0ZS5pc1NhbWVPckJlZm9yZShjdXJyZW50SW5zdGFuY2UsIFwibW9udGhcIik7XG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudE1vbnRoRGF0ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlcigpLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpO1xuICB9KTtcbiAgcHVibGljIHJlYWRvbmx5IG5leHRNb250aERhdGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5uZXh0TW9udGhOdW1iZXIoKSwgdGhpcy5uZXh0WWVhck51bWJlcigpKTtcbiAgfSk7XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlRGF0ZVBpY2tlckVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVHpEYXRlcGlja2VyRGlyZWN0aXZlIH0pIHNpbmdsZURhdGVQaWNrZXJFbGVtZW50ITogVHpEYXRlcGlja2VyRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEFJTkVSX0RBVEEpIHByaXZhdGUgaW5qZWN0ZWREYXRhOiBJRGF0ZVBpY2tlckRhdGEsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSkge1xuICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGVzLnNldCh0aGlzLmRhdGEoKS5kYXRlcyk7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZS5zZXQodGhpcy5pbmplY3RlZERhdGEuZGF0ZXNSYW5nZSB8fCB7c3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsfSk7XG4gICAgdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQuc2V0KHRoaXMuZGF0YSgpLmlzU1BpY2tlclNlbGVjdGVkKTtcbiAgICB0aGlzLmRhdGVSYW5nZVNlbGVjdGVkLnNldCghdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSk7XG4gICAgdGhpcy5zaW5nbGVEYXRlUGlja2VyU2VsZWN0ZWQuc2V0KHRoaXMuZGF0YSgpLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IHNlbGVjdGVkU3RhcnREYXRlOiBEYXlqcztcbiAgICAgIGlmICghdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSkge1xuICAgICAgICBzZWxlY3RlZFN0YXJ0RGF0ZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRTdGFydERhdGUgPSB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpPy5bMF0/LnNlbGVjdGVkRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWxlY3RlZFN0YXJ0RGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50WWVhck51bWJlci5zZXQoc2VsZWN0ZWRTdGFydERhdGUueWVhcigpKTtcbiAgICAgICAgdGhpcy5uZXh0WWVhck51bWJlci5zZXQoc2VsZWN0ZWRTdGFydERhdGUuYWRkKDEsIFwibW9udGhcIikueWVhcigpKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhOdW1iZXIuc2V0KHNlbGVjdGVkU3RhcnREYXRlLmdldChcIm1vbnRoXCIpKTtcbiAgICAgICAgdGhpcy5uZXh0TW9udGhOdW1iZXIuc2V0KHNlbGVjdGVkU3RhcnREYXRlLmFkZCgxLCBcIm1vbnRoXCIpLm1vbnRoKCkpO1xuICAgICAgfVxuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gICAgXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRhdGEoKS5pc1NpbmdsZURhdGVQaWNrZXJFbmFibGUpIHtcbiAgICAgICAgY29uc3QgcGlja2VyVmFsdWUgPSAnU2luZ2xlIERhdGUnO1xuICAgICAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlclZhbHVlKCkuaW5jbHVkZXMocGlja2VyVmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5kYXRlUGlja2VyVmFsdWUudXBkYXRlKGN1cnJlbnRWYWx1ZSA9PiBbcGlja2VyVmFsdWUsIC4uLmN1cnJlbnRWYWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUocGlja2VyVmFsdWUpO1xuICAgICAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXJTZWxlY3RlZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLnNpbmdsZURhdGVTZWxlY3RlZFZhbHVlLnNldCh0aGlzLmRhdGEoKS5kYXRlc1swXT8uc2VsZWN0ZWREYXRlIHx8ICcnKTtcbiAgICAgIH1cbiAgICB9LCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRhKCk/LmRwQ29uZmlnPy5mb3JtYXQpIHtcbiAgICAgIHRoaXMuZGF0YSgpLmRwQ29uZmlnID0ge1xuICAgICAgICAuLi50aGlzLmRhdGEoKS5kcENvbmZpZyxcbiAgICAgICAgZm9ybWF0OiBEQVRFX0ZPUk1BVFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRGF0ZXMobW9udGg6IG51bWJlciwgY3VycmVudFllYXJOdW1iZXI6IG51bWJlcik6IElDdXJyZW50TW9udGhEYXRlc1tdIHtcbiAgICBjb25zdCBkYXRlczogSUN1cnJlbnRNb250aERhdGVzW10gPSBbXTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRheXNJbk1vbnRoKCk7XG4gICAgXG4gICAgZm9yIChsZXQgY3VycmVudERhdGUgPSAxOyBjdXJyZW50RGF0ZSA8PSBkYXlzSW5Nb250aDsgY3VycmVudERhdGUrKykge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRhdGUoY3VycmVudERhdGUpO1xuICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCk7XG5cbiAgICAgIGxldCBpc0Rpc2FibGVkRGF5ID0gdGhpcy5kYXRhKCkuZGF0ZXNEaXNhYmxlZC5zb21lKGQgPT4gZCA9PT0gZGF0ZVN0cmluZyk7XG4gICAgICBjb25zdCBtaW5EYXRlID0gISF0aGlzLmRhdGEoKS5kcENvbmZpZy5taW5EYXRlID8gdGhpcy5kYXlqc0luc3RhbmNlKCkodGhpcy5kYXRhKCkuZHBDb25maWcubWluRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSA6IGRheWpzKCdpbnZhbGlkJyk7XG4gICAgICBpZiAoIWlzRGlzYWJsZWREYXkgJiYgbWluRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgaXNEaXNhYmxlZERheSA9IG1pbkRhdGUuaXNBZnRlcihkYXRlLCBcImRheVwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heERhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1heERhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICAgIGlmICghaXNEaXNhYmxlZERheSAmJiBtYXhEYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICBpc0Rpc2FibGVkRGF5ID0gbWF4RGF0ZS5pc0JlZm9yZShkYXRlLCBcImRheVwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNDdXJyZW50RGF5ID0gZGF0ZS5pc1NhbWUodGhpcy5kYXlqc0luc3RhbmNlKCkoKSwgJ2RheScpO1xuICAgICAgbGV0IGlzU2VsZWN0ZWREYXkgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpLnNvbWUoZCA9PiBkLnNlbGVjdGVkRGF0ZSA9PT0gZGF0ZVN0cmluZyk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkU3RhcnREYXkgPSAhIXRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlICYmIGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCkgPT09IHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZEVuZERheSA9ICEhdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZSgpPy5lbmREYXRlICYmIGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCkgPT09IHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uZW5kRGF0ZTtcbiAgICAgIGNvbnN0IGluUmFuZ2VEYXkgPSAhISh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk/LnN0YXJ0RGF0ZSAmJiB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk/LmVuZERhdGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5pc0JldHdlZW4odGhpcy5kYXlqc0luc3RhbmNlKCkodGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZSgpPy5zdGFydERhdGUsIHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCksIHRoaXMuZGF5anNJbnN0YW5jZSgpKHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uZW5kRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgJ2RheScsICcoKScpO1xuXG4gICAgICBjb25zdCBpc0hvbGlkYXkgPSB0aGlzLmRhdGEoKS5ob2xpZGF5cy5pbmNsdWRlcyhkYXRlU3RyaW5nKTtcbiAgICAgIGNvbnN0IGlzV2Vla09mZiA9IHRoaXMuZGF0YSgpLndlZWtPZmZzLmluY2x1ZGVzKGRhdGUuZm9ybWF0KCdkZGQnKSk7XG5cbiAgICAgIGRhdGVzLnB1c2goe1xuICAgICAgICBkYXRlOiBjdXJyZW50RGF0ZSxcbiAgICAgICAgd2Vla0RheTogZGF0ZS5kYXkoKSxcbiAgICAgICAgaXNTZWxlY3RlZERheSxcbiAgICAgICAgaXNDdXJyZW50RGF5LFxuICAgICAgICBpc1NlbGVjdGVkU3RhcnREYXksXG4gICAgICAgIGlzU2VsZWN0ZWRFbmREYXksXG4gICAgICAgIGluUmFuZ2VEYXksXG4gICAgICAgIGlzSG9saWRheSxcbiAgICAgICAgaXNXZWVrT2ZmLFxuICAgICAgICB0b2FzdE1lc3NhZ2U6IHRoaXMuZGF0YSgpLm1lc3NhZ2VzLmZpbmQocSA9PiBkYXRlLmZvcm1hdCh0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpID09PSBxLmRhdGUpPy5tZXNzYWdlIHx8IFwiXCIsXG4gICAgICAgIGlzRGlzYWJsZWREYXlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBkYXRlc1swXT8ud2Vla0RheSB8fCAwOyBpID4gMDsgaS0tKSB7XG4gICAgICBkYXRlcy51bnNoaWZ0KHsgZGF0ZTogMCwgd2Vla0RheTogaSAtIDEgfSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gIG5hdmlnYXRlTW9udGgoZGlyZWN0aW9uOiBcIk5FWFRcIiB8IFwiUFJFVklPVVNcIik6IHZvaWQge1xuICAgIGxldCB0aGlzTW9udGg6IERheWpzID0gdGhpcy5kYXlqc0luc3RhbmNlKCkoKS55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIoKSkubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSk7XG4gICAgdGhpc01vbnRoID0gZGlyZWN0aW9uID09PSBcIk5FWFRcIiA/IHRoaXNNb250aC5hZGQoMSwgXCJtb250aFwiKSA6IHRoaXNNb250aC5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLnNldCh0aGlzTW9udGgubW9udGgoKSk7XG4gICAgdGhpcy5jdXJyZW50WWVhck51bWJlci5zZXQodGhpc01vbnRoLnllYXIoKSk7XG4gICAgdGhpcy5uZXh0TW9udGhOdW1iZXIuc2V0KHRoaXNNb250aC5jbG9uZSgpLmFkZCgxLCBcIm1vbnRoXCIpLm1vbnRoKCkpO1xuICAgIHRoaXMubmV4dFllYXJOdW1iZXIuc2V0KHRoaXNNb250aC5jbG9uZSgpLmFkZCgxLCBcIm1vbnRoXCIpLnllYXIoKSk7XG4gIH1cblxuICBzZWxlY3REYXkoZnJvbTogXCJMRUZUXCIgfCBcIlJJR0hUXCIsIGRheTogSUN1cnJlbnRNb250aERhdGVzKTogdm9pZCB7XG4gICAgaWYgKGRheS5kYXRlIDw9IDAgfHwgZGF5LmlzRGlzYWJsZWREYXkpIHtcbiAgICAgIGlmIChkYXkudG9hc3RNZXNzYWdlKSB0aGlzLnRvYXN0LmRpc3BsYXlNc2coZGF5LnRvYXN0TWVzc2FnZSwgNDAwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLmlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcy51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmRheWpzSW5zdGFuY2UoKSgpXG4gICAgICAgICAgLnllYXIoZnJvbSA9PT0gXCJMRUZUXCIgPyB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkgOiB0aGlzLm5leHRZZWFyTnVtYmVyKCkpXG4gICAgICAgICAgLm1vbnRoKGZyb20gPT09IFwiTEVGVFwiID8gdGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSA6IHRoaXMubmV4dE1vbnRoTnVtYmVyKCkpXG4gICAgICAgICAgLmRhdGUoZGF5LmRhdGUpLmZvcm1hdCh0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudC5maW5kSW5kZXgoZCA9PiBkLnNlbGVjdGVkRGF0ZSA9PT0gY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgIFxuICAgICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudC5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gZXhpc3RpbmdJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWRheS5pc0Rpc2FibGVkRGF5KSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5jdXJyZW50LCB7IHNlbGVjdGVkRGF0ZTogY3VycmVudFNlbGVjdGlvbiB9XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXlqc0RheSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKClcbiAgICAgICAgLnllYXIoZnJvbSA9PT0gXCJMRUZUXCIgPyB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkgOiB0aGlzLm5leHRZZWFyTnVtYmVyKCkpXG4gICAgICAgIC5tb250aChmcm9tID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkgOiB0aGlzLm5leHRNb250aE51bWJlcigpKVxuICAgICAgICAuZGF0ZShkYXkuZGF0ZSk7XG4gICAgICBcbiAgICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25TdGFydGVkKCkpIHtcbiAgICAgICAgICBpZiAoZGF5anNEYXkuaXNCZWZvcmUodGhpcy5kYXlqc0luc3RhbmNlKCkoY3VycmVudC5zdGFydERhdGUsIHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCksIFwiZGF5XCIpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0ZWQuc2V0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgZW5kRGF0ZTogbnVsbCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0ZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5jdXJyZW50LCBlbmREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU3RhcnRlZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgZW5kRGF0ZTogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhcHBseURhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSgpLmRhdGVDaGFuZ2UodGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXMoKSk7XG4gIH1cblxuICBhcHBseURhdGVzUmFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhKCkuZGF0ZUNoYW5nZVJhbmdlKHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKSk7XG4gIH1cblxuICBvblNpbmdsZURhdGVDaGFuZ2UoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0YTogSVNTZWxlY3RlZERhdGVzQ29uZmlnID0geyBzZWxlY3RlZERhdGU6IGV2ZW50IH07XG4gICAgdGhpcy5zaW5nbGVEYXRlU2VsZWN0ZWRWYWx1ZS5zZXQoZXZlbnQpO1xuICAgIHRoaXMuZGF0YSgpLmRhdGVDaGFuZ2UoW3NlbGVjdGVkRGF0YV0pO1xuICB9XG5cbiAgY2FuY2VsRGF0ZVBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEoKS5jbG9zZSgpO1xuICB9XG5cbiAgY2hhbmdlUGlja2VyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXJTZWxlY3RlZC5zZXQoZXZlbnQgPT09IFwiU2luZ2xlIERhdGVcIik7XG4gICAgdGhpcy5vcGVuRWxlbWVudC5zZXQoZXZlbnQgPT09IFwiU2luZ2xlIERhdGVcIik7XG4gICAgdGhpcy5kYXRlUmFuZ2VTZWxlY3RlZC5zZXQoZXZlbnQgPT09IFwiRGF0ZSBSYW5nZVwiKTtcbiAgICB0aGlzLmlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZC5zZXQoZXZlbnQgPT09IFwiU3BlY2lmaWMgRGF0ZShzKVwiKTtcbiAgICBcbiAgICAvLyBBcyBkaXNjdXNzZWQsIHN0YXRlIGlzIHJldGFpbmVkIHdoZW4gc3dpdGNoaW5nIG1vZGVzLlxuICAgIC8vIFRoZSB2aWV3IHdpbGwgc2ltcGx5IHVwZGF0ZSB0byByZWZsZWN0IHRoZSBhY3RpdmUgbW9kZS5cbiAgICBcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGV2ZW50LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cbiAgXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXJFbGVtZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiZGF0YSgpLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZT8nc2luZ2xlLWRhdGUtcGlja2VyLWVuYWJsZWQnOicnXCI+XG4gIDxkaXYgY2xhc3M9XCJyYWRpby1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiAqbmdGb3I9XCJsZXQgcGlja2VyIG9mIGRhdGVQaWNrZXJWYWx1ZSgpXCI+XG4gICAgICA8bWlzLXJhZGlvIGNsYXNzPVwiaW5wdXRcIiBbbmFtZV09XCInZGF0ZVNlbGVjdGlvbidcIiBbdmFsdWVdPVwicGlja2VyXCIgKHZhbHVlQ2hhbmdlKT1cImNoYW5nZVBpY2tlcigkZXZlbnQpXCIgbmdEZWZhdWx0Q29udHJvbCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj48L21pcy1yYWRpbz5cbiAgICAgIDxzcGFuPnt7cGlja2VyfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3BlY2lmaWMtZGF0ZXBpY2tlci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2Rpc3BsYXknOiBzaW5nbGVEYXRlUGlja2VyU2VsZWN0ZWQoKSA/ICdub25lJyA6ICcnfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX192aWV3XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fbGVmdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9faGVhZGVyX19wcmFidVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fYXJyb3dfX2ljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiFpc1ByZXZpb3VzTW9udGhEaXNhYmxlZCgpICYmIG5hdmlnYXRlTW9udGgoJ1BSRVZJT1VTJylcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnZGlzYWJsZWQtbW9udGgnOiBpc1ByZXZpb3VzTW9udGhEaXNhYmxlZCgpXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTE5LjcwNzEgOC43MDcxMUMyMC4wOTc2IDguMzE2NTggMjAuMDk3NiA3LjY4MzQyIDE5LjcwNzEgNy4yOTI4OUwxMy4zNDMxIDAuOTI4OTMzQzEyLjk1MjYgMC41Mzg0MDkgMTIuMzE5NSAwLjUzODQwOSAxMS45Mjg5IDAuOTI4OTMzQzExLjUzODQgMS4zMTk0NiAxMS41Mzg0IDEuOTUyNjIgMTEuOTI4OSAyLjM0MzE1TDE3LjU4NTggOEwxMS45Mjg5IDEzLjY1NjlDMTEuNTM4NCAxNC4wNDc0IDExLjUzODQgMTQuNjgwNSAxMS45Mjg5IDE1LjA3MTFDMTIuMzE5NSAxNS40NjE2IDEyLjk1MjYgMTUuNDYxNiAxMy4zNDMxIDE1LjA3MTFMMTkuNzA3MSA4LjcwNzExWk0tOC43NDIyOGUtMDggOUwxOSA5TDE5IDdMOC43NDIyOGUtMDggN0wtOC43NDIyOGUtMDggOVpcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3Bhbj4ge3sgY3VycmVudE1vbnRoKCkgfX0ge3sgY3VycmVudFllYXJOdW1iZXIoKSB9fSA8L3NwYW4+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX193ZWVrZGF5c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX193ZWVrZGF5XCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXMoKVwiPlxuICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnY3VycmVudC1kYXknOiB3ZWVrRGF5LmlzQ3VycmVudERheSAmJiAoY3VycmVudE1vbnRoTnVtYmVyKCkgPT09IHRvZGF5TW9udGhOdW1iZXIoKSlcbiAgICAgICAgICAgIH1cIj57eyB3ZWVrRGF5LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVyYW5nZXBpY2tlci1jb250YWluZXJfX2RheXNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImRhdGVyYW5nZXBpY2tlci1jb250YWluZXJfX2RheVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdzZWxlY3RlZC1kYXknOiBkYXkuaXNTZWxlY3RlZERheSAmJiBpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2Rpc2FibGVkLWRheSc6IGRheS5pc0Rpc2FibGVkRGF5LFxuICAgICAgICAgICAgICAnc2VsZWN0ZWQtc3RhcnQtZGF5JzogZGF5LmlzU2VsZWN0ZWRTdGFydERheSAmJiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCksXG4gICAgICAgICAgICAgICdzZWxlY3RlZC1lbmQtZGF5JzogZGF5LmlzU2VsZWN0ZWRFbmREYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnaW4tcmFuZ2UtZGF5JzogZGF5LmluUmFuZ2VEYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnaXMtdmFsaWQtZGF0ZSc6IGRheS5kYXRlID4gMCAmJiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCkgJiYgIShkYXkuaXNTZWxlY3RlZFN0YXJ0RGF5ICYmIGRheS5pc1NlbGVjdGVkRW5kRGF5KVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tcmlnaHQnOiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCkgPyAnMHB4JyA6ICcxcHgnLCd3aWR0aCc6ICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSA/ICczNnB4JyA6ICczNXB4JywnanVzdGlmeS1jb250ZW50JzogZGF5LmlzSG9saWRheSA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInLCdwYWRkaW5nLXRvcCc6IGRheS5pc0hvbGlkYXkgPyAnMi44cHgnIDogJzBweCcsJ2hlaWdodCc6IGRheS5pc0hvbGlkYXkgPyAnMzNweCcgOiAnMzZweCd9XCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgY3VycmVudE1vbnRoRGF0ZXMoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF5KCdMRUZUJyxkYXkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY2lyY3VsYXItZG90JzogZGF5LmlzSG9saWRheVxuICAgICAgICAgIH1cIj48L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF5LmRhdGUgPiAwXCIgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2N1cnJlbnQtZGF5JzogZGF5LmlzQ3VycmVudERheSxcbiAgICAgICAgICAgICAgJ2hvbGlkYXktdGV4dCc6IGRheS5pc0hvbGlkYXkgfHwgZGF5LmlzV2Vla09mZlxuICAgICAgICAgICAgfVwiID5cbiAgICAgICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlcl9fcmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19oZWFkZXJfX3ByYWJ1XCI+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxzcGFuPiB7eyBuZXh0TW9udGgoKSB9fSB7eyBuZXh0WWVhck51bWJlcigpIH19IDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fYXJyb3dfX2ljb25cIlxuICAgICAgICAgIChjbGljayk9XCIhaXNOZXh0TW9udGhEaXNhYmxlZCgpICYmIG5hdmlnYXRlTW9udGgoJ05FWFQnKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2Rpc2FibGVkLW1vbnRoJzogaXNOZXh0TW9udGhEaXNhYmxlZCgpXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTkuNzA3MSA4LjcwNzExQzIwLjA5NzYgOC4zMTY1OCAyMC4wOTc2IDcuNjgzNDIgMTkuNzA3MSA3LjI5Mjg5TDEzLjM0MzEgMC45Mjg5MzNDMTIuOTUyNiAwLjUzODQwOSAxMi4zMTk1IDAuNTM4NDA5IDExLjkyODkgMC45Mjg5MzNDMTEuNTM4NCAxLjMxOTQ2IDExLjUzODQgMS45NTI2MiAxMS45Mjg5IDIuMzQzMTVMMTcuNTg1OCA4TDExLjkyODkgMTMuNjU2OUMxMS41Mzg0IDE0LjA0NzQgMTEuNTM4NCAxNC42ODA1IDExLjkyODkgMTUuMDcxMUMxMi4zMTk1IDE1LjQ2MTYgMTIuOTUyNiAxNS40NjE2IDEzLjM0MzEgMTUuMDcxMUwxOS43MDcxIDguNzA3MTFaTS04Ljc0MjI4ZS0wOCA5TDE5IDlMMTkgN0w4Ljc0MjI4ZS0wOCA3TC04Ljc0MjI4ZS0wOCA5WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fd2Vla2RheXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fd2Vla2RheVwiICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzKClcIiA+XG4gICAgICAgICAgICA8c3BhbiA+e3sgd2Vla0RheS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19kYXlzXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19kYXlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2VsZWN0ZWQtZGF5JzogZGF5LmlzU2VsZWN0ZWREYXkgJiYgaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCksXG4gICAgICAgICAgICAgICdkaXNhYmxlZC1kYXknOiBkYXkuaXNEaXNhYmxlZERheSxcbiAgICAgICAgICAgICAgJ3NlbGVjdGVkLXN0YXJ0LWRheSc6IGRheS5pc1NlbGVjdGVkU3RhcnREYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnc2VsZWN0ZWQtZW5kLWRheSc6IGRheS5pc1NlbGVjdGVkRW5kRGF5ICYmICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2luLXJhbmdlLWRheSc6IGRheS5pblJhbmdlRGF5ICYmICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2lzLXZhbGlkLWRhdGUnOiBkYXkuZGF0ZSA+IDAgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpICYmICEoZGF5LmlzU2VsZWN0ZWRTdGFydERheSAmJiBkYXkuaXNTZWxlY3RlZEVuZERheSlcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBuZXh0TW9udGhEYXRlcygpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXkoJ1JJR0hUJyxkYXkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY2lyY3VsYXItZG90JzogZGF5LmlzSG9saWRheVxuICAgICAgICAgIH1cIj48L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF5LmRhdGUgPiAwXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnY3VycmVudC1kYXknOiBkYXkuaXNDdXJyZW50RGF5ICYmIChjdXJyZW50TW9udGhOdW1iZXIoKSA9PT0gdG9kYXlNb250aE51bWJlcigpKSxcbiAgICAgICAgICAgICAgJ2hvbGlkYXktdGV4dCc6IGRheS5pc0hvbGlkYXkgfHwgZGF5LmlzV2Vla09mZlxuICAgICAgICAgICAgfVwiID5cbiAgICAgICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ3ZWVrT2Zmc19ob2xpZGF5c19jb250YWluZXJcIj5cbiAgICA8c3Bhbj5XZWVrbHkgb2ZmczogPHNwYW4gKm5nRm9yPVwibGV0IHdlZWtPZmYgb2YgZGF0YSgpLndlZWtPZmZzOyBsZXQgbGFzdCA9IGxhc3RcIj57e3dlZWtPZmZ9fSA8c3BhbiAqbmdJZj1cIiFsYXN0XCI+LDwvc3Bhbj48L3NwYW4+PC9zcGFuPlxuICAgIDxzcGFuID5Ib2xpZGF5cyA8c3BhbiBjbGFzcz1cImNpcmN1bGFyLWRvdFwiIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogJ2lubGluZS1ibG9jaycsICdtYXJnaW4tbGVmdCc6ICcxMHB4JyB9XCI+PC9zcGFuPjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXJfX2Zvb3RlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwiaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKClcIj5cbiAgICAgIDxzcGFuPnt7bG9jYWxTZWxlY3RlZERhdGVzKCkubGVuZ3RofX08L3NwYW4+IGRheShzKSBzZWxlY3RlZFxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIiFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKVwiPjxzcGFuPnt7ZGF0ZVJhbmdlTGVuZ3RoKCkgPiAwID8gZGF0ZVJhbmdlTGVuZ3RoKCkgOiAwIH19IDwvc3Bhbj5kYXkocykgc2VsZWN0ZWQ8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlcl9hY3Rpb25fYnRuXCI+XG4gICAgICA8YnV0dG9uIG1pcy1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cIm5vbmVcIiAoY2xpY2spPVwiY2FuY2VsRGF0ZVBpY2tlcigpXCIgPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpXCIgbWlzLWJ1dHRvbiBzaXplPVwibWRcIiB0eXBlPVwicHJpbWFyeVwiIChjbGljayk9XCJhcHBseURhdGVzKClcIiBbZGlzYWJsZWRdPVwiIWlzRGF0ZXNWYWxpZCgpXCIgPkFwcGx5PC9idXR0b24+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpXCIgbWlzLWJ1dHRvbiBzaXplPVwibWRcIiB0eXBlPVwicHJpbWFyeVwiIChjbGljayk9XCJhcHBseURhdGVzUmFuZ2UoKVwiIFtkaXNhYmxlZF09XCIhaXNEYXRlc1ZhbGlkKCkgfHwgKGRhdGVSYW5nZUxlbmd0aCgpID09PSAwKVwiID5BcHBseTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2luZ2xlLWRhdGVwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydkaXNwbGF5JzogIXNpbmdsZURhdGVQaWNrZXJTZWxlY3RlZCgpID8gJ25vbmUnIDogJ2Jsb2NrJ31cIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtaXNUekRwXG4gICAgICAgIG1pc0lucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgY2xhc3M9XCJkYXRlLWlucHV0XCJcbiAgICAgICAgW2RwQ29uZmlnXT1cImRhdGEoKS5kcENvbmZpZ1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25TaW5nbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNpbmdsZURhdGVTZWxlY3RlZFZhbHVlKClcIlxuICAgICAgICBwb3NpdGlvblg9XCJjZW50ZXJcIlxuICAgICAgICBwb3NpdGlvblk9XCJ0b3BcIlxuICAgICAgICBvZmZzZXRYID0gNzFcbiAgICAgICAgb2Zmc2V0WSA9IC0xXG4gICAgICAgIFt2YWx1ZV09XCJzaW5nbGVEYXRlU2VsZWN0ZWRWYWx1ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVCb3hTaGFkb3ddPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlT3ZlckxheV09XCJ0cnVlXCJcbiAgICAgICAgW29wZW5FbGVtZW50XT1cIm9wZW5FbGVtZW50KClcIlxuICAgICAgICAjc2luZ2xlRGF0ZVBpY2tlckVsZW1lbnRcbiAgICAgIC8+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuXG4iXX0=
|
|
631
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc2RwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9zcGVjaWZpY2RhdGVwaWNrZXIvdHotc2RwLWNvbnRhaW5lci90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zZHAtY29udGFpbmVyL3R6LXNkcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEtBQW9CLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxTQUFTLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNWL0MsK0JBTUM7SUFIQyw0TkFBaUIsOEJBQW9CLEtBQUM7SUFJdEMscUNBQXFKO0lBQWxGLHdN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aUdBQTJFLGlDQUFxRjtZQVFsTCxlQUFzQjtZQUF0QiwrQ0FBc0I7WUFNRSxjQUFpRTtZQUFqRSxtR0FBaUU7WUFZcEcsZUFBMkQ7WUFBM0Qsb0ZBQTJEOztZQVN0RCxlQUErQztZQUEvQyxpRkFBK0M7WUFLZ0IsZUFBYTtZQUFiLHdDQUFhO1lBc0IvRCxlQUFzQjtZQUF0QixpREFBc0I7WUFlbkMsZUFBeUM7WUFBekMsMkVBQXlDO1lBUzlDLGNBQXVEO1lBQXZELGdGQUF1RDs7WUFZYSxlQUFhO1lBQWIsd0NBQWE7WUFtQi9ELGVBQW1CO1lBQW5CLDhDQUFtQjtZQWFTLGNBQXVKOztZQUM5SixlQUFvQjtZQUFwQiw2Q0FBb0I7WUFDdEIsZUFBOEQ7WUFBOUQscURBQThEO1lBR2xHLGVBQWdDO1lBQWhDLHFEQUFnQztZQUdoQyxjQUFpQztZQUFqQyxzREFBaUM7WUFHN0IsZUFBZ0M7WUFBaEMscURBQWdDO1lBQ2hDLGNBQWlDO1lBQWpDLHNEQUFpQztZQUlMLGNBQXVFO1lBQXZFLHlHQUF1RTtZQU8xRyxjQUE0QjtZQVc1QixBQURBLEFBREEsQUFEQSxBQUxBLEFBSEEsOENBQTRCLCtDQUdjLHdDQUtQLDBCQUNWLHdCQUNGLGtDQUNNOzs7aUZEekl4Qix1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxZQUFZOztzQkF5RlQsTUFBTTt1QkFBQyxjQUFjO3lFQUZtRCx1QkFBdUI7a0JBQTNHLFNBQVM7bUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTs7a0ZBbkZ4RSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDT05UQUlORVJfREFUQSwgREFURV9GT1JNQVQgfSBmcm9tIFwiLi4vZGF0ZXJhbmdlcGlja2VyLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgSUN1cnJlbnRNb250aCwgSUN1cnJlbnRNb250aERhdGVzLCBJRGF0ZVBpY2tlckRhdGEsIElXZWVrRGF5LCBJU1NlbGVjdGVkRGF0ZXNDb25maWcsIElSU2VsZWN0ZWREYXRlc0NvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvc2RwLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgZ2V0TW9udGggfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3RvYXN0XCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFR6RGF0ZXBpY2tlckRpcmVjdGl2ZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL2RhdGVwaWNrZXJfdjJcIjtcbmltcG9ydCBkYXlqcywgeyBEYXlqcywgdHogfSBmcm9tICdkYXlqcyc7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5pbXBvcnQgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XG5pbXBvcnQgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xuaW1wb3J0IGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcblxuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5kYXlqcy5leHRlbmQodXRjKTtcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQWZ0ZXIpO1xuZGF5anMuZXh0ZW5kKGlzU2FtZU9yQmVmb3JlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10ei1zZHBcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90ei1zZHAtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFR6RHJwQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSBkYXRhID0gc2lnbmFsPElEYXRlUGlja2VyRGF0YT4odGhpcy5pbmplY3RlZERhdGEpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF5anNJbnN0YW5jZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmRhdGEoKS5kcENvbmZpZztcbiAgICBpZiAoY29uZmlnPy50aW1lem9uZSkge1xuICAgICAgLy8gUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIHRpbWV6b25lLWF3YXJlIGRheWpzIGluc3RhbmNlXG4gICAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiBkYXlqcyguLi5hcmdzKS50eihjb25maWcudGltZXpvbmUpO1xuICAgIH1cbiAgICAvLyBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgc3RhbmRhcmQgZGF5anMgaW5zdGFuY2VcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiBkYXlqcyguLi5hcmdzKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByYXdXZWVrRGF5czogc3RyaW5nW10gPSBbXCJTVU5cIiwgXCJNT05cIiwgXCJUVUVcIiwgXCJXRURcIiwgXCJUSFVcIiwgXCJGUklcIiwgXCJTQVRcIl07XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU2VsZWN0ZWREYXRlcyA9IHNpZ25hbDxJU1NlbGVjdGVkRGF0ZXNDb25maWdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UgPSBzaWduYWw8SVJTZWxlY3RlZERhdGVzQ29uZmlnPih7c3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzRGF0ZXNWYWxpZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSkge1xuICAgICAgLy8gVmFsaWQgaWYgYXQgbGVhc3Qgb25lIHNwZWNpZmljIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIC8vIFZhbGlkIGlmIGJvdGggc3RhcnQgYW5kIGVuZCBkYXRlIG9mIHRoZSByYW5nZSBhcmUgc2V0XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk7XG4gICAgcmV0dXJuICEhKHJhbmdlPy5zdGFydERhdGUgJiYgcmFuZ2U/LmVuZERhdGUpO1xuICB9KTtcblxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzaW5nbGVEYXRlUGlja2VyU2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbkVsZW1lbnQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkVmFsdWUgPSBzaWduYWwoJycpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uU3RhcnRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJ1NwZWNpZmljIERhdGUocyknKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGVQaWNrZXJWYWx1ZSA9IHNpZ25hbDxzdHJpbmdbXT4oWydTcGVjaWZpYyBEYXRlKHMpJywnRGF0ZSBSYW5nZSddKTtcbiAgXG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50TW9udGhOdW1iZXIgPSBzaWduYWwodGhpcy5pbmplY3RlZERhdGEuZHBDb25maWc/LnRpbWV6b25lID8gZGF5anMoKS50eih0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZy50aW1lem9uZSkubW9udGgoKSA6IGRheWpzKCkubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50WWVhck51bWJlciA9IHNpZ25hbCh0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZz8udGltZXpvbmUgPyBkYXlqcygpLnR6KHRoaXMuaW5qZWN0ZWREYXRhLmRwQ29uZmlnLnRpbWV6b25lKS55ZWFyKCkgOiBkYXlqcygpLnllYXIoKSk7XG4gIHB1YmxpYyByZWFkb25seSBuZXh0TW9udGhOdW1iZXIgPSBzaWduYWwodGhpcy5pbmplY3RlZERhdGEuZHBDb25maWc/LnRpbWV6b25lID8gZGF5anMoKS50eih0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZy50aW1lem9uZSkuYWRkKDEsIFwibW9udGhcIikubW9udGgoKSA6IGRheWpzKCkuYWRkKDEsIFwibW9udGhcIikubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBuZXh0WWVhck51bWJlciA9IHNpZ25hbCh0aGlzLmluamVjdGVkRGF0YS5kcENvbmZpZz8udGltZXpvbmUgPyBkYXlqcygpLnR6KHRoaXMuaW5qZWN0ZWREYXRhLmRwQ29uZmlnLnRpbWV6b25lKS5hZGQoMSwgXCJtb250aFwiKS55ZWFyKCkgOiBkYXlqcygpLmFkZCgxLCBcIm1vbnRoXCIpLnllYXIoKSk7XG4gIFxuXG4gIHB1YmxpYyByZWFkb25seSB3ZWVrRGF5cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5yYXdXZWVrRGF5cy5tYXAoKGRheSwgaW5kZXgpID0+ICh7XG4gICAgICBsYWJlbDogYCR7ZGF5WzBdfSR7ZGF5LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgIGlzQ3VycmVudERheTogdGhpcy5kYXlqc0luc3RhbmNlKCkoKS5kYXkoKSA9PT0gaW5kZXhcbiAgICB9KSk7XG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudE1vbnRoID0gY29tcHV0ZWQoKCkgPT4gZ2V0TW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmV4dE1vbnRoID0gY29tcHV0ZWQoKCkgPT4gZ2V0TW9udGgodGhpcy5uZXh0TW9udGhOdW1iZXIoKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgdG9kYXlNb250aE51bWJlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkubW9udGgoKSk7XG4gIHB1YmxpYyByZWFkb25seSBkYXRlUmFuZ2VMZW5ndGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk7XG4gICAgaWYgKHJhbmdlPy5zdGFydERhdGUgJiYgcmFuZ2U/LmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5kYXlqc0luc3RhbmNlKCkocmFuZ2Uuc3RhcnREYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgY29uc3QgZW5kID0gdGhpcy5kYXlqc0luc3RhbmNlKCkocmFuZ2UuZW5kRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgIGlmIChzdGFydC5pc1ZhbGlkKCkgJiYgZW5kLmlzVmFsaWQoKSkge1xuICAgICAgICByZXR1cm4gZW5kLmRpZmYoc3RhcnQsICdkYXknKSArIDE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9KTtcbiAgcHVibGljIHJlYWRvbmx5IGlzUHJldmlvdXNNb250aERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkpO1xuICAgIGNvbnN0IG1pbkRhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1pbkRhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5taW5EYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICByZXR1cm4gbWluRGF0ZS5pc1ZhbGlkKCkgJiYgbWluRGF0ZS5pc1NhbWVPckFmdGVyKGN1cnJlbnRJbnN0YW5jZSwgXCJtb250aFwiKTtcbiAgfSk7XG4gIHB1YmxpYyByZWFkb25seSBpc05leHRNb250aERpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcih0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpLm1vbnRoKHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkpO1xuICAgIGNvbnN0IG1heERhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1heERhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICByZXR1cm4gbWF4RGF0ZS5pc1ZhbGlkKCkgJiYgbWF4RGF0ZS5pc1NhbWVPckJlZm9yZShjdXJyZW50SW5zdGFuY2UsIFwibW9udGhcIik7XG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudE1vbnRoRGF0ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVEYXRlcyh0aGlzLmN1cnJlbnRNb250aE51bWJlcigpLCB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkpO1xuICB9KTtcbiAgcHVibGljIHJlYWRvbmx5IG5leHRNb250aERhdGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRGF0ZXModGhpcy5uZXh0TW9udGhOdW1iZXIoKSwgdGhpcy5uZXh0WWVhck51bWJlcigpKTtcbiAgfSk7XG5cbiAgQFZpZXdDaGlsZCgnc2luZ2xlRGF0ZVBpY2tlckVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVHpEYXRlcGlja2VyRGlyZWN0aXZlIH0pIHNpbmdsZURhdGVQaWNrZXJFbGVtZW50ITogVHpEYXRlcGlja2VyRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEFJTkVSX0RBVEEpIHByaXZhdGUgaW5qZWN0ZWREYXRhOiBJRGF0ZVBpY2tlckRhdGEsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGVzLnNldCh0aGlzLmRhdGEoKS5kYXRlcyk7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZS5zZXQodGhpcy5pbmplY3RlZERhdGEuZGF0ZXNSYW5nZSB8fCB7c3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsfSk7XG4gICAgdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQuc2V0KHRoaXMuZGF0YSgpLmlzU1BpY2tlclNlbGVjdGVkKTtcbiAgICB0aGlzLmRhdGVSYW5nZVNlbGVjdGVkLnNldCghdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSk7XG4gICAgdGhpcy5zaW5nbGVEYXRlUGlja2VyU2VsZWN0ZWQuc2V0KHRoaXMuZGF0YSgpLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IHNlbGVjdGVkU3RhcnREYXRlOiBEYXlqcztcbiAgICAgIGlmICghdGhpcy5pc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSkge1xuICAgICAgICBzZWxlY3RlZFN0YXJ0RGF0ZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRTdGFydERhdGUgPSB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpPy5bMF0/LnNlbGVjdGVkRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWxlY3RlZFN0YXJ0RGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50WWVhck51bWJlci5zZXQoc2VsZWN0ZWRTdGFydERhdGUueWVhcigpKTtcbiAgICAgICAgdGhpcy5uZXh0WWVhck51bWJlci5zZXQoc2VsZWN0ZWRTdGFydERhdGUuYWRkKDEsIFwibW9udGhcIikueWVhcigpKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhOdW1iZXIuc2V0KHNlbGVjdGVkU3RhcnREYXRlLmdldChcIm1vbnRoXCIpKTtcbiAgICAgICAgdGhpcy5uZXh0TW9udGhOdW1iZXIuc2V0KHNlbGVjdGVkU3RhcnREYXRlLmFkZCgxLCBcIm1vbnRoXCIpLm1vbnRoKCkpO1xuICAgICAgfVxuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gICAgXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRhdGEoKS5pc1NpbmdsZURhdGVQaWNrZXJFbmFibGUpIHtcbiAgICAgICAgY29uc3QgcGlja2VyVmFsdWUgPSAnU2luZ2xlIERhdGUnO1xuICAgICAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlclZhbHVlKCkuaW5jbHVkZXMocGlja2VyVmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5kYXRlUGlja2VyVmFsdWUudXBkYXRlKGN1cnJlbnRWYWx1ZSA9PiBbcGlja2VyVmFsdWUsIC4uLmN1cnJlbnRWYWx1ZV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUocGlja2VyVmFsdWUpO1xuICAgICAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXJTZWxlY3RlZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLnNpbmdsZURhdGVTZWxlY3RlZFZhbHVlLnNldCh0aGlzLmRhdGEoKS5kYXRlc1swXT8uc2VsZWN0ZWREYXRlIHx8ICcnKTtcbiAgICAgIH1cbiAgICB9LCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRhKCk/LmRwQ29uZmlnPy5mb3JtYXQpIHtcbiAgICAgIHRoaXMuZGF0YSgpLmRwQ29uZmlnID0ge1xuICAgICAgICAuLi50aGlzLmRhdGEoKS5kcENvbmZpZyxcbiAgICAgICAgZm9ybWF0OiBEQVRFX0ZPUk1BVFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRGF0ZXMobW9udGg6IG51bWJlciwgY3VycmVudFllYXJOdW1iZXI6IG51bWJlcik6IElDdXJyZW50TW9udGhEYXRlc1tdIHtcbiAgICBjb25zdCBkYXRlczogSUN1cnJlbnRNb250aERhdGVzW10gPSBbXTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRheXNJbk1vbnRoKCk7XG4gICAgXG4gICAgZm9yIChsZXQgY3VycmVudERhdGUgPSAxOyBjdXJyZW50RGF0ZSA8PSBkYXlzSW5Nb250aDsgY3VycmVudERhdGUrKykge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKCkueWVhcihjdXJyZW50WWVhck51bWJlcikubW9udGgobW9udGgpLmRhdGUoY3VycmVudERhdGUpO1xuICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCk7XG5cbiAgICAgIGxldCBpc0Rpc2FibGVkRGF5ID0gdGhpcy5kYXRhKCkuZGF0ZXNEaXNhYmxlZC5zb21lKGQgPT4gZCA9PT0gZGF0ZVN0cmluZyk7XG4gICAgICBjb25zdCBtaW5EYXRlID0gISF0aGlzLmRhdGEoKS5kcENvbmZpZy5taW5EYXRlID8gdGhpcy5kYXlqc0luc3RhbmNlKCkodGhpcy5kYXRhKCkuZHBDb25maWcubWluRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSA6IGRheWpzKCdpbnZhbGlkJyk7XG4gICAgICBpZiAoIWlzRGlzYWJsZWREYXkgJiYgbWluRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgaXNEaXNhYmxlZERheSA9IG1pbkRhdGUuaXNBZnRlcihkYXRlLCBcImRheVwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heERhdGUgPSAhIXRoaXMuZGF0YSgpLmRwQ29uZmlnLm1heERhdGUgPyB0aGlzLmRheWpzSW5zdGFuY2UoKSh0aGlzLmRhdGEoKS5kcENvbmZpZy5tYXhEYXRlLCB0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpIDogZGF5anMoJ2ludmFsaWQnKTtcbiAgICAgIGlmICghaXNEaXNhYmxlZERheSAmJiBtYXhEYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICBpc0Rpc2FibGVkRGF5ID0gbWF4RGF0ZS5pc0JlZm9yZShkYXRlLCBcImRheVwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNDdXJyZW50RGF5ID0gZGF0ZS5pc1NhbWUodGhpcy5kYXlqc0luc3RhbmNlKCkoKSwgJ2RheScpO1xuICAgICAgbGV0IGlzU2VsZWN0ZWREYXkgPSB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpLnNvbWUoZCA9PiBkLnNlbGVjdGVkRGF0ZSA9PT0gZGF0ZVN0cmluZyk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkU3RhcnREYXkgPSAhIXRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlICYmIGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCkgPT09IHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uc3RhcnREYXRlO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZEVuZERheSA9ICEhdGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZSgpPy5lbmREYXRlICYmIGRhdGUuZm9ybWF0KHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCkgPT09IHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uZW5kRGF0ZTtcbiAgICAgIGNvbnN0IGluUmFuZ2VEYXkgPSAhISh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk/LnN0YXJ0RGF0ZSAmJiB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlc1JhbmdlKCk/LmVuZERhdGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5pc0JldHdlZW4odGhpcy5kYXlqc0luc3RhbmNlKCkodGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZSgpPy5zdGFydERhdGUsIHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCksIHRoaXMuZGF5anNJbnN0YW5jZSgpKHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UoKT8uZW5kRGF0ZSwgdGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgJ2RheScsICcoKScpO1xuXG4gICAgICBjb25zdCBpc0hvbGlkYXkgPSB0aGlzLmRhdGEoKS5ob2xpZGF5cy5pbmNsdWRlcyhkYXRlU3RyaW5nKTtcbiAgICAgIGNvbnN0IGlzV2Vla09mZiA9IHRoaXMuZGF0YSgpLndlZWtPZmZzLmluY2x1ZGVzKGRhdGUuZm9ybWF0KCdkZGQnKSk7XG5cbiAgICAgIGRhdGVzLnB1c2goe1xuICAgICAgICBkYXRlOiBjdXJyZW50RGF0ZSxcbiAgICAgICAgd2Vla0RheTogZGF0ZS5kYXkoKSxcbiAgICAgICAgaXNTZWxlY3RlZERheSxcbiAgICAgICAgaXNDdXJyZW50RGF5LFxuICAgICAgICBpc1NlbGVjdGVkU3RhcnREYXksXG4gICAgICAgIGlzU2VsZWN0ZWRFbmREYXksXG4gICAgICAgIGluUmFuZ2VEYXksXG4gICAgICAgIGlzSG9saWRheSxcbiAgICAgICAgaXNXZWVrT2ZmLFxuICAgICAgICB0b2FzdE1lc3NhZ2U6IHRoaXMuZGF0YSgpLm1lc3NhZ2VzLmZpbmQocSA9PiBkYXRlLmZvcm1hdCh0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpID09PSBxLmRhdGUpPy5tZXNzYWdlIHx8IFwiXCIsXG4gICAgICAgIGlzRGlzYWJsZWREYXlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBkYXRlc1swXT8ud2Vla0RheSB8fCAwOyBpID4gMDsgaS0tKSB7XG4gICAgICBkYXRlcy51bnNoaWZ0KHsgZGF0ZTogMCwgd2Vla0RheTogaSAtIDEgfSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gIG5hdmlnYXRlTW9udGgoZGlyZWN0aW9uOiBcIk5FWFRcIiB8IFwiUFJFVklPVVNcIik6IHZvaWQge1xuICAgIGxldCB0aGlzTW9udGg6IERheWpzID0gdGhpcy5kYXlqc0luc3RhbmNlKCkoKS55ZWFyKHRoaXMuY3VycmVudFllYXJOdW1iZXIoKSkubW9udGgodGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSk7XG4gICAgdGhpc01vbnRoID0gZGlyZWN0aW9uID09PSBcIk5FWFRcIiA/IHRoaXNNb250aC5hZGQoMSwgXCJtb250aFwiKSA6IHRoaXNNb250aC5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoTnVtYmVyLnNldCh0aGlzTW9udGgubW9udGgoKSk7XG4gICAgdGhpcy5jdXJyZW50WWVhck51bWJlci5zZXQodGhpc01vbnRoLnllYXIoKSk7XG4gICAgdGhpcy5uZXh0TW9udGhOdW1iZXIuc2V0KHRoaXNNb250aC5jbG9uZSgpLmFkZCgxLCBcIm1vbnRoXCIpLm1vbnRoKCkpO1xuICAgIHRoaXMubmV4dFllYXJOdW1iZXIuc2V0KHRoaXNNb250aC5jbG9uZSgpLmFkZCgxLCBcIm1vbnRoXCIpLnllYXIoKSk7XG4gIH1cblxuICBzZWxlY3REYXkoZnJvbTogXCJMRUZUXCIgfCBcIlJJR0hUXCIsIGRheTogSUN1cnJlbnRNb250aERhdGVzKTogdm9pZCB7XG4gICAgaWYgKGRheS5kYXRlIDw9IDAgfHwgZGF5LmlzRGlzYWJsZWREYXkpIHtcbiAgICAgIGlmIChkYXkudG9hc3RNZXNzYWdlKSB0aGlzLnRvYXN0LmRpc3BsYXlNc2coZGF5LnRvYXN0TWVzc2FnZSwgNDAwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLmlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcy51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmRheWpzSW5zdGFuY2UoKSgpXG4gICAgICAgICAgLnllYXIoZnJvbSA9PT0gXCJMRUZUXCIgPyB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkgOiB0aGlzLm5leHRZZWFyTnVtYmVyKCkpXG4gICAgICAgICAgLm1vbnRoKGZyb20gPT09IFwiTEVGVFwiID8gdGhpcy5jdXJyZW50TW9udGhOdW1iZXIoKSA6IHRoaXMubmV4dE1vbnRoTnVtYmVyKCkpXG4gICAgICAgICAgLmRhdGUoZGF5LmRhdGUpLmZvcm1hdCh0aGlzLmRhdGEoKS5kcENvbmZpZy5mb3JtYXQpO1xuICAgICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gY3VycmVudC5maW5kSW5kZXgoZCA9PiBkLnNlbGVjdGVkRGF0ZSA9PT0gY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgIFxuICAgICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudC5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gZXhpc3RpbmdJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWRheS5pc0Rpc2FibGVkRGF5KSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5jdXJyZW50LCB7IHNlbGVjdGVkRGF0ZTogY3VycmVudFNlbGVjdGlvbiB9XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXlqc0RheSA9IHRoaXMuZGF5anNJbnN0YW5jZSgpKClcbiAgICAgICAgLnllYXIoZnJvbSA9PT0gXCJMRUZUXCIgPyB0aGlzLmN1cnJlbnRZZWFyTnVtYmVyKCkgOiB0aGlzLm5leHRZZWFyTnVtYmVyKCkpXG4gICAgICAgIC5tb250aChmcm9tID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoTnVtYmVyKCkgOiB0aGlzLm5leHRNb250aE51bWJlcigpKVxuICAgICAgICAuZGF0ZShkYXkuZGF0ZSk7XG4gICAgICBcbiAgICAgIHRoaXMubG9jYWxTZWxlY3RlZERhdGVzUmFuZ2UudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25TdGFydGVkKCkpIHtcbiAgICAgICAgICBpZiAoZGF5anNEYXkuaXNCZWZvcmUodGhpcy5kYXlqc0luc3RhbmNlKCkoY3VycmVudC5zdGFydERhdGUsIHRoaXMuZGF0YSgpLmRwQ29uZmlnLmZvcm1hdCksIFwiZGF5XCIpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0ZWQuc2V0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgZW5kRGF0ZTogbnVsbCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0ZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5jdXJyZW50LCBlbmREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU3RhcnRlZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgcmV0dXJuIHsgc3RhcnREYXRlOiBkYXlqc0RheS5mb3JtYXQodGhpcy5kYXRhKCkuZHBDb25maWcuZm9ybWF0KSwgZW5kRGF0ZTogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zY2hlZHVsZUZvY3VzQ2VsbCh0aGlzLmdldERheUNlbGxJZChkYXksIGZyb20pKTtcbiAgfVxuXG4gIGFwcGx5RGF0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhKCkuZGF0ZUNoYW5nZSh0aGlzLmxvY2FsU2VsZWN0ZWREYXRlcygpKTtcbiAgfVxuXG4gIGFwcGx5RGF0ZXNSYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEoKS5kYXRlQ2hhbmdlUmFuZ2UodGhpcy5sb2NhbFNlbGVjdGVkRGF0ZXNSYW5nZSgpKTtcbiAgfVxuXG4gIG9uU2luZ2xlRGF0ZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRhOiBJU1NlbGVjdGVkRGF0ZXNDb25maWcgPSB7IHNlbGVjdGVkRGF0ZTogZXZlbnQgfTtcbiAgICB0aGlzLnNpbmdsZURhdGVTZWxlY3RlZFZhbHVlLnNldChldmVudCk7XG4gICAgdGhpcy5kYXRhKCkuZGF0ZUNoYW5nZShbc2VsZWN0ZWREYXRhXSk7XG4gIH1cblxuICBjYW5jZWxEYXRlUGlja2VyKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSgpLmNsb3NlKCk7XG4gIH1cblxuICBjaGFuZ2VQaWNrZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2luZ2xlRGF0ZVBpY2tlclNlbGVjdGVkLnNldChldmVudCA9PT0gXCJTaW5nbGUgRGF0ZVwiKTtcbiAgICB0aGlzLm9wZW5FbGVtZW50LnNldChldmVudCA9PT0gXCJTaW5nbGUgRGF0ZVwiKTtcbiAgICB0aGlzLmRhdGVSYW5nZVNlbGVjdGVkLnNldChldmVudCA9PT0gXCJEYXRlIFJhbmdlXCIpO1xuICAgIHRoaXMuaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkLnNldChldmVudCA9PT0gXCJTcGVjaWZpYyBEYXRlKHMpXCIpO1xuICAgIFxuICAgIC8vIEFzIGRpc2N1c3NlZCwgc3RhdGUgaXMgcmV0YWluZWQgd2hlbiBzd2l0Y2hpbmcgbW9kZXMuXG4gICAgLy8gVGhlIHZpZXcgd2lsbCBzaW1wbHkgdXBkYXRlIHRvIHJlZmxlY3QgdGhlIGFjdGl2ZSBtb2RlLlxuICAgIFxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuICBcblxuICBnZXREYXlUYWJJbmRleChkYXk6IElDdXJyZW50TW9udGhEYXRlcywgcGFuZWw6IFwiTEVGVFwiIHwgXCJSSUdIVFwiKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXRlcyA9IHBhbmVsID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoRGF0ZXMoKSA6IHRoaXMubmV4dE1vbnRoRGF0ZXMoKTtcbiAgICBpZiAoIWRhdGVzPy5sZW5ndGgpIHJldHVybiAtMTtcbiAgICBjb25zdCBmaXJzdEluZGV4ID0gZGF0ZXMuZmluZEluZGV4KChkKSA9PiBkLmRhdGUgPiAwICYmICFkLmlzRGlzYWJsZWREYXkpO1xuICAgIGlmIChmaXJzdEluZGV4IDwgMCkgcmV0dXJuIC0xO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGRhdGVzLmZpbmRJbmRleCgoZCkgPT4gZCA9PT0gZGF5KTtcbiAgICByZXR1cm4gY3VycmVudEluZGV4ID09PSBmaXJzdEluZGV4ID8gMCA6IC0xO1xuICB9XG5cbiAgZ2V0RGF5Q2VsbElkKGRheTogSUN1cnJlbnRNb250aERhdGVzLCBwYW5lbDogXCJMRUZUXCIgfCBcIlJJR0hUXCIpOiBzdHJpbmcge1xuICAgIGlmIChkYXk/LmRhdGUgPD0gMCkgcmV0dXJuIFwiXCI7XG4gICAgY29uc3QgbW9udGggPSBwYW5lbCA9PT0gXCJMRUZUXCIgPyB0aGlzLmN1cnJlbnRNb250aE51bWJlcigpIDogdGhpcy5uZXh0TW9udGhOdW1iZXIoKTtcbiAgICBjb25zdCB5ZWFyID0gcGFuZWwgPT09IFwiTEVGVFwiID8gdGhpcy5jdXJyZW50WWVhck51bWJlcigpIDogdGhpcy5uZXh0WWVhck51bWJlcigpO1xuICAgIHJldHVybiBgJHtwYW5lbCA9PT0gXCJMRUZUXCIgPyBcIkxcIiA6IFwiUlwifS0ke21vbnRofS0ke3llYXJ9LSR7ZGF5LmRhdGV9YDtcbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVGb2N1c0NlbGwoY2VsbElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWNlbGxJZCkgcmV0dXJuO1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGhvc3Q/LnF1ZXJ5U2VsZWN0b3I/LjxIVE1MRWxlbWVudD4oYFtkYXRhLXNkcC1jZWxsPVwiJHtjZWxsSWR9XCJdYCk7XG4gICAgICBpZiAoZWw/LmZvY3VzKSBlbC5mb2N1cygpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUk9XX1NJWkUgPSA3O1xuXG4gIGdldERheUluZGV4SW5Nb250aChkYXk6IElDdXJyZW50TW9udGhEYXRlcywgcGFuZWw6IFwiTEVGVFwiIHwgXCJSSUdIVFwiKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXRlcyA9IHBhbmVsID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoRGF0ZXMoKSA6IHRoaXMubmV4dE1vbnRoRGF0ZXMoKTtcbiAgICBjb25zdCBpZHggPSBkYXRlcy5maW5kSW5kZXgoKGQpID0+IGQuZGF0ZSA9PT0gZGF5LmRhdGUpO1xuICAgIHJldHVybiBpZHggPj0gMCA/IGlkeCA6IC0xO1xuICB9XG5cbiAgZ2V0TmV4dERheUluZGV4KGN1cnJlbnRJbmRleDogbnVtYmVyLCBkaXJlY3Rpb246IFwiQXJyb3dMZWZ0XCIgfCBcIkFycm93UmlnaHRcIiB8IFwiQXJyb3dVcFwiIHwgXCJBcnJvd0Rvd25cIiwgcGFuZWw6IFwiTEVGVFwiIHwgXCJSSUdIVFwiKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXRlcyA9IHBhbmVsID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoRGF0ZXMoKSA6IHRoaXMubmV4dE1vbnRoRGF0ZXMoKTtcbiAgICBjb25zdCBsZW4gPSBkYXRlcy5sZW5ndGg7XG4gICAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIC0xO1xuICAgIGxldCBkZWx0YSA9IDA7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gXCJBcnJvd1JpZ2h0XCIpIGRlbHRhID0gMTtcbiAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IFwiQXJyb3dMZWZ0XCIpIGRlbHRhID0gLTE7XG4gICAgZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcIkFycm93VXBcIikgZGVsdGEgPSAtVHpEcnBDb250YWluZXJDb21wb25lbnQuUk9XX1NJWkU7XG4gICAgZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcIkFycm93RG93blwiKSBkZWx0YSA9IFR6RHJwQ29udGFpbmVyQ29tcG9uZW50LlJPV19TSVpFO1xuICAgIGxldCBuZXh0ID0gY3VycmVudEluZGV4ICsgZGVsdGE7XG4gICAgaWYgKG5leHQgPCAwIHx8IG5leHQgPj0gbGVuKSByZXR1cm4gLTE7XG4gICAgaWYgKGRhdGVzW25leHRdLmRhdGUgPiAwICYmICFkYXRlc1tuZXh0XS5pc0Rpc2FibGVkRGF5KSByZXR1cm4gbmV4dDtcbiAgICB3aGlsZSAobmV4dCA+PSAwICYmIG5leHQgPCBsZW4gJiYgKGRhdGVzW25leHRdLmRhdGUgPT09IDAgfHwgZGF0ZXNbbmV4dF0uaXNEaXNhYmxlZERheSkpIHtcbiAgICAgIG5leHQgKz0gZGVsdGE7XG4gICAgfVxuICAgIHJldHVybiBuZXh0ID49IDAgJiYgbmV4dCA8IGxlbiAmJiBkYXRlc1tuZXh0XS5kYXRlID4gMCAmJiAhZGF0ZXNbbmV4dF0uaXNEaXNhYmxlZERheSA/IG5leHQgOiAtMTtcbiAgfVxuXG4gIGhhbmRsZURheUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHBhbmVsOiBcIkxFRlRcIiB8IFwiUklHSFRcIiwgZGF5OiBJQ3VycmVudE1vbnRoRGF0ZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnJvd0tleXMgPSBbXCJBcnJvd0xlZnRcIiwgXCJBcnJvd1JpZ2h0XCIsIFwiQXJyb3dVcFwiLCBcIkFycm93RG93blwiXTtcbiAgICBpZiAoYXJyb3dLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmdldERheUluZGV4SW5Nb250aChkYXksIHBhbmVsKTtcbiAgICAgIGlmIChjdXJyZW50SW5kZXggPCAwKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmdldE5leHREYXlJbmRleChjdXJyZW50SW5kZXgsIGV2ZW50LmtleSBhcyBcIkFycm93TGVmdFwiIHwgXCJBcnJvd1JpZ2h0XCIgfCBcIkFycm93VXBcIiB8IFwiQXJyb3dEb3duXCIsIHBhbmVsKTtcbiAgICAgIGlmIChuZXh0SW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBkYXRlcyA9IHBhbmVsID09PSBcIkxFRlRcIiA/IHRoaXMuY3VycmVudE1vbnRoRGF0ZXMoKSA6IHRoaXMubmV4dE1vbnRoRGF0ZXMoKTtcbiAgICAgICAgY29uc3QgbmV4dERheSA9IGRhdGVzW25leHRJbmRleF07XG4gICAgICAgIHRoaXMuc2NoZWR1bGVGb2N1c0NlbGwodGhpcy5nZXREYXlDZWxsSWQobmV4dERheSwgcGFuZWwpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGRheS5kYXRlIDw9IDAgfHwgZGF5LmlzRGlzYWJsZWREYXkpIHJldHVybjtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHwgZXZlbnQua2V5ID09PSBcIiBcIikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0RGF5KHBhbmVsLCBkYXkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpbmdsZURhdGVQaWNrZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnNpbmdsZURhdGVQaWNrZXJFbGVtZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiZGF0YSgpLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZT8nc2luZ2xlLWRhdGUtcGlja2VyLWVuYWJsZWQnOicnXCIgYXJpYS1sYWJlbD1cIkNob29zZSBkYXRlIG9yIGRhdGUgcmFuZ2VcIiBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIj5cbiAgPGRpdiB0YWJpbmRleD1cIi0xXCIgY2RrRm9jdXNJbml0aWFsPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmFkaW8tY29udGFpbmVyXCI+XG48ZGl2XG4gIGNsYXNzPVwibGFiZWxcIlxuICB0YWJpbmRleD1cIjBcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJjaGFuZ2VQaWNrZXIocGlja2VyKVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiKGZvcm1Db250cm9sPy52YWx1ZSA9PT0gcGlja2VyKSA/IChwaWNrZXIgKyAnLCBzZWxlY3RlZCcpIDogKHBpY2tlciArICcsIGNsaWNrIHRvIHNlbGVjdCcpXCJcbiAgKm5nRm9yPVwibGV0IHBpY2tlciBvZiBkYXRlUGlja2VyVmFsdWUoKTsgbGV0IGkgPSBpbmRleFwiXG4+XG4gIDxtaXMtcmFkaW8gY2xhc3M9XCJpbnB1dFwiIFtuYW1lXT1cIidkYXRlU2VsZWN0aW9uJ1wiIFt2YWx1ZV09XCJwaWNrZXJcIiAodmFsdWVDaGFuZ2UpPVwiY2hhbmdlUGlja2VyKCRldmVudClcIiBuZ0RlZmF1bHRDb250cm9sIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiPjwvbWlzLXJhZGlvPlxuICA8c3Bhbj57e3BpY2tlcn19PC9zcGFuPlxuPC9kaXY+XG48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNwZWNpZmljLWRhdGVwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydkaXNwbGF5Jzogc2luZ2xlRGF0ZVBpY2tlclNlbGVjdGVkKCkgPyAnbm9uZScgOiAnJ31cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fdmlld1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyX19sZWZ0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9faGVhZGVyX19wcmFidVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19hcnJvd19faWNvblwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXNQcmV2aW91c01vbnRoRGlzYWJsZWQoKSA/IC0xIDogMFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc1ByZXZpb3VzTW9udGhEaXNhYmxlZCgpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgbW9udGhcIlxuICAgICAgICAgIChjbGljayk9XCIhaXNQcmV2aW91c01vbnRoRGlzYWJsZWQoKSAmJiBuYXZpZ2F0ZU1vbnRoKCdQUkVWSU9VUycpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIhaXNQcmV2aW91c01vbnRoRGlzYWJsZWQoKSAmJiBuYXZpZ2F0ZU1vbnRoKCdQUkVWSU9VUycpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZC1tb250aCc6IGlzUHJldmlvdXNNb250aERpc2FibGVkKCkgfVwiXG4gICAgICAgID5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTkuNzA3MSA4LjcwNzExQzIwLjA5NzYgOC4zMTY1OCAyMC4wOTc2IDcuNjgzNDIgMTkuNzA3MSA3LjI5Mjg5TDEzLjM0MzEgMC45Mjg5MzNDMTIuOTUyNiAwLjUzODQwOSAxMi4zMTk1IDAuNTM4NDA5IDExLjkyODkgMC45Mjg5MzNDMTEuNTM4NCAxLjMxOTQ2IDExLjUzODQgMS45NTI2MiAxMS45Mjg5IDIuMzQzMTVMMTcuNTg1OCA4TDExLjkyODkgMTMuNjU2OUMxMS41Mzg0IDE0LjA0NzQgMTEuNTM4NCAxNC42ODA1IDExLjkyODkgMTUuMDcxMUMxMi4zMTk1IDE1LjQ2MTYgMTIuOTUyNiAxNS40NjE2IDEzLjM0MzEgMTUuMDcxMUwxOS43MDcxIDguNzA3MTFaTS04Ljc0MjI4ZS0wOCA5TDE5IDlMMTkgN0w4Ljc0MjI4ZS0wOCA3TC04Ljc0MjI4ZS0wOCA5WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3Bhbj4ge3sgY3VycmVudE1vbnRoKCkgfX0ge3sgY3VycmVudFllYXJOdW1iZXIoKSB9fSA8L3NwYW4+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX19ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX193ZWVrZGF5c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcmFuZ2VwaWNrZXItY29udGFpbmVyX193ZWVrZGF5XCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXMoKVwiPlxuICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnY3VycmVudC1kYXknOiB3ZWVrRGF5LmlzQ3VycmVudERheSAmJiAoY3VycmVudE1vbnRoTnVtYmVyKCkgPT09IHRvZGF5TW9udGhOdW1iZXIoKSlcbiAgICAgICAgICAgIH1cIj57eyB3ZWVrRGF5LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVyYW5nZXBpY2tlci1jb250YWluZXJfX2RheXNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImRhdGVyYW5nZXBpY2tlci1jb250YWluZXJfX2RheVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXNkcC1jZWxsXT1cImdldERheUNlbGxJZChkYXksICdMRUZUJylcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZ2V0RGF5VGFiSW5kZXgoZGF5LCAnTEVGVCcpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGF5LmRhdGUgPiAwID8gKGRheS5kYXRlICsgJyAnICsgY3VycmVudE1vbnRoKCkgKyAnICcgKyBjdXJyZW50WWVhck51bWJlcigpICsgKGRheS5pc0Rpc2FibGVkRGF5ID8gJywgZGlzYWJsZWQnIDogJycpKSA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkYXkuaXNEaXNhYmxlZERheVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdzZWxlY3RlZC1kYXknOiBkYXkuaXNTZWxlY3RlZERheSAmJiBpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2Rpc2FibGVkLWRheSc6IGRheS5pc0Rpc2FibGVkRGF5LFxuICAgICAgICAgICAgICAnc2VsZWN0ZWQtc3RhcnQtZGF5JzogZGF5LmlzU2VsZWN0ZWRTdGFydERheSAmJiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCksXG4gICAgICAgICAgICAgICdzZWxlY3RlZC1lbmQtZGF5JzogZGF5LmlzU2VsZWN0ZWRFbmREYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnaW4tcmFuZ2UtZGF5JzogZGF5LmluUmFuZ2VEYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnaXMtdmFsaWQtZGF0ZSc6IGRheS5kYXRlID4gMCAmJiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCkgJiYgIShkYXkuaXNTZWxlY3RlZFN0YXJ0RGF5ICYmIGRheS5pc1NlbGVjdGVkRW5kRGF5KVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tcmlnaHQnOiAhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCkgPyAnMHB4JyA6ICcxcHgnLCd3aWR0aCc6ICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSA/ICczNnB4JyA6ICczNXB4JywnanVzdGlmeS1jb250ZW50JzogZGF5LmlzSG9saWRheSA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInLCdwYWRkaW5nLXRvcCc6IGRheS5pc0hvbGlkYXkgPyAnMi44cHgnIDogJzBweCcsJ2hlaWdodCc6IGRheS5pc0hvbGlkYXkgPyAnMzNweCcgOiAnMzZweCd9XCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2YgY3VycmVudE1vbnRoRGF0ZXMoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF5KCdMRUZUJyxkYXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZURheUtleWRvd24oJGV2ZW50LCAnTEVGVCcsIGRheSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnY2lyY3VsYXItZG90JzogZGF5LmlzSG9saWRheSB9XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRheS5kYXRlID4gMFwiIFtuZ0NsYXNzXT1cInsgJ2N1cnJlbnQtZGF5JzogZGF5LmlzQ3VycmVudERheSwgJ2hvbGlkYXktdGV4dCc6IGRheS5pc0hvbGlkYXkgfHwgZGF5LmlzV2Vla09mZiB9XCI+XG4gICAgICAgICAgICAgIHt7IGRheS5kYXRlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJfX3JpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9faGVhZGVyX19wcmFidVwiPlxuICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICA8c3Bhbj4ge3sgbmV4dE1vbnRoKCkgfX0ge3sgbmV4dFllYXJOdW1iZXIoKSB9fSA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRhdGVyYW5nZXBpY2tlci1jb250YWluZXJfX2Fycm93X19pY29uXCJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpc05leHRNb250aERpc2FibGVkKCkgPyAtMSA6IDBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNOZXh0TW9udGhEaXNhYmxlZCgpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBtb250aFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiFpc05leHRNb250aERpc2FibGVkKCkgJiYgbmF2aWdhdGVNb250aCgnTkVYVCcpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIhaXNOZXh0TW9udGhEaXNhYmxlZCgpICYmIG5hdmlnYXRlTW9udGgoJ05FWFQnKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQtbW9udGgnOiBpc05leHRNb250aERpc2FibGVkKCkgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjAgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNMTkuNzA3MSA4LjcwNzExQzIwLjA5NzYgOC4zMTY1OCAyMC4wOTc2IDcuNjgzNDIgMTkuNzA3MSA3LjI5Mjg5TDEzLjM0MzEgMC45Mjg5MzNDMTIuOTUyNiAwLjUzODQwOSAxMi4zMTk1IDAuNTM4NDA5IDExLjkyODkgMC45Mjg5MzNDMTEuNTM4NCAxLjMxOTQ2IDExLjUzODQgMS45NTI2MiAxMS45Mjg5IDIuMzQzMTVMMTcuNTg1OCA4TDExLjkyODkgMTMuNjU2OUMxMS41Mzg0IDE0LjA0NzQgMTEuNTM4NCAxNC42ODA1IDExLjkyODkgMTUuMDcxMUMxMi4zMTk1IDE1LjQ2MTYgMTIuOTUyNiAxNS40NjE2IDEzLjM0MzEgMTUuMDcxMUwxOS43MDcxIDguNzA3MTFaTS04Ljc0MjI4ZS0wOCA5TDE5IDlMMTkgN0w4Ljc0MjI4ZS0wOCA3TC04Ljc0MjI4ZS0wOCA5WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fd2Vla2RheXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fd2Vla2RheVwiICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzKClcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHdlZWtEYXkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fZGF5c1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyLWNvbnRhaW5lcl9fZGF5XCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtc2RwLWNlbGxdPVwiZ2V0RGF5Q2VsbElkKGRheSwgJ1JJR0hUJylcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZ2V0RGF5VGFiSW5kZXgoZGF5LCAnUklHSFQnKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRheS5kYXRlID4gMCA/IChkYXkuZGF0ZSArICcgJyArIG5leHRNb250aCgpICsgJyAnICsgbmV4dFllYXJOdW1iZXIoKSArIChkYXkuaXNEaXNhYmxlZERheSA/ICcsIGRpc2FibGVkJyA6ICcnKSkgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGF5LmlzRGlzYWJsZWREYXlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2VsZWN0ZWQtZGF5JzogZGF5LmlzU2VsZWN0ZWREYXkgJiYgaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKCksXG4gICAgICAgICAgICAgICdkaXNhYmxlZC1kYXknOiBkYXkuaXNEaXNhYmxlZERheSxcbiAgICAgICAgICAgICAgJ3NlbGVjdGVkLXN0YXJ0LWRheSc6IGRheS5pc1NlbGVjdGVkU3RhcnREYXkgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICAnc2VsZWN0ZWQtZW5kLWRheSc6IGRheS5pc1NlbGVjdGVkRW5kRGF5ICYmICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2luLXJhbmdlLWRheSc6IGRheS5pblJhbmdlRGF5ICYmICFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgJ2lzLXZhbGlkLWRhdGUnOiBkYXkuZGF0ZSA+IDAgJiYgIWlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpICYmICEoZGF5LmlzU2VsZWN0ZWRTdGFydERheSAmJiBkYXkuaXNTZWxlY3RlZEVuZERheSlcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBuZXh0TW9udGhEYXRlcygpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXkoJ1JJR0hUJyxkYXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZURheUtleWRvd24oJGV2ZW50LCAnUklHSFQnLCBkYXkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2NpcmN1bGFyLWRvdCc6IGRheS5pc0hvbGlkYXkgfVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXkuZGF0ZSA+IDBcIiBbbmdDbGFzc109XCJ7ICdjdXJyZW50LWRheSc6IGRheS5pc0N1cnJlbnREYXkgJiYgKGN1cnJlbnRNb250aE51bWJlcigpID09PSB0b2RheU1vbnRoTnVtYmVyKCkpLCAnaG9saWRheS10ZXh0JzogZGF5LmlzSG9saWRheSB8fCBkYXkuaXNXZWVrT2ZmIH1cIj5cbiAgICAgICAgICAgICAge3sgZGF5LmRhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ3ZWVrT2Zmc19ob2xpZGF5c19jb250YWluZXJcIiB0YWJpbmRleD1cIjBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidXZWVrbHkgb2ZmczogJyArIChkYXRhKCkud2Vla09mZnM/Lmxlbmd0aCA/IGRhdGEoKS53ZWVrT2Zmcy5qb2luKCcsICcpIDogJ05vbmUnKSArICcuIEhvbGlkYXlzIG1hcmtlZCB3aXRoIGEgZG90IG9uIHRoZSBjYWxlbmRhci4nXCI+XG4gICAgPHNwYW4+V2Vla2x5IG9mZnM6IDxzcGFuICpuZ0Zvcj1cImxldCB3ZWVrT2ZmIG9mIGRhdGEoKS53ZWVrT2ZmczsgbGV0IGxhc3QgPSBsYXN0XCI+e3t3ZWVrT2ZmfX0gPHNwYW4gKm5nSWY9XCIhbGFzdFwiPiw8L3NwYW4+PC9zcGFuPjwvc3Bhbj5cbiAgICA8c3BhbiA+SG9saWRheXMgPHNwYW4gY2xhc3M9XCJjaXJjdWxhci1kb3RcIiBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLCAnbWFyZ2luLWxlZnQnOiAnMTBweCcgfVwiPjwvc3Bhbj48L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXJhbmdlcGlja2VyX19mb290ZXJcIj5cbiAgICA8c3BhbiAqbmdJZj1cImlzU3BlY2lmaWNQaWNrZXJTZWxlY3RlZCgpXCI+XG4gICAgICA8c3Bhbj57e2xvY2FsU2VsZWN0ZWREYXRlcygpLmxlbmd0aH19PC9zcGFuPiBkYXkocykgc2VsZWN0ZWRcbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCIhaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKClcIj48c3Bhbj57e2RhdGVSYW5nZUxlbmd0aCgpID4gMCA/IGRhdGVSYW5nZUxlbmd0aCgpIDogMCB9fSA8L3NwYW4+ZGF5KHMpIHNlbGVjdGVkPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXJfYWN0aW9uX2J0blwiPlxuICAgICAgPGJ1dHRvbiAjY2FuY2VsQnRuIG1pcy1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cIm5vbmVcIiB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwiY2FuY2VsRGF0ZVBpY2tlcigpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiaXNTcGVjaWZpY1BpY2tlclNlbGVjdGVkKClcIiBtaXMtYnV0dG9uIHNpemU9XCJtZFwiIHR5cGU9XCJwcmltYXJ5XCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cImFwcGx5RGF0ZXMoKVwiIFtkaXNhYmxlZF09XCIhaXNEYXRlc1ZhbGlkKClcIj5BcHBseTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFpc1NwZWNpZmljUGlja2VyU2VsZWN0ZWQoKVwiICNhcHBseVJhbmdlQnRuIG1pcy1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cInByaW1hcnlcIiB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwiYXBwbHlEYXRlc1JhbmdlKClcIiBbZGlzYWJsZWRdPVwiIWlzRGF0ZXNWYWxpZCgpIHx8IChkYXRlUmFuZ2VMZW5ndGgoKSA9PT0gMClcIj5BcHBseTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2luZ2xlLWRhdGVwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydkaXNwbGF5JzogIXNpbmdsZURhdGVQaWNrZXJTZWxlY3RlZCgpID8gJ25vbmUnIDogJ2Jsb2NrJ31cIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtaXNUekRwXG4gICAgICAgIG1pc0lucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgY2xhc3M9XCJkYXRlLWlucHV0XCJcbiAgICAgICAgW2RwQ29uZmlnXT1cImRhdGEoKS5kcENvbmZpZ1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25TaW5nbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNpbmdsZURhdGVTZWxlY3RlZFZhbHVlKClcIlxuICAgICAgICBwb3NpdGlvblg9XCJjZW50ZXJcIlxuICAgICAgICBwb3NpdGlvblk9XCJ0b3BcIlxuICAgICAgICBvZmZzZXRYID0gNzFcbiAgICAgICAgb2Zmc2V0WSA9IC0xXG4gICAgICAgIFt2YWx1ZV09XCJzaW5nbGVEYXRlU2VsZWN0ZWRWYWx1ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVCb3hTaGFkb3ddPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlT3ZlckxheV09XCJ0cnVlXCJcbiAgICAgICAgW29wZW5FbGVtZW50XT1cIm9wZW5FbGVtZW50KClcIlxuICAgICAgICAjc2luZ2xlRGF0ZVBpY2tlckVsZW1lbnRcbiAgICAgIC8+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuXG4iXX0=
|