@kando-env/kando-ui 1.2.47-alpha.28 → 1.2.47-alpha.3

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.
Files changed (48) hide show
  1. package/lib/Router.js +5 -5
  2. package/lib/components/Header/KandoNavbar/KandoNavbar.js +2 -2
  3. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +2 -2
  4. package/lib/components/SevereEvent/SevereEvent.js +7 -33
  5. package/lib/components/SevereEvent/SevereEvent.scss +1 -28
  6. package/lib/i18n/en.json +14 -37
  7. package/lib/i18n/he.json +1 -70
  8. package/lib/macros/getVersion.js +2 -2
  9. package/lib/pages/EventsPage/events/EventsStyle.scss +0 -1
  10. package/lib/pages/EventsPage/events/events_list/EventsList.js +5 -39
  11. package/lib/pages/ImportGisPage/GisFileUploadRespones.js +2 -2
  12. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +2 -5
  13. package/lib/pages/ImportGisPage/ValidationForm.js +2 -2
  14. package/lib/pages/ImportGisPage/ValidationResponse.js +5 -14
  15. package/lib/pages/ImportGisPage/importGisUtils.js +9 -17
  16. package/lib/pages/ImportGisPage/style.module.scss +0 -6
  17. package/lib/pages/NotificationsPageV2/NotificationsPage.js +83 -160
  18. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +8 -19
  19. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +94 -289
  20. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +140 -101
  21. package/lib/pages/NotificationsPageV2/notificationUtils.js +258 -60
  22. package/lib/pages/SamplingsPage/NewSamplingAction.js +2 -2
  23. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +23 -5
  24. package/lib/pages/SamplingsPage/SamplingMobileModal.js +3 -7
  25. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +2 -2
  26. package/lib/pages/SamplingsPage/SamplingProperties/SamplingMobileProperties.js +232 -0
  27. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +244 -111
  28. package/lib/pages/SamplingsPage/SamplingProperties/bootstrap.overrides.scss +7 -0
  29. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +10 -14
  30. package/lib/pages/SamplingsPage/SamplingsPage.js +2 -18
  31. package/lib/pages/SamplingsPage/samplingsPageUtils.js +19 -36
  32. package/lib/pages/SamplingsPage/style.module.scss +0 -36
  33. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +2 -1
  34. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +3 -2
  35. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +3 -9
  36. package/lib/pages/SitePage/SamplingParameters/dataParser.js +2 -3
  37. package/lib/styles/theme/theme.js +2 -2
  38. package/lib/ui-kit/Checkbox/Checkbox.js +17 -18
  39. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +1 -1
  40. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +15 -42
  41. package/lib/ui-kit/KandoTable/KandoTable.js +18 -3
  42. package/lib/ui-kit/MobileInput/MobileInput.js +4 -4
  43. package/lib/utilities/urls.js +2 -13
  44. package/package.json +1 -1
  45. package/lib/components/SevereEvent/AlertIcon.svg +0 -13
  46. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +0 -216
  47. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +0 -305
  48. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +0 -167
@@ -2,18 +2,14 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
9
 
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
-
14
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
11
 
16
- var _react = _interopRequireWildcard(require("react"));
12
+ var _react = _interopRequireDefault(require("react"));
17
13
 
18
14
  var _reactBootstrap = require("react-bootstrap");
19
15
 
@@ -25,229 +21,111 @@ var _Checkbox = _interopRequireDefault(require("ui-kit/Checkbox/Checkbox"));
25
21
 
26
22
  var _RadioButtonGroup = _interopRequireDefault(require("ui-kit/RadioButtons/RadioButtonGroup"));
27
23
 
28
- var _reactSelect = _interopRequireDefault(require("react-select"));
29
-
30
- var _NotificationsUtils = require("../NotificationsUtils");
31
-
32
- var _Alert = _interopRequireDefault(require("../../../../utilities/Alert"));
33
-
34
- var _theme = require("../../../../styles/theme/theme");
35
-
36
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
-
38
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
-
40
- var NotificationsFormContent = function NotificationsFormContent(_ref) {
41
- var notification = _ref.notification,
42
- points = _ref.points,
43
- tags = _ref.tags,
44
- sensors = _ref.sensors,
45
- waterAuthorities = _ref.waterAuthorities,
46
- allowedNotifications = _ref.allowedNotifications,
47
- setNewNotification = _ref.setNewNotification,
48
- hasPhone = _ref.hasPhone,
49
- hasTelegram = _ref.hasTelegram;
50
-
51
- var _useState = (0, _react.useState)({
52
- open: false,
53
- instance: ''
54
- }),
55
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
56
- modalDetails = _useState2[0],
57
- setModalDetails = _useState2[1];
24
+ var NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
25
+ displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
26
+ componentId: "sc-1u0oj29-0"
27
+ })(["width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}"], function (_ref) {
28
+ var theme = _ref.theme;
29
+ return theme.colorScheme.natural.n30;
30
+ }, function (_ref2) {
31
+ var theme = _ref2.theme;
32
+ return theme.fontSize.md;
33
+ }, function (_ref3) {
34
+ var theme = _ref3.theme;
35
+ return theme.fontWeight.w600;
36
+ }, function (_ref4) {
37
+ var theme = _ref4.theme;
38
+ return theme.colorScheme.natural.n80;
39
+ }, function (_ref5) {
40
+ var theme = _ref5.theme;
41
+ return theme.colorScheme.natural.n80;
42
+ }, function (_ref6) {
43
+ var theme = _ref6.theme;
44
+ return theme.colorScheme.primary.p1;
45
+ }, function (_ref7) {
46
+ var theme = _ref7.theme;
47
+ return theme.colorScheme.primary.p1;
48
+ }, function (_ref8) {
49
+ var theme = _ref8.theme;
50
+ return theme.colorScheme.data.O100;
51
+ }, function (_ref9) {
52
+ var theme = _ref9.theme;
53
+ return theme.colorScheme.data.O100;
54
+ }, function (_ref10) {
55
+ var theme = _ref10.theme;
56
+ return theme.colorScheme.natural.n30;
57
+ }, function (_ref11) {
58
+ var theme = _ref11.theme;
59
+ return theme.colorScheme.natural.n90;
60
+ });
58
61
 
59
- var defaultWaterAuthorityIfSingle = function defaultWaterAuthorityIfSingle() {
60
- if (waterAuthorities.length === 1) {
61
- (0, _NotificationsUtils.handleNotificationType)({
62
- value: 'PollutionAlertConfig',
63
- label: 'Pollution Event'
64
- }, notification, setNewNotification);
65
- (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
66
- selection_type: 'include',
67
- set: [{
68
- value: waterAuthorities[0].water_authority.id,
69
- label: waterAuthorities[0].water_authority.label
70
- }]
71
- }, notification, setNewNotification);
72
- }
73
- };
62
+ var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
63
+ displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
64
+ componentId: "sc-1u0oj29-1"
65
+ })(["display:flex;gap:", ";margin-bottom:8px;"], function (_ref12) {
66
+ var gap = _ref12.gap;
67
+ return gap + 'px';
68
+ });
74
69
 
75
- (0, _react.useEffect)(function () {
76
- defaultWaterAuthorityIfSingle();
77
- }, []);
70
+ var NotificationsFormContent = function NotificationsFormContent(_ref13) {
71
+ var notification = _ref13.notification,
72
+ handleWaterAuthorities = _ref13.handleWaterAuthorities,
73
+ handleSources = _ref13.handleSources,
74
+ handleSendVia = _ref13.handleSendVia,
75
+ handleNotificationType = _ref13.handleNotificationType,
76
+ handleNotificationSample = _ref13.handleNotificationSample,
77
+ handleSeverities = _ref13.handleSeverities;
78
78
  return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
79
79
  controlId: "notification-type"
80
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
81
- onChange: function onChange(option) {
82
- return (0, _NotificationsUtils.handleNotificationType)(option, notification, setNewNotification);
83
- },
84
- name: 'type',
85
- options: allowedNotifications.map(function (type) {
86
- return {
87
- value: type,
88
- label: _i18n.default.t("notifications_page.".concat(type))
89
- };
90
- }),
91
- defaultValue: notification.type !== '' ? {
92
- value: notification.type,
93
- label: _i18n.default.t("notifications_page.".concat(notification.type))
94
- } : {
95
- value: 'PollutionAlertConfig',
96
- label: _i18n.default.t("notifications_page.PollutionAlertConfig")
97
- }
98
- })), notification.type === 'PollutionAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
80
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Control, {
81
+ as: "select",
82
+ onChange: handleNotificationType,
83
+ value: notification.type.text,
84
+ name: "type",
85
+ disabled: notification.id ? true : false
86
+ }, /*#__PURE__*/_react.default.createElement("option", {
87
+ value: "pollutionEventAlert"
88
+ }, _i18n.default.t('notifications_page.edit_pollution_event')), /*#__PURE__*/_react.default.createElement("option", {
89
+ value: "thresholdsExceededAlert"
90
+ }, _i18n.default.t('notifications_page.edit_thresholds_exceeded')), /*#__PURE__*/_react.default.createElement("option", {
91
+ value: "waterLevelOverflowAlert"
92
+ }, _i18n.default.t('notifications_page.edit_water_level_overflow')), /*#__PURE__*/_react.default.createElement("option", {
93
+ value: "deviceMalfunctionsAlert"
94
+ }, _i18n.default.t('notifications_page.edit_device_malfunctions')), /*#__PURE__*/_react.default.createElement("option", {
95
+ value: "WBEWeeklySummary"
96
+ }, _i18n.default.t('notifications_page.edit_wbe_Weekly_Summary')), /*#__PURE__*/_react.default.createElement("option", {
97
+ value: "WBEAlert"
98
+ }, _i18n.default.t('notifications_page.edit_wbe_alert')))), (!notification.type.id || notification.type.id === 't123' || notification.type.id === 't124') && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
99
99
  controlId: "notification-severity"
100
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
100
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), _i18n.default.t('notifications_page.subtitle'), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
101
101
  gap: "10"
102
102
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
103
103
  options: _notificationUtils.severitiesRadioButtons,
104
- handleChange: function handleChange(event) {
105
- return (0, _NotificationsUtils.handleSeverities)(event, setNewNotification);
106
- },
107
- className: notification.severity,
108
- checked: notification.severity,
104
+ handleChange: handleSeverities,
105
+ className: notification.severities,
106
+ checked: notification.severities,
109
107
  type: "radio"
110
- }))), waterAuthorities.length > 1 && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
108
+ }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
111
109
  controlId: "notification-water-authorities"
112
110
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.water_authorities')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
113
111
  gap: "0"
114
112
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
115
113
  options: _notificationUtils.waterAuthoritiesRadioButtons,
116
- handleChange: function handleChange(event) {
117
- return (0, _NotificationsUtils.handleWaterAuthorities)(event, '', notification, setNewNotification);
118
- },
119
- className: notification.water_authorities.selection_type,
120
- checked: notification.water_authorities.selection_type,
114
+ handleChange: handleWaterAuthorities,
115
+ className: notification.waterAuthorities.type,
116
+ checked: notification.waterAuthorities.type,
121
117
  type: "radio"
122
- })), notification.water_authorities.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
123
- name: 'water_authority',
124
- onChange: function onChange(option) {
125
- (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
126
- selection_type: notification.water_authorities.selection_type,
127
- set: option
128
- }, notification, setNewNotification);
129
- },
130
- isSearchable: true,
131
- isMulti: true,
132
- classNamePrefix: 'water_authority',
133
- options: waterAuthorities === null || waterAuthorities === void 0 ? void 0 : waterAuthorities.map(function (wa) {
134
- return {
135
- value: wa.water_authority.id,
136
- label: wa.water_authority.label
137
- };
138
- }),
139
- defaultValue: notification.water_authorities.set !== null ? notification.water_authorities.set.map(function (wa) {
140
- return {
141
- value: wa.id,
142
- label: wa.text
143
- };
144
- }) : []
145
- })), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
118
+ }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
146
119
  controlId: "notification-sources"
147
120
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sources')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
148
121
  gap: "0"
149
122
  }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
150
123
  options: _notificationUtils.sourcesRadioButtons,
151
- handleChange: function handleChange(event) {
152
- return (0, _NotificationsUtils.handleSources)(event, '', notification, setNewNotification);
153
- },
154
- className: notification.points.selection_type,
155
- checked: notification.points.selection_type,
124
+ handleChange: handleSources,
125
+ className: notification.sources.type,
126
+ checked: notification.sources.type,
156
127
  type: "radio"
157
- })), notification.points.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
158
- name: 'point',
159
- onChange: function onChange(option) {
160
- (0, _NotificationsUtils.handleSources)(undefined, {
161
- selection_type: notification.points.selection_type,
162
- set: option
163
- }, notification, setNewNotification);
164
- },
165
- isSearchable: true,
166
- isMulti: true,
167
- classNamePrefix: 'point',
168
- options: points === null || points === void 0 ? void 0 : points.map(function (p) {
169
- return {
170
- value: p.point.id,
171
- label: p.point.label
172
- };
173
- }),
174
- defaultValue: notification.points.set !== null ? notification.points.set.map(function (p) {
175
- return {
176
- value: p.id,
177
- label: p.text
178
- };
179
- }) : []
180
- })), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
181
- controlId: "notification-tags"
182
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.tags')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
183
- gap: "0"
184
- }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
185
- options: _notificationUtils.sourcesRadioButtons,
186
- handleChange: function handleChange(event) {
187
- return (0, _NotificationsUtils.handleTags)(event, '', notification, setNewNotification);
188
- },
189
- className: notification.tags.selection_type,
190
- checked: notification.tags.selection_type,
191
- type: "radio"
192
- })), notification.tags.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
193
- name: 'point',
194
- onChange: function onChange(option) {
195
- (0, _NotificationsUtils.handleTags)(undefined, {
196
- selection_type: notification.tags !== undefined ? notification.tags.selection_type : [],
197
- set: option
198
- }, notification, setNewNotification);
199
- },
200
- isSearchable: true,
201
- isMulti: true,
202
- classNamePrefix: 'point',
203
- options: tags === null || tags === void 0 ? void 0 : tags.map(function (p) {
204
- return {
205
- value: p.tag.id,
206
- label: p.tag.label
207
- };
208
- }),
209
- defaultValue: notification.tags.set !== null ? notification.tags.set.map(function (p) {
210
- return {
211
- value: p.id,
212
- label: p.text
213
- };
214
- }) : []
215
- })), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
216
- controlId: "notification-sensors"
217
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sensors')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
218
- gap: "0"
219
- }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
220
- options: _notificationUtils.sourcesRadioButtons,
221
- handleChange: function handleChange(event) {
222
- return (0, _NotificationsUtils.handleSensors)(event, '', notification, setNewNotification);
223
- },
224
- className: notification.sensors.selection_type,
225
- checked: notification.sensors.selection_type,
226
- type: "radio"
227
- })), notification.sensors.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
228
- name: 'point',
229
- onChange: function onChange(option) {
230
- (0, _NotificationsUtils.handleSensors)(undefined, {
231
- selection_type: notification.sensors !== undefined ? notification.sensors.selection_type : [],
232
- set: option
233
- }, notification, setNewNotification);
234
- },
235
- isSearchable: true,
236
- isMulti: true,
237
- classNamePrefix: 'point',
238
- options: sensors === null || sensors === void 0 ? void 0 : sensors.map(function (p) {
239
- return {
240
- value: p.sensor.id,
241
- label: p.sensor.label
242
- };
243
- }),
244
- defaultValue: notification.sensors.set !== null ? notification.sensors.set.map(function (p) {
245
- return {
246
- value: p.id,
247
- label: p.text
248
- };
249
- }) : []
250
- })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
128
+ }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
251
129
  controlId: "notification-send"
252
130
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_send_via')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
253
131
  gap: "10"
@@ -255,95 +133,22 @@ var NotificationsFormContent = function NotificationsFormContent(_ref) {
255
133
  return /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
256
134
  key: value.label,
257
135
  option: value,
258
- handleChange: function handleChange(event) {
259
- return (0, _NotificationsUtils.handleSendVia)(event, notification, setNewNotification, setModalDetails);
260
- },
261
- className: notification.actions,
262
- checked: notification.actions,
136
+ handleChange: handleSendVia,
137
+ className: notification.notificationAlerts,
138
+ checked: notification.notificationAlerts,
263
139
  type: "checkbox"
264
140
  });
265
- }), notification.actions.telegram && !hasTelegram && modalDetails.open && modalDetails.instance === 'telegram' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
266
- setModalDetails: setModalDetails,
267
- children: /*#__PURE__*/_react.default.createElement(AlertContent, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.edit_send_via_no_telegram')), /*#__PURE__*/_react.default.createElement(ModalActionsButton, {
268
- color: _theme.theme.colorScheme.natural.n60
269
- }, _i18n.default.t('notifications_page.ok')))
270
- }), notification.actions.sms && !hasPhone && modalDetails.open && modalDetails.instance === 'sms' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
271
- setModalDetails: setModalDetails,
272
- children: /*#__PURE__*/_react.default.createElement(AlertContent, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.edit_send_via_no_phone')), /*#__PURE__*/_react.default.createElement(ModalActionsButton, {
273
- color: _theme.theme.colorScheme.natural.n60
274
- }, _i18n.default.t('notifications_page.ok')))
275
- }))), notification.type === 'PollutionAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
141
+ }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
276
142
  inline: true,
277
143
  label: _i18n.default.t('notifications_page.edit_sampler_active'),
278
- name: "pump_only",
144
+ name: "sample",
279
145
  type: "checkbox",
280
- id: "pump_only",
281
- onChange: function onChange(e) {
282
- return (0, _NotificationsUtils.handleNotificationSample)(e, setNewNotification);
283
- },
284
- checked: notification.pump_only
146
+ id: "sample",
147
+ onChange: handleNotificationSample,
148
+ checked: notification.sample
285
149
  })));
286
150
  };
287
151
 
288
152
  var _default = NotificationsFormContent;
289
153
  exports.default = _default;
290
-
291
- var AlertContent = _styledComponents.default.div.withConfig({
292
- displayName: "NotificationsFormContent__AlertContent",
293
- componentId: "sc-1u0oj29-0"
294
- })(["p{padding:30px 30px 0 30px;}display:flex;text-align:center;flex-direction:column;justify-content:space-between;align-content:center;height:100%;"]);
295
-
296
- var ModalActionsButton = _styledComponents.default.div.withConfig({
297
- displayName: "NotificationsFormContent__ModalActionsButton",
298
- componentId: "sc-1u0oj29-1"
299
- })(["border-top:1px solid #a8a8aa;text-align:center;height:45px;display:flex;justify-content:center;align-items:center;cursor:pointer;color:", ";"], function (_ref2) {
300
- var color = _ref2.color;
301
- return color;
302
- });
303
-
304
- var NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
305
- displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
306
- componentId: "sc-1u0oj29-2"
307
- })(["width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}.form-check-inline{align-items:self-start !important;input{margin-top:7px !important;}}"], function (_ref3) {
308
- var theme = _ref3.theme;
309
- return theme.colorScheme.natural.n30;
310
- }, function (_ref4) {
311
- var theme = _ref4.theme;
312
- return theme.fontSize.md;
313
- }, function (_ref5) {
314
- var theme = _ref5.theme;
315
- return theme.fontWeight.w600;
316
- }, function (_ref6) {
317
- var theme = _ref6.theme;
318
- return theme.colorScheme.natural.n80;
319
- }, function (_ref7) {
320
- var theme = _ref7.theme;
321
- return theme.colorScheme.natural.n80;
322
- }, function (_ref8) {
323
- var theme = _ref8.theme;
324
- return theme.colorScheme.primary.p1;
325
- }, function (_ref9) {
326
- var theme = _ref9.theme;
327
- return theme.colorScheme.primary.p1;
328
- }, function (_ref10) {
329
- var theme = _ref10.theme;
330
- return theme.colorScheme.data.O100;
331
- }, function (_ref11) {
332
- var theme = _ref11.theme;
333
- return theme.colorScheme.data.O100;
334
- }, function (_ref12) {
335
- var theme = _ref12.theme;
336
- return theme.colorScheme.data.W100;
337
- }, function (_ref13) {
338
- var theme = _ref13.theme;
339
- return theme.colorScheme.data.W100;
340
- });
341
-
342
- var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
343
- displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
344
- componentId: "sc-1u0oj29-3"
345
- })(["display:flex;gap:", ";margin-bottom:8px;"], function (_ref14) {
346
- var gap = _ref14.gap;
347
- return gap + 'px';
348
- });
349
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQiLCJub3RpZmljYXRpb24iLCJwb2ludHMiLCJ0YWdzIiwic2Vuc29ycyIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsInNldE5ld05vdGlmaWNhdGlvbiIsImhhc1Bob25lIiwiaGFzVGVsZWdyYW0iLCJvcGVuIiwiaW5zdGFuY2UiLCJtb2RhbERldGFpbHMiLCJzZXRNb2RhbERldGFpbHMiLCJkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSIsImxlbmd0aCIsInZhbHVlIiwibGFiZWwiLCJ1bmRlZmluZWQiLCJzZWxlY3Rpb25fdHlwZSIsInNldCIsIndhdGVyX2F1dGhvcml0eSIsImlkIiwiaTE4biIsInQiLCJvcHRpb24iLCJtYXAiLCJ0eXBlIiwiaW5jbHVkZXMiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwiZXZlbnQiLCJzZXZlcml0eSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJ3YXRlcl9hdXRob3JpdGllcyIsIndhIiwidGV4dCIsInNvdXJjZXNSYWRpb0J1dHRvbnMiLCJwIiwicG9pbnQiLCJ0YWciLCJzZW5zb3IiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsImFjdGlvbnMiLCJ0ZWxlZ3JhbSIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjYwIiwic21zIiwiZSIsInB1bXBfb25seSIsIkFsZXJ0Q29udGVudCIsInN0eWxlZCIsImRpdiIsIk1vZGFsQWN0aW9uc0J1dHRvbiIsImNvbG9yIiwiTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGUiLCJuMzAiLCJmb250U2l6ZSIsIm1kIiwiZm9udFdlaWdodCIsInc2MDAiLCJuODAiLCJwcmltYXJ5IiwicDEiLCJkYXRhIiwiTzEwMCIsIlcxMDAiLCJOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIiwiZ2FwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFVQTs7QUFFQTs7Ozs7O0FBY0EsSUFBTUEsd0JBQWdFLEdBQUcsU0FBbkVBLHdCQUFtRSxPQVVuRTtBQUFBLE1BVEpDLFlBU0ksUUFUSkEsWUFTSTtBQUFBLE1BUkpDLE1BUUksUUFSSkEsTUFRSTtBQUFBLE1BUEpDLElBT0ksUUFQSkEsSUFPSTtBQUFBLE1BTkpDLE9BTUksUUFOSkEsT0FNSTtBQUFBLE1BTEpDLGdCQUtJLFFBTEpBLGdCQUtJO0FBQUEsTUFKSkMsb0JBSUksUUFKSkEsb0JBSUk7QUFBQSxNQUhKQyxrQkFHSSxRQUhKQSxrQkFHSTtBQUFBLE1BRkpDLFFBRUksUUFGSkEsUUFFSTtBQUFBLE1BREpDLFdBQ0ksUUFESkEsV0FDSTs7QUFDSixrQkFBd0MscUJBQXVCO0FBQzdEQyxJQUFBQSxJQUFJLEVBQUUsS0FEdUQ7QUFFN0RDLElBQUFBLFFBQVEsRUFBRTtBQUZtRCxHQUF2QixDQUF4QztBQUFBO0FBQUEsTUFBT0MsWUFBUDtBQUFBLE1BQXFCQyxlQUFyQjs7QUFLQSxNQUFNQyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQWdDLEdBQU07QUFDMUMsUUFBSVQsZ0JBQWdCLENBQUNVLE1BQWpCLEtBQTRCLENBQWhDLEVBQW1DO0FBQ2pDLHNEQUNFO0FBQUVDLFFBQUFBLEtBQUssRUFBRSxzQkFBVDtBQUFpQ0MsUUFBQUEsS0FBSyxFQUFFO0FBQXhDLE9BREYsRUFFRWhCLFlBRkYsRUFHRU0sa0JBSEY7QUFLQSxzREFDRVcsU0FERixFQUVFO0FBQ0VDLFFBQUFBLGNBQWMsRUFBRSxTQURsQjtBQUVFQyxRQUFBQSxHQUFHLEVBQUUsQ0FDSDtBQUNFSixVQUFBQSxLQUFLLEVBQUVYLGdCQUFnQixDQUFDLENBQUQsQ0FB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QUFBQSxNQUFHcEIsS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCb0IsSUFBbEIsQ0FBdUJDLElBQXRDO0FBQUEsQ0FsQ2MsRUFtQ3pCO0FBQUEsTUFBR3RCLEtBQUgsVUFBR0EsS0FBSDtBQUFBLFNBQWVBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQm9CLElBQWxCLENBQXVCQyxJQUF0QztBQUFBLENBbkN5QixFQXNDZDtBQUFBLE1BQUd0QixLQUFILFVBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFdBQU4sQ0FBa0JvQixJQUFsQixDQUF1QkUsSUFBdEM7QUFBQSxDQXRDYyxFQXVDekI7QUFBQSxNQUFHdkIsS0FBSCxVQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCb0IsSUFBbEIsQ0FBdUJFLElBQXRDO0FBQUEsQ0F2Q3lCLENBQXRDOztBQW1EQSxJQUFNQyw0QkFBNEIsR0FBR2hCLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLGlEQUV6QjtBQUFBLE1BQUdnQixHQUFILFVBQUdBLEdBQUg7QUFBQSxTQUFhQSxHQUFHLEdBQUcsSUFBbkI7QUFBQSxDQUZ5QixDQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHdhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHNvdXJjZXNSYWRpb0J1dHRvbnMsXG4gIHNlbmRWaWFDaGVja0JveGVzLFxuICBBZHZhbmNlZFNlbGVjdGlvbixcbn0gZnJvbSAnc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvbm90aWZpY2F0aW9uVXRpbHMnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJ3NyYy91aS1raXQvQ2hlY2tib3gvQ2hlY2tib3gnO1xuaW1wb3J0IFJhZGlvQnV0dG9uR3JvdXAgZnJvbSAnc3JjL3VpLWtpdC9SYWRpb0J1dHRvbnMvUmFkaW9CdXR0b25Hcm91cCc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQge1xuICBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUsXG4gIGhhbmRsZVNlbmRWaWEsXG4gIGhhbmRsZVNlbnNvcnMsXG4gIGhhbmRsZVNldmVyaXRpZXMsXG4gIGhhbmRsZVNvdXJjZXMsXG4gIGhhbmRsZVRhZ3MsXG4gIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMsXG59IGZyb20gJy4uL05vdGlmaWNhdGlvbnNVdGlscyc7XG5pbXBvcnQgQWxlcnQgZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL0FsZXJ0JztcbmltcG9ydCB7IEFsZXJ0RGV0YWlscyB9IGZyb20gJy4uLy4uLy4uL1NhbXBsaW5nc1BhZ2UvU2FtcGxpbmdQcm9wZXJ0aWVzL3NhbXBsaW5nUHJvcGVydGllc1V0aWxzJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHMge1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgcG9pbnRzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB0YWdzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICB3YXRlckF1dGhvcml0aWVzOiBBZHZhbmNlZFNlbGVjdGlvbltdO1xuICBhbGxvd2VkTm90aWZpY2F0aW9uczogc3RyaW5nW107XG4gIHNldE5ld05vdGlmaWNhdGlvbjogYW55O1xuICBoYXNQaG9uZTogYm9vbGVhbjtcbiAgaGFzVGVsZWdyYW06IGJvb2xlYW47XG59XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHBvaW50cyxcbiAgdGFncyxcbiAgc2Vuc29ycyxcbiAgd2F0ZXJBdXRob3JpdGllcyxcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnMsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgaGFzUGhvbmUsXG4gIGhhc1RlbGVncmFtLFxufSkgPT4ge1xuICBjb25zdCBbbW9kYWxEZXRhaWxzLCBzZXRNb2RhbERldGFpbHNdID0gdXNlU3RhdGU8QWxlcnREZXRhaWxzPih7XG4gICAgb3BlbjogZmFsc2UsXG4gICAgaW5zdGFuY2U6ICcnLFxuICB9KTtcblxuICBjb25zdCBkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSA9ICgpID0+IHtcbiAgICBpZiAod2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUoXG4gICAgICAgIHsgdmFsdWU6ICdQb2xsdXRpb25BbGVydENvbmZpZycsIGxhYmVsOiAnUG9sbHV0aW9uIEV2ZW50JyB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgICBoYW5kbGVXYXRlckF1dGhvcml0aWVzKFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3Rpb25fdHlwZTogJ2luY2x1ZGUnLFxuICAgICAgICAgIHNldDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogd2F0ZXJBdXRob3JpdGllc1swXS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgIGxhYmVsOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5sYWJlbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlKCk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10eXBlXCI+XG4gICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3R5cGUnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbikgPT5cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUob3B0aW9uLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgbmFtZT17J3R5cGUnfVxuICAgICAgICAgIG9wdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zIS5tYXAoKHR5cGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiB0eXBlLFxuICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7dHlwZX1gKSxcbiAgICAgICAgICB9KSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnJ1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBub3RpZmljYXRpb24udHlwZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS4ke25vdGlmaWNhdGlvbi50eXBlfWApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Qb2xsdXRpb25BbGVydENvbmZpZ2ApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdQb2xsdXRpb25BbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZXZlcml0eScpfVxuICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZXZlcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcyhldmVudCwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2V2ZXJpdHl9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgICB7d2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXdhdGVyLWF1dGhvcml0aWVzXCI+XG4gICAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uud2F0ZXJfYXV0aG9yaXRpZXMnKX1cbiAgICAgICAgICA8L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgb3B0aW9ucz17d2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyhcbiAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXM/Lm1hcCgod2E6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB3YS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogd2Eud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZXQubWFwKCh3YTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHdhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHdhLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICApfVxuICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi1zb3VyY2VzXCI+XG4gICAgICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhldmVudCwgJycsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6IG5vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtwb2ludHM/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHAucG9pbnQuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5wb2ludC5sYWJlbCxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5wb2ludHMuc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnBvaW50cy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50YWdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdGFnc1wiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnRhZ3MnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c291cmNlc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoZXZlbnQsICcnLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24udGFncyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RhZ3M/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC50YWcuaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRhZy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50YWdzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnRhZ3Muc2V0Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbnNvcnNcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zZW5zb3JzJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NvdXJjZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKGV2ZW50LCAnJywgbm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICAgIHtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKFxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25fdHlwZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zZW5zb3JzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2Vuc29ycz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcC5zZW5zb3IuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5zZW5zb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbmRWaWEoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy50ZWxlZ3JhbSAmJlxuICAgICAgICAgICAgIWhhc1RlbGVncmFtICYmXG4gICAgICAgICAgICBtb2RhbERldGFpbHMub3BlbiAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLmluc3RhbmNlID09PSAndGVsZWdyYW0nICYmIChcbiAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzPXtzZXRNb2RhbERldGFpbHN9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW49e1xuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWFfbm9fdGVsZWdyYW0nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8TW9kYWxBY3Rpb25zQnV0dG9uIGNvbG9yPXt0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm42MH0+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvTW9kYWxBY3Rpb25zQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9BbGVydENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy5zbXMgJiZcbiAgICAgICAgICAgICFoYXNQaG9uZSAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLm9wZW4gJiZcbiAgICAgICAgICAgIG1vZGFsRGV0YWlscy5pbnN0YW5jZSA9PT0gJ3NtcycgJiYgKFxuICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICAgICAgICBjaGlsZHJlbj17XG4gICAgICAgICAgICAgICAgICA8QWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYV9ub19waG9uZScpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsQWN0aW9uc0J1dHRvbiBjb2xvcj17dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5vaycpfVxuICAgICAgICAgICAgICAgICAgICA8L01vZGFsQWN0aW9uc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvQWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIHtub3RpZmljYXRpb24udHlwZSA9PT0gJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICAgICAgPEZvcm0uQ2hlY2tcbiAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgICAgIG5hbWU9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cInB1bXBfb25seVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlKGUsIHNldE5ld05vdGlmaWNhdGlvbil9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5wdW1wX29ubHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cbiAgICA8L05vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50O1xuXG5jb25zdCBBbGVydENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBwIHtcbiAgICBwYWRkaW5nOiAzMHB4IDMwcHggMCAzMHB4O1xuICB9XG5cbiAgZGlzcGxheTogZmxleDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuYDtcblxuY29uc3QgTW9kYWxBY3Rpb25zQnV0dG9uID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhOGE4YWE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiA0NXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHsoeyBjb2xvciB9KSA9PiBjb2xvcn07XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAxcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gICAgZm9udC13ZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFdlaWdodC53NjAwfTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmFsbCxcbiAgLmluY2x1ZGUsXG4gIC5leGNsdWRlLFxuICAudGVsZWdyYW0sXG4gIC5lbWFpbCxcbiAgLnNtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICB9XG4gIC5leHRyZW1lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gIC5oaWdoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgfVxuICAubWVkaXVtIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgfVxuXG4gIC5mb3JtLWNoZWNrLWlubGluZSB7XG4gICAgYWxpZ24taXRlbXM6IHNlbGYtc3RhcnQgIWltcG9ydGFudDtcblxuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSA9IHN0eWxlZC5kaXY8eyBnYXA6IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAkeyh7IGdhcCB9KSA9PiBnYXAgKyAncHgnfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSIsInN0eWxlZCIsImRpdiIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjMwIiwiZm9udFNpemUiLCJtZCIsImZvbnRXZWlnaHQiLCJ3NjAwIiwibjgwIiwicHJpbWFyeSIsInAxIiwiZGF0YSIsIk8xMDAiLCJuOTAiLCJOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIiwiZ2FwIiwiTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50Iiwibm90aWZpY2F0aW9uIiwiaGFuZGxlV2F0ZXJBdXRob3JpdGllcyIsImhhbmRsZVNvdXJjZXMiLCJoYW5kbGVTZW5kVmlhIiwiaGFuZGxlTm90aWZpY2F0aW9uVHlwZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsImhhbmRsZVNldmVyaXRpZXMiLCJpMThuIiwidCIsInR5cGUiLCJ0ZXh0IiwiaWQiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwic2V2ZXJpdGllcyIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJ3YXRlckF1dGhvcml0aWVzIiwic291cmNlc1JhZGlvQnV0dG9ucyIsInNvdXJjZXMiLCJzZW5kVmlhQ2hlY2tCb3hlcyIsIm1hcCIsInZhbHVlIiwibGFiZWwiLCJub3RpZmljYXRpb25BbGVydHMiLCJzYW1wbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBWUEsSUFBTUEsZ0NBQWdDLEdBQUdDLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLHNhQUdOO0FBQUEsTUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxX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QWxDLEtBQ0dVLHFDQUFrQkMsR0FBbEIsQ0FBc0IsVUFBQ0MsS0FBRCxFQUFXO0FBQ2hDLHdCQUNFLDZCQUFDLGlCQUFEO0FBQ0UsTUFBQSxHQUFHLEVBQUVBLEtBQUssQ0FBQ0MsS0FEYjtBQUVFLE1BQUEsTUFBTSxFQUFFRCxLQUZWO0FBR0UsTUFBQSxZQUFZLEVBQUVqQixhQUhoQjtBQUlFLE1BQUEsU0FBUyxFQUFFSCxZQUFZLENBQUNzQixrQkFKMUI7QUFLRSxNQUFBLE9BQU8sRUFBRXRCLFlBQVksQ0FBQ3NCLGtCQUx4QjtBQU1FLE1BQUEsSUFBSSxFQUFDO0FBTlAsTUFERjtBQVVELEdBWEEsQ0FESCxDQUZGLENBM0VGLGVBNEZFLDZCQUFDLG9CQUFELENBQU0sS0FBTixxQkFDRSw2QkFBQyxvQkFBRCxDQUFNLEtBQU47QUFDRSxJQUFBLE1BQU0sTUFEUjtBQUVFLElBQUEsS0FBSyxFQUFFZixjQUFLQyxDQUFMLENBQU8sd0NBQVAsQ0FGVDtBQUdFLElBQUEsSUFBSSxFQUFDLFFBSFA7QUFJRSxJQUFBLElBQUksRUFBQyxVQUpQO0FBS0UsSUFBQSxFQUFFLEVBQUMsUUFMTDtBQU1FLElBQUEsUUFBUSxFQUFFSCx3QkFOWjtBQU9FLElBQUEsT0FBTyxFQUFFTCxZQUFZLENBQUN1QjtBQVB4QixJQURGLENBNUZGLENBREY7QUEwR0QsQ0FuSEQ7O2VBcUhleEIsd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHdhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMsXG4gIHNvdXJjZXNSYWRpb0J1dHRvbnMsXG4gIHNlbmRWaWFDaGVja0JveGVzLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnc3JjL3VpLWtpdC9DaGVja2JveC9DaGVja2JveCc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcblxuaW50ZXJmYWNlIG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHMge1xuICBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbjtcbiAgaGFuZGxlV2F0ZXJBdXRob3JpdGllczogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBoYW5kbGVTb3VyY2VzOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIGhhbmRsZVNlbmRWaWE6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGU6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgaGFuZGxlU2V2ZXJpdGllczogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAxcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gICAgZm9udC13ZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFdlaWdodC53NjAwfTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmFsbCxcbiAgLmluY2x1ZGUsXG4gIC5leGNsdWRlLFxuICAudGVsZWdyYW0sXG4gIC5lbWFpbCxcbiAgLnNtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICB9XG4gIC5leHRyZW1lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gIC5oaWdoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgfVxuICAubWVkaXVtIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm45MH07XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgPSBzdHlsZWQuZGl2PHsgZ2FwOiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwICsgJ3B4J307XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMsXG4gIGhhbmRsZVNvdXJjZXMsXG4gIGhhbmRsZVNlbmRWaWEsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUsXG4gIGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSxcbiAgaGFuZGxlU2V2ZXJpdGllcyxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Tm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdHlwZVwiPlxuICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF90eXBlJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICA8Rm9ybS5Db250cm9sXG4gICAgICAgICAgYXM9XCJzZWxlY3RcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVOb3RpZmljYXRpb25UeXBlfVxuICAgICAgICAgIHZhbHVlPXtub3RpZmljYXRpb24udHlwZS50ZXh0fVxuICAgICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICBkaXNhYmxlZD17bm90aWZpY2F0aW9uLmlkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICA+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInBvbGx1dGlvbkV2ZW50QWxlcnRcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3BvbGx1dGlvbl9ldmVudCcpfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ0aHJlc2hvbGRzRXhjZWVkZWRBbGVydFwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfdGhyZXNob2xkc19leGNlZWRlZCcpfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ3YXRlckxldmVsT3ZlcmZsb3dBbGVydFwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfd2F0ZXJfbGV2ZWxfb3ZlcmZsb3cnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZGV2aWNlTWFsZnVuY3Rpb25zQWxlcnRcIj5cbiAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2RldmljZV9tYWxmdW5jdGlvbnMnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiV0JFV2Vla2x5U3VtbWFyeVwiPlxuICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfd2JlX1dlZWtseV9TdW1tYXJ5Jyl9XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIldCRUFsZXJ0XCI+XG4gICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF93YmVfYWxlcnQnKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9Gb3JtLkNvbnRyb2w+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7KCFub3RpZmljYXRpb24udHlwZS5pZCB8fFxuICAgICAgICBub3RpZmljYXRpb24udHlwZS5pZCA9PT0gJ3QxMjMnIHx8XG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlLmlkID09PSAndDEyNCcpICYmIChcbiAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNldmVyaXR5XCI+XG4gICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2V2ZXJpdHknKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnN1YnRpdGxlJyl9XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgIG9wdGlvbnM9e3NldmVyaXRpZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU2V2ZXJpdGllc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24uc2V2ZXJpdGllc31cbiAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNldmVyaXRpZXN9XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgKX1cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi13YXRlci1hdXRob3JpdGllc1wiPlxuICAgICAgICA8Rm9ybS5MYWJlbD5cbiAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uud2F0ZXJfYXV0aG9yaXRpZXMnKX1cbiAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVdhdGVyQXV0aG9yaXRpZXN9XG4gICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi53YXRlckF1dGhvcml0aWVzLnR5cGV9XG4gICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJBdXRob3JpdGllcy50eXBlfVxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L05vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGU+XG4gICAgICAgIHsvKiBzZWFyY2ggaW5wdXQgYW5kIHRhZ3Mgc2VsZWN0aW9uIHdpbGwgYmUgYWRkZWQgbGF0ZXIgKi99XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc291cmNlc1wiPlxuICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVTb3VyY2VzfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24uc291cmNlcy50eXBlfVxuICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNvdXJjZXMudHlwZX1cbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICB7Lyogc2VhcmNoIGlucHV0IGFuZCB0YWdzIHNlbGVjdGlvbiB3aWxsIGJlIGFkZGVkIGxhdGVyICovfVxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNlbmRWaWF9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24ubm90aWZpY2F0aW9uQWxlcnRzfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25BbGVydHN9XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICA8Rm9ybS5DaGVja1xuICAgICAgICAgIGlubGluZVxuICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgbmFtZT1cInNhbXBsZVwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBpZD1cInNhbXBsZVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZU5vdGlmaWNhdGlvblNhbXBsZX1cbiAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2FtcGxlfVxuICAgICAgICAvPlxuICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ7XG4iXX0=