@kando-env/kando-ui 1.2.363-alpha.9 → 1.2.364

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 (32) hide show
  1. package/lib/Widgets/Map/Map.js +1 -2
  2. package/lib/i18n/en.json +0 -16
  3. package/lib/i18n/he.json +0 -1
  4. package/lib/macros/getVersion.js +2 -2
  5. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +3 -4
  6. package/lib/pages/DashboardMap/Capacity.js +11 -4
  7. package/lib/pages/DashboardMap/List.js +3 -11
  8. package/lib/pages/DashboardMap/WWTPMap.js +8 -7
  9. package/lib/pages/DashboardMap/utils.js +2 -16
  10. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +5 -6
  11. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +3 -4
  12. package/lib/pages/EventsPage/events/event_info/EventInfo.js +1 -4
  13. package/lib/pages/NotificationsPageV2/NotificationsPage.js +2 -8
  14. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +203 -90
  15. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +3 -5
  16. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +2 -11
  17. package/lib/pages/NotificationsPageV2/notificationUtils.js +2 -3
  18. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +3 -4
  19. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +3 -4
  20. package/lib/store/points/actions.js +2 -3
  21. package/lib/styles/theme/theme.js +2 -2
  22. package/package.json +1 -1
  23. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +0 -34
  24. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +0 -35
  25. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +0 -11
  26. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /styles.scss +0 -19
  27. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +0 -40
  28. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +0 -66
  29. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +0 -54
  30. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +0 -54
  31. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +0 -55
  32. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +0 -55
@@ -4,20 +4,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.NotificationsCheckboxesStyle = void 0;
7
+ exports.default = void 0;
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactBootstrap = require("react-bootstrap");
11
11
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
12
12
  var _notificationUtils = require("pages/NotificationsPageV2/notificationUtils");
13
+ var _Checkbox = _interopRequireDefault(require("ui-kit/Checkbox/Checkbox"));
13
14
  var _RadioButtonGroup = _interopRequireDefault(require("ui-kit/RadioButtons/RadioButtonGroup"));
15
+ var _reactSelect = _interopRequireDefault(require("react-select"));
14
16
  var _NotificationsUtils = require("../NotificationsUtils");
15
- var _EventType = require("./EventType");
16
- var _NotificationSendVia = require("./NotificationSendVia");
17
- var _WaterAuthoritySelection = require("./WaterAuthoritySelection");
18
- var _NotificationSources = require("./NotificationSources");
19
- var _NotificationTags = require("./NotificationTags");
20
- var _NotificationSensors = require("./NotificationSensors");
17
+ var _Alert = _interopRequireDefault(require("../../../../utilities/Alert"));
18
+ var _theme = require("../../../../styles/theme/theme");
21
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
20
  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; }
23
21
  const NotificationsFormContent = _ref => {
@@ -30,20 +28,12 @@ const NotificationsFormContent = _ref => {
30
28
  allowedNotifications,
31
29
  setNewNotification,
32
30
  hasPhone,
33
- hasTelegram,
34
- initialAdvancedConfig
31
+ hasTelegram
35
32
  } = _ref;
36
33
  const [modalDetails, setModalDetails] = (0, _react.useState)({
37
34
  open: false,
38
35
  instance: ''
39
36
  });
40
- const [showAdvancedConfig, setShowAdvancedConfig] = (0, _react.useState)(notification.direct_impact_only === '1' || notification.direct_impact_only === undefined ? false : true);
41
- const showAdvancedConfigLogic = () => {
42
- return notification.type !== 'RollingEventAlertConfig' || initialAdvancedConfig;
43
- };
44
- const showAdvancedConfigCheckbox = () => {
45
- return notification.type === 'RollingEventAlertConfig' && initialAdvancedConfig;
46
- };
47
37
  const defaultWaterAuthorityIfSingle = () => {
48
38
  if (waterAuthorities.length === 1) {
49
39
  (0, _NotificationsUtils.handleNotificationType)({
@@ -68,63 +58,174 @@ const NotificationsFormContent = _ref => {
68
58
  }, notification, setNewNotification);
69
59
  }
70
60
  }, []);
71
- const basicConfiguration = advancedComponents => {
72
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventType.EventType, {
73
- notification: notification,
74
- setNewNotification: setNewNotification,
75
- allowedNotifications: allowedNotifications
76
- }), showAdvancedConfigCheckbox() && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
77
- inline: true,
78
- label: _i18n.default.t('notifications_page.advanced_configuration'),
79
- name: "advanced_configuration",
80
- type: "checkbox",
81
- id: "advanced_configuration",
82
- onChange: e => {
83
- setShowAdvancedConfig(!showAdvancedConfig);
84
- (0, _NotificationsUtils.handleDirectImpact)(e, setNewNotification, notification);
85
- },
86
- checked: showAdvancedConfig
87
- })), showAdvancedConfig && showAdvancedConfigLogic() && advancedComponents(), waterAuthorities.length > 1 && /*#__PURE__*/_react.default.createElement(_WaterAuthoritySelection.WaterAuthoritySelection, {
88
- waterAuthorities: waterAuthorities,
89
- allowedNotifications: allowedNotifications,
90
- notification: notification,
91
- setNewNotification: setNewNotification
92
- }), /*#__PURE__*/_react.default.createElement(_NotificationSendVia.NotificationSendVia, {
93
- notification: notification,
94
- setNewNotification: setNewNotification,
95
- modalDetails: modalDetails,
96
- setModalDetails: setModalDetails,
97
- hasTelegram: hasTelegram,
98
- hasPhone: hasPhone
99
- }));
100
- };
101
- const advancedConfiguration = () => {
102
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
103
- controlId: "notification-severity"
104
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
105
- gap: "10"
106
- }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
107
- options: _notificationUtils.severitiesRadioButtons,
108
- handleChange: event => (0, _NotificationsUtils.handleSeverities)(event, setNewNotification),
109
- className: notification.severity,
110
- checked: notification.severity,
111
- type: "radio"
112
- }))), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_NotificationSources.NotificationSources, {
113
- notification: notification,
114
- setNewNotification: setNewNotification,
115
- points: points
116
- }), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_NotificationTags.NotificationTags, {
117
- notification: notification,
118
- setNewNotification: setNewNotification,
119
- allowedNotifications: allowedNotifications,
120
- tags: tags
121
- }), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_NotificationSensors.NotificationSensors, {
122
- notification: notification,
123
- setNewNotification: setNewNotification,
124
- sensors: sensors
125
- }));
126
- };
127
- return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, basicConfiguration(advancedConfiguration), notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
61
+ return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
62
+ controlId: "notification-type"
63
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
64
+ onChange: option => (0, _NotificationsUtils.handleNotificationType)(option, notification, setNewNotification),
65
+ name: 'type',
66
+ options: allowedNotifications.map(type => ({
67
+ value: type,
68
+ label: _i18n.default.t(`notifications_page.${type}`)
69
+ })),
70
+ defaultValue: notification.type !== '' ? {
71
+ value: notification.type,
72
+ label: _i18n.default.t(`notifications_page.${notification.type}`)
73
+ } : {
74
+ value: 'RollingEventAlertConfig',
75
+ label: _i18n.default.t(`notifications_page.RollingEventAlertConfig`)
76
+ },
77
+ isDisabled: notification.id ? true : false,
78
+ isSearchable: false
79
+ })), notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
80
+ controlId: "notification-severity"
81
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
82
+ gap: "10"
83
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
84
+ options: _notificationUtils.severitiesRadioButtons,
85
+ handleChange: event => (0, _NotificationsUtils.handleSeverities)(event, setNewNotification),
86
+ className: notification.severity,
87
+ checked: notification.severity,
88
+ type: "radio"
89
+ }))), waterAuthorities.length > 1 && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
90
+ controlId: "notification-water-authorities"
91
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.water_authorities')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
92
+ gap: "0"
93
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
94
+ options: _notificationUtils.waterAuthoritiesRadioButtons,
95
+ handleChange: event => (0, _NotificationsUtils.handleWaterAuthorities)(event, '', notification, setNewNotification),
96
+ className: notification.water_authorities.selection_type,
97
+ checked: notification.water_authorities.selection_type,
98
+ type: "radio"
99
+ })), notification.water_authorities.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
100
+ name: 'water_authority',
101
+ onChange: option => {
102
+ (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
103
+ selection_type: notification.water_authorities.selection_type,
104
+ set: option
105
+ }, notification, setNewNotification);
106
+ },
107
+ isSearchable: true,
108
+ isMulti: true,
109
+ classNamePrefix: 'water_authority',
110
+ options: waterAuthorities === null || waterAuthorities === void 0 ? void 0 : waterAuthorities.map(wa => ({
111
+ value: wa.water_authority.id,
112
+ label: wa.water_authority.label
113
+ })),
114
+ defaultValue: notification.water_authorities.set !== null ? notification.water_authorities.set.map(wa => ({
115
+ value: wa.id,
116
+ label: wa.text
117
+ })) : []
118
+ })), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
119
+ controlId: "notification-sources"
120
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sources')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
121
+ gap: "0"
122
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
123
+ options: _notificationUtils.sourcesRadioButtons,
124
+ handleChange: event => (0, _NotificationsUtils.handleSources)(event, '', notification, setNewNotification),
125
+ className: notification.points.selection_type,
126
+ checked: notification.points.selection_type,
127
+ type: "radio"
128
+ })), notification.points.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
129
+ name: 'point',
130
+ onChange: option => {
131
+ (0, _NotificationsUtils.handleSources)(undefined, {
132
+ selection_type: notification.points.selection_type,
133
+ set: option
134
+ }, notification, setNewNotification);
135
+ },
136
+ isSearchable: true,
137
+ isMulti: true,
138
+ classNamePrefix: 'point',
139
+ options: points === null || points === void 0 ? void 0 : points.map(p => ({
140
+ value: p.point.id,
141
+ label: p.point.label
142
+ })),
143
+ defaultValue: notification.points.set !== null ? notification.points.set.map(p => ({
144
+ value: p.id,
145
+ label: p.text
146
+ })) : []
147
+ })), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
148
+ controlId: "notification-tags"
149
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.tags')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
150
+ gap: "0"
151
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
152
+ options: _notificationUtils.sourcesRadioButtons,
153
+ handleChange: event => (0, _NotificationsUtils.handleTags)(event, '', notification, setNewNotification),
154
+ className: notification.tags.selection_type,
155
+ checked: notification.tags.selection_type,
156
+ type: "radio"
157
+ })), notification.tags.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
158
+ name: 'point',
159
+ onChange: option => {
160
+ (0, _NotificationsUtils.handleTags)(undefined, {
161
+ selection_type: notification.tags !== undefined ? notification.tags.selection_type : [],
162
+ set: option
163
+ }, notification, setNewNotification);
164
+ },
165
+ isSearchable: true,
166
+ isMulti: true,
167
+ classNamePrefix: 'point',
168
+ options: tags === null || tags === void 0 ? void 0 : tags.map(p => ({
169
+ value: p.tag.id,
170
+ label: p.tag.label
171
+ })),
172
+ defaultValue: notification.tags.set !== null ? notification.tags.set.map(p => ({
173
+ value: p.id,
174
+ label: p.text
175
+ })) : []
176
+ })), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
177
+ controlId: "notification-sensors"
178
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sensors')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
179
+ gap: "0"
180
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
181
+ options: _notificationUtils.sourcesRadioButtons,
182
+ handleChange: event => (0, _NotificationsUtils.handleSensors)(event, '', notification, setNewNotification),
183
+ className: notification.sensors.selection_type,
184
+ checked: notification.sensors.selection_type,
185
+ type: "radio"
186
+ })), notification.sensors.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
187
+ name: 'point',
188
+ onChange: option => {
189
+ (0, _NotificationsUtils.handleSensors)(undefined, {
190
+ selection_type: notification.sensors !== undefined ? notification.sensors.selection_type : [],
191
+ set: option
192
+ }, notification, setNewNotification);
193
+ },
194
+ isSearchable: true,
195
+ isMulti: true,
196
+ classNamePrefix: 'point',
197
+ options: sensors === null || sensors === void 0 ? void 0 : sensors.map(p => ({
198
+ value: p.sensor.id,
199
+ label: p.sensor.label
200
+ })),
201
+ defaultValue: notification.sensors.set !== null ? notification.sensors.set.map(p => ({
202
+ value: p.id,
203
+ label: p.text
204
+ })) : []
205
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
206
+ controlId: "notification-send"
207
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_send_via')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
208
+ gap: "10"
209
+ }, _notificationUtils.sendViaCheckBoxes.map(value => {
210
+ return /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
211
+ key: value.label,
212
+ option: value,
213
+ handleChange: event => (0, _NotificationsUtils.handleSendVia)(event, notification, setNewNotification, setModalDetails),
214
+ className: notification.actions,
215
+ checked: notification.actions,
216
+ type: "checkbox"
217
+ });
218
+ }), notification.actions.telegram && !hasTelegram && modalDetails.open && modalDetails.instance === 'telegram' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
219
+ setModalDetails: setModalDetails,
220
+ 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, {
221
+ color: _theme.theme.colorScheme.natural.n60
222
+ }, _i18n.default.t('notifications_page.ok')))
223
+ }), notification.actions.sms && !hasPhone && modalDetails.open && modalDetails.instance === 'sms' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
224
+ setModalDetails: setModalDetails,
225
+ 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, {
226
+ color: _theme.theme.colorScheme.natural.n60
227
+ }, _i18n.default.t('notifications_page.ok')))
228
+ }))), notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
128
229
  inline: true,
129
230
  label: _i18n.default.t('notifications_page.edit_sampler_active'),
130
231
  name: "pump_only",
@@ -136,29 +237,37 @@ const NotificationsFormContent = _ref => {
136
237
  };
137
238
  var _default = NotificationsFormContent;
138
239
  exports.default = _default;
139
- const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
140
- displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
240
+ const AlertContent = _styledComponents.default.div.withConfig({
241
+ displayName: "NotificationsFormContent__AlertContent",
141
242
  componentId: "sc-1u0oj29-0"
142
- })(["@media (max-width:500px){max-height:60vh !important;}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;}}"], _ref2 => {
243
+ })(["p{padding:30px 30px 0 30px;}display:flex;text-align:center;flex-direction:column;justify-content:space-between;align-content:center;height:100%;"]);
244
+ const ModalActionsButton = _styledComponents.default.div.withConfig({
245
+ displayName: "NotificationsFormContent__ModalActionsButton",
246
+ componentId: "sc-1u0oj29-1"
247
+ })(["border-top:1px solid #a8a8aa;text-align:center;height:45px;display:flex;justify-content:center;align-items:center;cursor:pointer;color:", ";"], _ref2 => {
143
248
  let {
144
- theme
249
+ color
145
250
  } = _ref2;
146
- return theme.colorScheme.natural.n30;
147
- }, _ref3 => {
251
+ return color;
252
+ });
253
+ const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
254
+ displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
255
+ componentId: "sc-1u0oj29-2"
256
+ })(["@media (max-width:500px){max-height:60vh !important;}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;}}"], _ref3 => {
148
257
  let {
149
258
  theme
150
259
  } = _ref3;
151
- return theme.fontSize.md;
260
+ return theme.colorScheme.natural.n30;
152
261
  }, _ref4 => {
153
262
  let {
154
263
  theme
155
264
  } = _ref4;
156
- return theme.fontWeight.w600;
265
+ return theme.fontSize.md;
157
266
  }, _ref5 => {
158
267
  let {
159
268
  theme
160
269
  } = _ref5;
161
- return theme.colorScheme.natural.n80;
270
+ return theme.fontWeight.w600;
162
271
  }, _ref6 => {
163
272
  let {
164
273
  theme
@@ -168,7 +277,7 @@ const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfi
168
277
  let {
169
278
  theme
170
279
  } = _ref7;
171
- return theme.colorScheme.primary.p1;
280
+ return theme.colorScheme.natural.n80;
172
281
  }, _ref8 => {
173
282
  let {
174
283
  theme
@@ -178,7 +287,7 @@ const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfi
178
287
  let {
179
288
  theme
180
289
  } = _ref9;
181
- return theme.colorScheme.data.O100;
290
+ return theme.colorScheme.primary.p1;
182
291
  }, _ref10 => {
183
292
  let {
184
293
  theme
@@ -188,21 +297,25 @@ const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfi
188
297
  let {
189
298
  theme
190
299
  } = _ref11;
191
- return theme.colorScheme.data.W100;
300
+ return theme.colorScheme.data.O100;
192
301
  }, _ref12 => {
193
302
  let {
194
303
  theme
195
304
  } = _ref12;
196
305
  return theme.colorScheme.data.W100;
306
+ }, _ref13 => {
307
+ let {
308
+ theme
309
+ } = _ref13;
310
+ return theme.colorScheme.data.W100;
197
311
  });
198
312
  const NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
199
313
  displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
200
- componentId: "sc-1u0oj29-1"
201
- })(["display:flex;gap:", ";margin-bottom:8px;"], _ref13 => {
314
+ componentId: "sc-1u0oj29-3"
315
+ })(["display:flex;gap:", ";margin-bottom:8px;"], _ref14 => {
202
316
  let {
203
317
  gap
204
- } = _ref13;
318
+ } = _ref14;
205
319
  return gap + 'px';
206
320
  });
207
- exports.NotificationsCheckboxesStyle = NotificationsCheckboxesStyle;
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbm90aWZpY2F0aW9uVXRpbHMiLCJfUmFkaW9CdXR0b25Hcm91cCIsIl9Ob3RpZmljYXRpb25zVXRpbHMiLCJfRXZlbnRUeXBlIiwiX05vdGlmaWNhdGlvblNlbmRWaWEiLCJfV2F0ZXJBdXRob3JpdHlTZWxlY3Rpb24iLCJfTm90aWZpY2F0aW9uU291cmNlcyIsIl9Ob3RpZmljYXRpb25UYWdzIiwiX05vdGlmaWNhdGlvblNlbnNvcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50IiwiX3JlZiIsIm5vdGlmaWNhdGlvbiIsInBvaW50cyIsInRhZ3MiLCJzZW5zb3JzIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbG93ZWROb3RpZmljYXRpb25zIiwic2V0TmV3Tm90aWZpY2F0aW9uIiwiaGFzUGhvbmUiLCJoYXNUZWxlZ3JhbSIsImluaXRpYWxBZHZhbmNlZENvbmZpZyIsIm1vZGFsRGV0YWlscyIsInNldE1vZGFsRGV0YWlscyIsInVzZVN0YXRlIiwib3BlbiIsImluc3RhbmNlIiwic2hvd0FkdmFuY2VkQ29uZmlnIiwic2V0U2hvd0FkdmFuY2VkQ29uZmlnIiwiZGlyZWN0X2ltcGFjdF9vbmx5IiwidW5kZWZpbmVkIiwic2hvd0FkdmFuY2VkQ29uZmlnTG9naWMiLCJ0eXBlIiwic2hvd0FkdmFuY2VkQ29uZmlnQ2hlY2tib3giLCJkZWZhdWx0V2F0ZXJBdXRob3JpdHlJZlNpbmdsZSIsImxlbmd0aCIsImhhbmRsZU5vdGlmaWNhdGlvblR5cGUiLCJ2YWx1ZSIsImxhYmVsIiwiaTE4biIsInQiLCJoYW5kbGVXYXRlckF1dGhvcml0aWVzIiwic2VsZWN0aW9uX3R5cGUiLCJ3YXRlcl9hdXRob3JpdHkiLCJpZCIsInVzZUVmZmVjdCIsImJhc2ljQ29uZmlndXJhdGlvbiIsImFkdmFuY2VkQ29tcG9uZW50cyIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIkV2ZW50VHlwZSIsIkZvcm0iLCJHcm91cCIsIkNoZWNrIiwiaW5saW5lIiwibmFtZSIsIm9uQ2hhbmdlIiwiZSIsImhhbmRsZURpcmVjdEltcGFjdCIsImNoZWNrZWQiLCJXYXRlckF1dGhvcml0eVNlbGVjdGlvbiIsIk5vdGlmaWNhdGlvblNlbmRWaWEiLCJhZHZhbmNlZENvbmZpZ3VyYXRpb24iLCJpbmNsdWRlcyIsImNvbnRyb2xJZCIsIkxhYmVsIiwiTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSIsImdhcCIsIm9wdGlvbnMiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJoYW5kbGVTZXZlcml0aWVzIiwiY2xhc3NOYW1lIiwic2V2ZXJpdHkiLCJOb3RpZmljYXRpb25Tb3VyY2VzIiwiTm90aWZpY2F0aW9uVGFncyIsIk5vdGlmaWNhdGlvblNlbnNvcnMiLCJOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsInB1bXBfb25seSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZjIiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4zMCIsIl9yZWYzIiwiZm9udFNpemUiLCJtZCIsIl9yZWY0IiwiZm9udFdlaWdodCIsInc2MDAiLCJfcmVmNSIsIm44MCIsIl9yZWY2IiwiX3JlZjciLCJwcmltYXJ5IiwicDEiLCJfcmVmOCIsIl9yZWY5IiwiZGF0YSIsIk8xMDAiLCJfcmVmMTAiLCJfcmVmMTEiLCJXMTAwIiwiX3JlZjEyIiwiX3JlZjEzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvY29tcG9uZW50cy9Ob3RpZmljYXRpb25zRm9ybS9Ob3RpZmljYXRpb25zRm9ybUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIEFkdmFuY2VkU2VsZWN0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcbmltcG9ydCB7XG4gIGhhbmRsZURpcmVjdEltcGFjdCxcbiAgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlLFxuICBoYW5kbGVOb3RpZmljYXRpb25UeXBlLFxuICBoYW5kbGVTZXZlcml0aWVzLFxuICBoYW5kbGVXYXRlckF1dGhvcml0aWVzLFxufSBmcm9tICcuLi9Ob3RpZmljYXRpb25zVXRpbHMnO1xuaW1wb3J0IHsgQWxlcnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vU2FtcGxpbmdzUGFnZS9TYW1wbGluZ1Byb3BlcnRpZXMvc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi9FdmVudFR5cGUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VuZFZpYSB9IGZyb20gJy4vTm90aWZpY2F0aW9uU2VuZFZpYSc7XG5pbXBvcnQgeyBXYXRlckF1dGhvcml0eVNlbGVjdGlvbiB9IGZyb20gJy4vV2F0ZXJBdXRob3JpdHlTZWxlY3Rpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU291cmNlcyB9IGZyb20gJy4vTm90aWZpY2F0aW9uU291cmNlcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25UYWdzIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25UYWdzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlbnNvcnMgfSBmcm9tICcuL05vdGlmaWNhdGlvblNlbnNvcnMnO1xuXG5pbnRlcmZhY2Ugbm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcyB7XG4gIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uO1xuICBwb2ludHM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHNlbnNvcnM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHdhdGVyQXV0aG9yaXRpZXM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIGFsbG93ZWROb3RpZmljYXRpb25zOiBzdHJpbmdbXTtcbiAgc2V0TmV3Tm90aWZpY2F0aW9uOiBhbnk7XG4gIGhhc1Bob25lOiBib29sZWFuO1xuICBoYXNUZWxlZ3JhbTogYm9vbGVhbjtcbiAgaW5pdGlhbEFkdmFuY2VkQ29uZmlnOiBib29sZWFuO1xuICBkaXJlY3RfaW1wYWN0X29ubHk6IGJvb2xlYW47XG59XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHBvaW50cyxcbiAgdGFncyxcbiAgc2Vuc29ycyxcbiAgd2F0ZXJBdXRob3JpdGllcyxcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnMsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgaGFzUGhvbmUsXG4gIGhhc1RlbGVncmFtLFxuICBpbml0aWFsQWR2YW5jZWRDb25maWcsXG59KSA9PiB7XG4gIGNvbnN0IFttb2RhbERldGFpbHMsIHNldE1vZGFsRGV0YWlsc10gPSB1c2VTdGF0ZTxBbGVydERldGFpbHM+KHtcbiAgICBvcGVuOiBmYWxzZSxcbiAgICBpbnN0YW5jZTogJycsXG4gIH0pO1xuICBjb25zdCBbc2hvd0FkdmFuY2VkQ29uZmlnLCBzZXRTaG93QWR2YW5jZWRDb25maWddID0gdXNlU3RhdGUoXG4gICAgbm90aWZpY2F0aW9uLmRpcmVjdF9pbXBhY3Rfb25seSA9PT0gJzEnIHx8XG4gICAgICBub3RpZmljYXRpb24uZGlyZWN0X2ltcGFjdF9vbmx5ID09PSB1bmRlZmluZWRcbiAgICAgID8gZmFsc2VcbiAgICAgIDogdHJ1ZSxcbiAgKTtcbiAgY29uc3Qgc2hvd0FkdmFuY2VkQ29uZmlnTG9naWMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnIHx8IGluaXRpYWxBZHZhbmNlZENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgY29uc3Qgc2hvd0FkdmFuY2VkQ29uZmlnQ2hlY2tib3ggPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIG5vdGlmaWNhdGlvbi50eXBlID09PSAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnICYmIGluaXRpYWxBZHZhbmNlZENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUgPSAoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGlvbl90eXBlOiAnaW5jbHVkZScsXG4gICAgICAgICAgc2V0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHdhdGVyQXV0aG9yaXRpZXNbMF0ud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUoKTtcbiAgICBpZiAobm90aWZpY2F0aW9uLnR5cGUgPT09ICcnKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBiYXNpY0NvbmZpZ3VyYXRpb24gPSAoYWR2YW5jZWRDb21wb25lbnRzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxFdmVudFR5cGVcbiAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucz17YWxsb3dlZE5vdGlmaWNhdGlvbnN9XG4gICAgICAgIC8+XG5cbiAgICAgICAge3Nob3dBZHZhbmNlZENvbmZpZ0NoZWNrYm94KCkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICAgICAgPEZvcm0uQ2hlY2tcbiAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5hZHZhbmNlZF9jb25maWd1cmF0aW9uJyl9XG4gICAgICAgICAgICAgIG5hbWU9XCJhZHZhbmNlZF9jb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJhZHZhbmNlZF9jb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U2hvd0FkdmFuY2VkQ29uZmlnKCFzaG93QWR2YW5jZWRDb25maWcpO1xuICAgICAgICAgICAgICAgIGhhbmRsZURpcmVjdEltcGFjdChlLCBzZXROZXdOb3RpZmljYXRpb24sIG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e3Nob3dBZHZhbmNlZENvbmZpZ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuXG4gICAgICAgIHtzaG93QWR2YW5jZWRDb25maWcgJiZcbiAgICAgICAgICBzaG93QWR2YW5jZWRDb25maWdMb2dpYygpICYmXG4gICAgICAgICAgYWR2YW5jZWRDb21wb25lbnRzKCl9XG5cbiAgICAgICAge3dhdGVyQXV0aG9yaXRpZXMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgPFdhdGVyQXV0aG9yaXR5U2VsZWN0aW9uXG4gICAgICAgICAgICB3YXRlckF1dGhvcml0aWVzPXt3YXRlckF1dGhvcml0aWVzfVxuICAgICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zfVxuICAgICAgICAgICAgbm90aWZpY2F0aW9uPXtub3RpZmljYXRpb259XG4gICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxOb3RpZmljYXRpb25TZW5kVmlhXG4gICAgICAgICAgbm90aWZpY2F0aW9uPXtub3RpZmljYXRpb259XG4gICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgbW9kYWxEZXRhaWxzPXttb2RhbERldGFpbHN9XG4gICAgICAgICAgc2V0TW9kYWxEZXRhaWxzPXtzZXRNb2RhbERldGFpbHN9XG4gICAgICAgICAgaGFzVGVsZWdyYW09e2hhc1RlbGVncmFtfVxuICAgICAgICAgIGhhc1Bob25lPXtoYXNQaG9uZX1cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYWR2YW5jZWRDb25maWd1cmF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNldmVyaXR5XCI+XG4gICAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NldmVyaXR5Jyl9XG4gICAgICAgICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17c2V2ZXJpdGllc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZXZlcml0aWVzKGV2ZW50LCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICAgICl9XG5cbiAgICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25Tb3VyY2VzXG4gICAgICAgICAgICAgIG5vdGlmaWNhdGlvbj17bm90aWZpY2F0aW9ufVxuICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnRhZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJiAoXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uVGFnc1xuICAgICAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zPXthbGxvd2VkTm90aWZpY2F0aW9uc31cbiAgICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uU2Vuc29yc1xuICAgICAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICAgICAge2Jhc2ljQ29uZmlndXJhdGlvbihhZHZhbmNlZENvbmZpZ3VyYXRpb24pfVxuXG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cD5cbiAgICAgICAgICAgIDxGb3JtLkNoZWNrXG4gICAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgICBsYWJlbD17aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zYW1wbGVyX2FjdGl2ZScpfVxuICAgICAgICAgICAgICBuYW1lPVwicHVtcF9vbmx5XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZShlLCBzZXROZXdOb3RpZmljYXRpb24pfVxuICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ucHVtcF9vbmx5ID09PSAnMSd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cbiAgICA8L05vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50O1xuXG5jb25zdCBOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgIG1heC1oZWlnaHQ6IDYwdmggIWltcG9ydGFudDtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAxcHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5tZH07XG4gICAgZm9udC13ZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFdlaWdodC53NjAwfTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmFsbCxcbiAgLmluY2x1ZGUsXG4gIC5leGNsdWRlLFxuICAudGVsZWdyYW0sXG4gIC5lbWFpbCxcbiAgLnNtcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uODB9O1xuICB9XG4gIC5leHRyZW1lIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucDF9O1xuICB9XG4gIC5oaWdoIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgfVxuICAubWVkaXVtIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMH07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgfVxuXG4gIC5mb3JtLWNoZWNrLWlubGluZSB7XG4gICAgYWxpZ24taXRlbXM6IHNlbGYtc3RhcnQgIWltcG9ydGFudDtcblxuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDdweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgPSBzdHlsZWQuZGl2PHsgZ2FwOiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogJHsoeyBnYXAgfSkgPT4gZ2FwICsgJ3B4J307XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksa0JBQUEsR0FBQUosT0FBQTtBQUtBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxtQkFBQSxHQUFBTixPQUFBO0FBUUEsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLHdCQUFBLEdBQUFU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
321
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbm90aWZpY2F0aW9uVXRpbHMiLCJfQ2hlY2tib3giLCJfUmFkaW9CdXR0b25Hcm91cCIsIl9yZWFjdFNlbGVjdCIsIl9Ob3RpZmljYXRpb25zVXRpbHMiLCJfQWxlcnQiLCJfdGhlbWUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50IiwiX3JlZiIsIm5vdGlmaWNhdGlvbiIsInBvaW50cyIsInRhZ3MiLCJzZW5zb3JzIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbG93ZWROb3RpZmljYXRpb25zIiwic2V0TmV3Tm90aWZpY2F0aW9uIiwiaGFzUGhvbmUiLCJoYXNUZWxlZ3JhbSIsIm1vZGFsRGV0YWlscyIsInNldE1vZGFsRGV0YWlscyIsInVzZVN0YXRlIiwib3BlbiIsImluc3RhbmNlIiwiZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUiLCJsZW5ndGgiLCJoYW5kbGVOb3RpZmljYXRpb25UeXBlIiwidmFsdWUiLCJsYWJlbCIsImkxOG4iLCJ0IiwiaGFuZGxlV2F0ZXJBdXRob3JpdGllcyIsInVuZGVmaW5lZCIsInNlbGVjdGlvbl90eXBlIiwid2F0ZXJfYXV0aG9yaXR5IiwiaWQiLCJ1c2VFZmZlY3QiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsIk5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlIiwiRm9ybSIsIkdyb3VwIiwiY29udHJvbElkIiwiTGFiZWwiLCJvbkNoYW5nZSIsIm9wdGlvbiIsIm5hbWUiLCJvcHRpb25zIiwibWFwIiwiZGVmYXVsdFZhbHVlIiwiaXNEaXNhYmxlZCIsImlzU2VhcmNoYWJsZSIsImluY2x1ZGVzIiwiTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSIsImdhcCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsImhhbmRsZVNldmVyaXRpZXMiLCJjbGFzc05hbWUiLCJzZXZlcml0eSIsImNoZWNrZWQiLCJ3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zIiwid2F0ZXJfYXV0aG9yaXRpZXMiLCJpc011bHRpIiwiY2xhc3NOYW1lUHJlZml4Iiwid2EiLCJ0ZXh0Iiwic291cmNlc1JhZGlvQnV0dG9ucyIsImhhbmRsZVNvdXJjZXMiLCJwIiwicG9pbnQiLCJoYW5kbGVUYWdzIiwidGFnIiwiaGFuZGxlU2Vuc29ycyIsInNlbnNvciIsInNlbmRWaWFDaGVja0JveGVzIiwiaGFuZGxlU2VuZFZpYSIsImFjdGlvbnMiLCJ0ZWxlZ3JhbSIsImNoaWxkcmVuIiwiQWxlcnRDb250ZW50IiwiTW9kYWxBY3Rpb25zQnV0dG9uIiwiY29sb3IiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm42MCIsInNtcyIsIkNoZWNrIiwiaW5saW5lIiwiZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsInB1bXBfb25seSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZjIiLCJfcmVmMyIsIm4zMCIsIl9yZWY0IiwiZm9udFNpemUiLCJtZCIsIl9yZWY1IiwiZm9udFdlaWdodCIsInc2MDAiLCJfcmVmNiIsIm44MCIsIl9yZWY3IiwiX3JlZjgiLCJwcmltYXJ5IiwicDEiLCJfcmVmOSIsIl9yZWYxMCIsImRhdGEiLCJPMTAwIiwiX3JlZjExIiwiX3JlZjEyIiwiVzEwMCIsIl9yZWYxMyIsIl9yZWYxNCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHtcbiAgTm90aWZpY2F0aW9uLFxuICBzZXZlcml0aWVzUmFkaW9CdXR0b25zLFxuICB3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zLFxuICBzb3VyY2VzUmFkaW9CdXR0b25zLFxuICBzZW5kVmlhQ2hlY2tCb3hlcyxcbiAgQWR2YW5jZWRTZWxlY3Rpb24sXG59IGZyb20gJ3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL25vdGlmaWNhdGlvblV0aWxzJztcbmltcG9ydCBDaGVja2JveCBmcm9tICdzcmMvdWkta2l0L0NoZWNrYm94L0NoZWNrYm94JztcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gJ3NyYy91aS1raXQvUmFkaW9CdXR0b25zL1JhZGlvQnV0dG9uR3JvdXAnO1xuaW1wb3J0IFNlbGVjdCBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IHtcbiAgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlLFxuICBoYW5kbGVOb3RpZmljYXRpb25UeXBlLFxuICBoYW5kbGVTZW5kVmlhLFxuICBoYW5kbGVTZW5zb3JzLFxuICBoYW5kbGVTZXZlcml0aWVzLFxuICBoYW5kbGVTb3VyY2VzLFxuICBoYW5kbGVUYWdzLFxuICBoYW5kbGVXYXRlckF1dGhvcml0aWVzLFxufSBmcm9tICcuLi9Ob3RpZmljYXRpb25zVXRpbHMnO1xuaW1wb3J0IEFsZXJ0IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9BbGVydCc7XG5pbXBvcnQgeyBBbGVydERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9zYW1wbGluZ1Byb3BlcnRpZXNVdGlscyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJy4uLy4uLy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5cbmludGVyZmFjZSBub3RpZmljYXRpb25Gb3JtQ29udGVudFByb3BzIHtcbiAgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgdGFnczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgc2Vuc29yczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgd2F0ZXJBdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnM6IHN0cmluZ1tdO1xuICBzZXROZXdOb3RpZmljYXRpb246IGFueTtcbiAgaGFzUGhvbmU6IGJvb2xlYW47XG4gIGhhc1RlbGVncmFtOiBib29sZWFuO1xufVxuXG5jb25zdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ6IFJlYWN0LkZDPG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHM+ID0gKHtcbiAgbm90aWZpY2F0aW9uLFxuICBwb2ludHMsXG4gIHRhZ3MsXG4gIHNlbnNvcnMsXG4gIHdhdGVyQXV0aG9yaXRpZXMsXG4gIGFsbG93ZWROb3RpZmljYXRpb25zLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4gIGhhc1Bob25lLFxuICBoYXNUZWxlZ3JhbSxcbn0pID0+IHtcbiAgY29uc3QgW21vZGFsRGV0YWlscywgc2V0TW9kYWxEZXRhaWxzXSA9IHVzZVN0YXRlPEFsZXJ0RGV0YWlscz4oe1xuICAgIG9wZW46IGZhbHNlLFxuICAgIGluc3RhbmNlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUgPSAoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGlvbl90eXBlOiAnaW5jbHVkZScsXG4gICAgICAgICAgc2V0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHdhdGVyQXV0aG9yaXRpZXNbMF0ud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUoKTtcbiAgICBpZiAobm90aWZpY2F0aW9uLnR5cGUgPT09ICcnKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10eXBlXCI+XG4gICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3R5cGUnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbikgPT5cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUob3B0aW9uLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgbmFtZT17J3R5cGUnfVxuICAgICAgICAgIG9wdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zIS5tYXAoKHR5cGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiB0eXBlLFxuICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7dHlwZX1gKSxcbiAgICAgICAgICB9KSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnJ1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBub3RpZmljYXRpb24udHlwZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS4ke25vdGlmaWNhdGlvbi50eXBlfWApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Sb2xsaW5nRXZlbnRBbGVydENvbmZpZ2ApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaXNEaXNhYmxlZD17bm90aWZpY2F0aW9uLmlkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgIGlzU2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIC8+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZXZlcml0eScpfVxuICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZXZlcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcyhldmVudCwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2V2ZXJpdHl9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+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+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy5zbXMgJiZcbiAgICAgICAgICAgICFoYXNQaG9uZSAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLm9wZW4gJiZcbiAgICAgICAgICAgIG1vZGFsRGV0YWlscy5pbnN0YW5jZSA9PT0gJ3NtcycgJiYgKFxuICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICAgICAgICBjaGlsZHJlbj17XG4gICAgICAgICAgICAgICAgICA8QWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYV9ub19waG9uZScpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsQWN0aW9uc0J1dHRvbiBjb2xvcj17dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5vaycpfVxuICAgICAgICAgICAgICAgICAgICA8L01vZGFsQWN0aW9uc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvQWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIHtub3RpZmljYXRpb24udHlwZSA9PT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICAgICAgPEZvcm0uQ2hlY2tcbiAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgICAgIG5hbWU9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cInB1bXBfb25seVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlKGUsIHNldE5ld05vdGlmaWNhdGlvbil9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5wdW1wX29ubHkgPT09ICcxJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ7XG5cbmNvbnN0IEFsZXJ0Q29udGVudCA9IHN0eWxlZC5kaXZgXG4gIHAge1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCAwIDMwcHg7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG5gO1xuXG5jb25zdCBNb2RhbEFjdGlvbnNCdXR0b24gPSBzdHlsZWQuZGl2YFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2E4YThhYTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAkeyh7IGNvbG9yIH0pID0+IGNvbG9yfTtcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlID0gc3R5bGVkLmRpdmBcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgbWF4LWhlaWdodDogNjB2aCAhaW1wb3J0YW50O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDcydmg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDFweCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLm1kfTtcbiAgICBmb250LXdlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250V2VpZ2h0Lnc2MDB9O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuYWxsLFxuICAuaW5jbHVkZSxcbiAgLmV4Y2x1ZGUsXG4gIC50ZWxlZ3JhbSxcbiAgLmVtYWlsLFxuICAuc21zIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gIH1cbiAgLmV4dHJlbWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gIH1cbiAgLmhpZ2gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDB9O1xuICB9XG4gIC5tZWRpdW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDB9O1xuICB9XG5cbiAgLmZvcm0tY2hlY2staW5saW5lIHtcbiAgICBhbGlnbi1pdGVtczogc2VsZi1zdGFydCAhaW1wb3J0YW50O1xuXG4gICAgaW5wdXQge1xuICAgICAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlID0gc3R5bGVkLmRpdjx7IGdhcDogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6ICR7KHsgZ2FwIH0pID0+IGdhcCArICdweCd9O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMs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