@kando-env/kando-ui 1.2.276 → 1.2.277

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 (69) hide show
  1. package/lib/Router.js +10 -1
  2. package/lib/Widgets/Map/Map.js +9 -4
  3. package/lib/Widgets/Map/Map.scss +35 -0
  4. package/lib/Widgets/Map/MapUtils.js +11 -2
  5. package/lib/Widgets/Map/areas/AreaPolygon.js +26 -2
  6. package/lib/Widgets/Map/areas/AreaUtils.js +40 -16
  7. package/lib/Widgets/Map/points/PointMarker.js +39 -5
  8. package/lib/Widgets/Map/points/PointUtils.js +10 -6
  9. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +3 -2
  10. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  11. package/lib/_design-system.scss +16 -0
  12. package/lib/_style-colors.scss +26 -0
  13. package/lib/assets/icons/bar-chart.svg +8 -0
  14. package/lib/assets/icons/index.js +22 -1
  15. package/lib/assets/icons/info.svg +8 -0
  16. package/lib/assets/icons/siteTypes/index.js +13 -0
  17. package/lib/assets/icons/siteTypes/wwtp.svg +4 -0
  18. package/lib/assets/icons/trend.svg +8 -0
  19. package/lib/components/Header/InfoBar/InfoBar.js +5 -3
  20. package/lib/components/Header/InfoBar/Search/SearchContainer.js +2 -3
  21. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +3 -2
  22. package/lib/i18n/en.json +13 -0
  23. package/lib/macros/getVersion.js +1 -1
  24. package/lib/models/IAppState.js +1 -1
  25. package/lib/pages/DashboardMap/AreaCard.js +55 -0
  26. package/lib/pages/DashboardMap/FactoryCard.js +50 -0
  27. package/lib/pages/DashboardMap/HighchartsOptions.js +97 -0
  28. package/lib/pages/DashboardMap/List.js +79 -0
  29. package/lib/pages/DashboardMap/Loader.js +23 -0
  30. package/lib/pages/DashboardMap/WWTPMap.js +113 -0
  31. package/lib/pages/DashboardMap/Widget.js +109 -0
  32. package/lib/pages/DashboardMap/index.js +11 -0
  33. package/lib/pages/DashboardMap/utils.js +79 -0
  34. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +2 -2
  35. package/lib/pages/EventsPage/events/event_info/styles.js +11 -8
  36. package/lib/pages/WwtpPage/DashboardCard.js +62 -0
  37. package/lib/pages/WwtpPage/ImpactCard.js +17 -0
  38. package/lib/pages/WwtpPage/Map.js +16 -0
  39. package/lib/pages/WwtpPage/OrganicCard.js +36 -0
  40. package/lib/pages/WwtpPage/WwtpPage.js +67 -0
  41. package/lib/pages/WwtpPage/WwtpPageContainer.js +51 -0
  42. package/lib/pages/WwtpPage/index.js +11 -0
  43. package/lib/scss/custom.scss +50 -0
  44. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +39 -0
  45. package/lib/store/WWTPDashboard/types.js +6 -0
  46. package/lib/store/areas/models/IArea.js +1 -1
  47. package/lib/store/dashboard/dashboardSlice.js +1 -1
  48. package/lib/store/points/models/IGroup.js +1 -1
  49. package/lib/store/points/models/IPoint.js +1 -1
  50. package/lib/store/rootReducer.js +3 -1
  51. package/lib/styles/theme/theme.js +164 -48
  52. package/lib/styles.scss +2 -0
  53. package/lib/ui-kit/ContentCard/ContentCard.js +48 -0
  54. package/lib/ui-kit/Dashboard/Dashboard.js +54 -0
  55. package/lib/ui-kit/Dashboard/index.js +11 -0
  56. package/lib/ui-kit/InletsPie/InletsPie.js +49 -0
  57. package/lib/ui-kit/InletsPie/index.js +11 -0
  58. package/lib/ui-kit/InletsPie/options.js +63 -0
  59. package/lib/ui-kit/OrganicLoad/GaugeChart.js +46 -0
  60. package/lib/ui-kit/OrganicLoad/OrganicLoad.js +28 -0
  61. package/lib/ui-kit/OrganicLoad/TextInfo.js +59 -0
  62. package/lib/ui-kit/OrganicLoad/index.js +11 -0
  63. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +170 -0
  64. package/lib/ui-kit/ScoreGauge/constant.js +23 -0
  65. package/lib/ui-kit/ScoreGauge/index.js +11 -0
  66. package/lib/utilities/scoreToData.js +19 -14
  67. package/lib/utilities/urls.js +4 -1
  68. package/package.json +4 -1
  69. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreGauge.js +0 -155
@@ -1,155 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.TooltipStyle = void 0;
8
- var _styledComponents = _interopRequireDefault(require("styled-components"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _highcharts = _interopRequireDefault(require("highcharts"));
11
- var _theme = require("styles/theme/theme");
12
- var _scoreToData = require("utilities/scoreToData");
13
- var _highchartsReactOfficial = _interopRequireDefault(require("highcharts-react-official"));
14
- var ScoreGauge = function ScoreGauge(_ref) {
15
- var score = _ref.score;
16
- var tooltipLabel = (0, _scoreToData.scoreToLabel)(score);
17
- var tooltipColor = (0, _scoreToData.scoreToColor)(score);
18
- var options = {
19
- credits: {
20
- enabled: false
21
- },
22
- title: {
23
- text: ''
24
- },
25
- chart: {
26
- type: 'gauge',
27
- plotBackgroundColor: null,
28
- plotBackgroundImage: null,
29
- plotBorderWidth: 0,
30
- plotShadow: false,
31
- height: '100%'
32
- },
33
- tooltip: {
34
- pointFormat: "<b>".concat(tooltipLabel, "</b>"),
35
- // Custom tooltip format
36
- headerFormat: '',
37
- borderColor: tooltipColor,
38
- backgroundColor: 'white',
39
- style: {
40
- color: tooltipColor,
41
- borderColor: tooltipColor
42
- },
43
- distance: 40
44
- },
45
- pane: {
46
- startAngle: -92,
47
- endAngle: 92,
48
- background: null,
49
- center: ['50%', '40%'],
50
- size: '90%'
51
- },
52
- // the value axis
53
- yAxis: {
54
- min: 0,
55
- max: 100,
56
- tickWidth: 0,
57
- minorTickInterval: null,
58
- labels: {
59
- enabled: false
60
- },
61
- lineWidth: 0,
62
- plotBands: [{
63
- from: 0,
64
- to: 30,
65
- borderWidth: '5px',
66
- borderColor: 'white',
67
- color: _theme.theme.colorScheme.data.G100,
68
- // green
69
- thickness: 12
70
- }, {
71
- borderWidth: '5px',
72
- borderColor: 'white',
73
- from: 30,
74
- to: 50,
75
- color: _theme.theme.colorScheme.data.W100,
76
- // yellow
77
- thickness: 12
78
- }, {
79
- from: 50,
80
- to: 70,
81
- borderWidth: '5px',
82
- borderRadius: '5px',
83
- borderColor: 'white',
84
- color: _theme.theme.colorScheme.data.O100,
85
- // red
86
- thickness: 12
87
- }, {
88
- borderWidth: '5px',
89
- borderColor: 'white',
90
- from: 70,
91
- to: 100,
92
- color: _theme.theme.colorScheme.data.R100,
93
- // yellow
94
- thickness: 12
95
- }]
96
- },
97
- plotOptions: {
98
- gauge: {
99
- dataLabels: {
100
- style: {
101
- textOutline: 'none'
102
- },
103
- y: -55 // Adjust the vertical position of the label
104
- }
105
- }
106
- },
107
-
108
- series: [{
109
- name: 'Speed',
110
- data: [score],
111
- dataLabels: {
112
- format: '{y}',
113
- borderWidth: 0,
114
- color: _theme.theme.colorScheme.natural.n20,
115
- style: {
116
- fontSize: '55px',
117
- opacity: 0.8
118
- }
119
- },
120
- dial: {
121
- radius: '60%',
122
- backgroundColor: 'black',
123
- baseWidth: 10,
124
- baseLength: '0%',
125
- rearLength: '0%'
126
- },
127
- pivot: {
128
- backgroundColor: 'black',
129
- radius: 5
130
- }
131
- }]
132
- };
133
- return /*#__PURE__*/_react.default.createElement(_highchartsReactOfficial.default, {
134
- highcharts: _highcharts.default,
135
- options: options,
136
- className: 'justify-content-center',
137
- containerProps: {
138
- style: {
139
- height: '90px',
140
- width: '180px'
141
- }
142
- }
143
- });
144
- };
145
- var TooltipStyle = _styledComponents.default.b.withConfig({
146
- displayName: "ScoreGauge__TooltipStyle",
147
- componentId: "sc-1eoo54b-0"
148
- })(["color:", ";"], function (_ref2) {
149
- var score = _ref2.score;
150
- return (0, _scoreToData.scoreToColor)(score);
151
- });
152
- exports.TooltipStyle = TooltipStyle;
153
- var _default = ScoreGauge;
154
- exports.default = _default;
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9oaWdoY2hhcnRzIiwiX3RoZW1lIiwiX3Njb3JlVG9EYXRhIiwiX2hpZ2hjaGFydHNSZWFjdE9mZmljaWFsIiwiU2NvcmVHYXVnZSIsIl9yZWYiLCJzY29yZSIsInRvb2x0aXBMYWJlbCIsInNjb3JlVG9MYWJlbCIsInRvb2x0aXBDb2xvciIsInNjb3JlVG9Db2xvciIsIm9wdGlvbnMiLCJjcmVkaXRzIiwiZW5hYmxlZCIsInRpdGxlIiwidGV4dCIsImNoYXJ0IiwidHlwZSIsInBsb3RCYWNrZ3JvdW5kQ29sb3IiLCJwbG90QmFja2dyb3VuZEltYWdlIiwicGxvdEJvcmRlcldpZHRoIiwicGxvdFNoYWRvdyIsImhlaWdodCIsInRvb2x0aXAiLCJwb2ludEZvcm1hdCIsImNvbmNhdCIsImhlYWRlckZvcm1hdCIsImJvcmRlckNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwic3R5bGUiLCJjb2xvciIsImRpc3RhbmNlIiwicGFuZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImJhY2tncm91bmQiLCJjZW50ZXIiLCJzaXplIiwieUF4aXMiLCJtaW4iLCJtYXgiLCJ0aWNrV2lkdGgiLCJtaW5vclRpY2tJbnRlcnZhbCIsImxhYmVscyIsImxpbmVXaWR0aCIsInBsb3RCYW5kcyIsImZyb20iLCJ0byIsImJvcmRlcldpZHRoIiwidGhlbWUiLCJjb2xvclNjaGVtZSIsImRhdGEiLCJHMTAwIiwidGhpY2tuZXNzIiwiVzEwMCIsImJvcmRlclJhZGl1cyIsIk8xMDAiLCJSMTAwIiwicGxvdE9wdGlvbnMiLCJnYXVnZSIsImRhdGFMYWJlbHMiLCJ0ZXh0T3V0bGluZSIsInkiLCJzZXJpZXMiLCJuYW1lIiwiZm9ybWF0IiwibmF0dXJhbCIsIm4yMCIsImZvbnRTaXplIiwib3BhY2l0eSIsImRpYWwiLCJyYWRpdXMiLCJiYXNlV2lkdGgiLCJiYXNlTGVuZ3RoIiwicmVhckxlbmd0aCIsInBpdm90IiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJoaWdoY2hhcnRzIiwiSGlnaGNoYXJ0cyIsImNsYXNzTmFtZSIsImNvbnRhaW5lclByb3BzIiwid2lkdGgiLCJUb29sdGlwU3R5bGUiLCJzdHlsZWQiLCJiIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmMiIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudF9pbmZvL1NldmVyaXR5U2NvcmUvU2NvcmVHYXVnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IEhpZ2hjaGFydHMgZnJvbSAnaGlnaGNoYXJ0cyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJ3NyYy9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgc2NvcmVUb0NvbG9yLCBzY29yZVRvTGFiZWwgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCBIaWdoY2hhcnRzUmVhY3QgZnJvbSAnaGlnaGNoYXJ0cy1yZWFjdC1vZmZpY2lhbCc7XG5jb25zdCBTY29yZUdhdWdlID0gKHsgc2NvcmUgfTogeyBzY29yZTogbnVtYmVyIH0pID0+IHtcbiAgY29uc3QgdG9vbHRpcExhYmVsID0gc2NvcmVUb0xhYmVsKHNjb3JlKTtcbiAgY29uc3QgdG9vbHRpcENvbG9yID0gc2NvcmVUb0NvbG9yKHNjb3JlKTtcbiAgY29uc3Qgb3B0aW9uczogSGlnaGNoYXJ0cy5PcHRpb25zID0ge1xuICAgIGNyZWRpdHM6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICB0aXRsZTogeyB0ZXh0OiAnJyB9LFxuICAgIGNoYXJ0OiB7XG4gICAgICB0eXBlOiAnZ2F1Z2UnLFxuICAgICAgcGxvdEJhY2tncm91bmRDb2xvcjogbnVsbCxcbiAgICAgIHBsb3RCYWNrZ3JvdW5kSW1hZ2U6IG51bGwsXG4gICAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgICBwbG90U2hhZG93OiBmYWxzZSxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH0sXG4gICAgdG9vbHRpcDoge1xuICAgICAgcG9pbnRGb3JtYXQ6IGA8Yj4ke3Rvb2x0aXBMYWJlbH08L2I+YCwgLy8gQ3VzdG9tIHRvb2x0aXAgZm9ybWF0XG4gICAgICBoZWFkZXJGb3JtYXQ6ICcnLFxuICAgICAgYm9yZGVyQ29sb3I6IHRvb2x0aXBDb2xvcixcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGNvbG9yOiB0b29sdGlwQ29sb3IsXG4gICAgICAgIGJvcmRlckNvbG9yOiB0b29sdGlwQ29sb3IsXG4gICAgICB9LFxuICAgICAgZGlzdGFuY2U6IDQwLFxuICAgIH0sXG4gICAgcGFuZToge1xuICAgICAgc3RhcnRBbmdsZTogLTkyLFxuICAgICAgZW5kQW5nbGU6IDkyLFxuICAgICAgYmFja2dyb3VuZDogbnVsbCxcbiAgICAgIGNlbnRlcjogWyc1MCUnLCAnNDAlJ10sXG4gICAgICBzaXplOiAnOTAlJyxcbiAgICB9LFxuXG4gICAgLy8gdGhlIHZhbHVlIGF4aXNcbiAgICB5QXhpczoge1xuICAgICAgbWluOiAwLFxuICAgICAgbWF4OiAxMDAsXG4gICAgICB0aWNrV2lkdGg6IDAsXG4gICAgICBtaW5vclRpY2tJbnRlcnZhbDogbnVsbCxcbiAgICAgIGxhYmVsczoge1xuICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBsaW5lV2lkdGg6IDAsXG4gICAgICBwbG90QmFuZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgdG86IDMwLFxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnNXB4JyxcbiAgICAgICAgICBib3JkZXJDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5HMTAwLCAvLyBncmVlblxuICAgICAgICAgIHRoaWNrbmVzczogMTIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBib3JkZXJXaWR0aDogJzVweCcsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgZnJvbTogMzAsXG4gICAgICAgICAgdG86IDUwLFxuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDAsIC8vIHllbGxvd1xuICAgICAgICAgIHRoaWNrbmVzczogMTIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiA1MCxcbiAgICAgICAgICB0bzogNzAsXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICc1cHgnLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuTzEwMCwgLy8gcmVkXG4gICAgICAgICAgdGhpY2tuZXNzOiAxMixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJvcmRlcldpZHRoOiAnNXB4JyxcbiAgICAgICAgICBib3JkZXJDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICBmcm9tOiA3MCxcbiAgICAgICAgICB0bzogMTAwLFxuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlIxMDAsIC8vIHllbGxvd1xuICAgICAgICAgIHRoaWNrbmVzczogMTIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgcGxvdE9wdGlvbnM6IHtcbiAgICAgIGdhdWdlOiB7XG4gICAgICAgIGRhdGFMYWJlbHM6IHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgdGV4dE91dGxpbmU6ICdub25lJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHk6IC01NSwgLy8gQWRqdXN0IHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgbGFiZWxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXJpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NwZWVkJyxcbiAgICAgICAgZGF0YTogW3Njb3JlXSxcbiAgICAgICAgZGF0YUxhYmVsczoge1xuICAgICAgICAgIGZvcm1hdDogJ3t5fScsXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IDAsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjIwLFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBmb250U2l6ZTogJzU1cHgnLFxuICAgICAgICAgICAgb3BhY2l0eTogMC44LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRpYWw6IHtcbiAgICAgICAgICByYWRpdXM6ICc2MCUnLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICBiYXNlV2lkdGg6IDEwLFxuICAgICAgICAgIGJhc2VMZW5ndGg6ICcwJScsXG4gICAgICAgICAgcmVhckxlbmd0aDogJzAlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGl2b3Q6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdibGFjaycsXG4gICAgICAgICAgcmFkaXVzOiA1LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuICByZXR1cm4gKFxuICAgIDxIaWdoY2hhcnRzUmVhY3RcbiAgICAgIGhpZ2hjaGFydHM9e0hpZ2hjaGFydHN9XG4gICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgY2xhc3NOYW1lPXsnanVzdGlmeS1jb250ZW50LWNlbnRlcid9XG4gICAgICBjb250YWluZXJQcm9wcz17e1xuICAgICAgICBzdHlsZTogeyBoZWlnaHQ6ICc5MHB4Jywgd2lkdGg6ICcxODBweCcgfSxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn07XG5leHBvcnQgY29uc3QgVG9vbHRpcFN0eWxlID0gc3R5bGVkLmI8eyBzY29yZTogbnVtYmVyIH0+YFxuICBjb2xvcjogJHsoeyBzY29yZSB9KSA9PiBzY29yZVRvQ29sb3Ioc2NvcmUpfTtcbmA7XG5leHBvcnQgZGVmYXVsdCBTY29yZUdhdWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHdCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFNSyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQUMsSUFBQSxFQUFxQztFQUFBLElBQS9CQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztFQUN6QixJQUFNQyxZQUFZLEdBQUcsSUFBQUMseUJBQVksRUFBQ0YsS0FBSyxDQUFDO0VBQ3hDLElBQU1HLFlBQVksR0FBRyxJQUFBQyx5QkFBWSxFQUFDSixLQUFLLENBQUM7RUFDeEMsSUFBTUssT0FBMkIsR0FBRztJQUNsQ0MsT0FBTyxFQUFFO01BQUVDLE9BQU8sRUFBRTtJQUFNLENBQUM7SUFDM0JDLEtBQUssRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBRyxDQUFDO0lBQ25CQyxLQUFLLEVBQUU7TUFDTEMsSUFBSSxFQUFFLE9BQU87TUFDYkMsbUJBQW1CLEVBQUUsSUFBSTtNQUN6QkMsbUJBQW1CLEVBQUUsSUFBSTtNQUN6QkMsZUFBZSxFQUFFLENBQUM7TUFDbEJDLFVBQVUsRUFBRSxLQUFLO01BQ2pCQyxNQUFNLEVBQUU7SUFDVixDQUFDO0lBQ0RDLE9BQU8sRUFBRTtNQUNQQyxXQUFXLFFBQUFDLE1BQUEsQ0FBUWxCLFlBQVksU0FBTTtNQUFFO01BQ3ZDbUIsWUFBWSxFQUFFLEVB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