@kando-env/kando-ui 1.2.382-alpha.0 → 1.2.382-alpha.1

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 (28) hide show
  1. package/lib/Router.js +6 -1
  2. package/lib/Widgets/Map/MapUtils.js +4 -2
  3. package/lib/Widgets/PotentialImpactSummary/Icon.js +5 -5
  4. package/lib/components/Sector/Sector.js +19 -12
  5. package/lib/components/Sector/SectorIconsNew.js +112 -0
  6. package/lib/i18n/en.json +15 -0
  7. package/lib/macros/getVersion.js +1 -1
  8. package/lib/pages/DashboardMap/SeverityBadge.js +5 -6
  9. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
  10. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
  11. package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
  12. package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
  13. package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
  14. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
  15. package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
  16. package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
  17. package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
  18. package/lib/pages/PollutionRiskAssessment/index.js +246 -0
  19. package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
  20. package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
  21. package/lib/pages/PollutionRiskAssessment/useMap.js +134 -0
  22. package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
  23. package/lib/store/points/models/IGeoPoint.js +6 -0
  24. package/lib/ui-kit/Checkbox/Checkbox.js +7 -2
  25. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
  26. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
  27. package/lib/utilities/urls.js +6 -1
  28. package/package.json +3 -1
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UseCases = void 0;
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _Icon = require("../../Widgets/PotentialImpactSummary/Icon");
11
+ var _use_cases = _interopRequireDefault(require("./use_cases.json"));
12
+ var _reactI18next = require("react-i18next");
13
+ var UseCases = function UseCases(_ref) {
14
+ var points = _ref.points,
15
+ filteredUseCase = _ref.filteredUseCase;
16
+ // TBD: consider replacing the id with the code and remove it alltogether
17
+ var useCases = _use_cases.default;
18
+ var displayedUseCases = filteredUseCase ? [filteredUseCase] : useCases;
19
+
20
+ // TBD: the calculation of the cost is not final and should be updated once the data is available
21
+ // it should also support K and M
22
+ var calcCost = function calcCost(useCase) {
23
+ var acronym = useCase.code + 'c';
24
+ var total = points.reduce(function (sum, point) {
25
+ return sum + point[acronym];
26
+ }, 0);
27
+ return total.toFixed(2);
28
+ };
29
+ return /*#__PURE__*/_react.default.createElement(List, null, displayedUseCases.map(function (useCase, index) {
30
+ return /*#__PURE__*/_react.default.createElement(UseCase, {
31
+ key: "use_case_".concat(index)
32
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
33
+ use_case: useCase.icon,
34
+ className: "use-case-icon"
35
+ }), /*#__PURE__*/_react.default.createElement(_reactI18next.Trans, {
36
+ i18nKey: "pollution_risk_assessment.use_cases.".concat(useCase.name)
37
+ })), /*#__PURE__*/_react.default.createElement("div", {
38
+ className: "cost"
39
+ }, /*#__PURE__*/_react.default.createElement("span", null, "+ ", calcCost(useCase)), /*#__PURE__*/_react.default.createElement("span", {
40
+ className: "per-year"
41
+ }, '/Per year')));
42
+ }));
43
+ };
44
+ exports.UseCases = UseCases;
45
+ var List = _styledComponents.default.div.withConfig({
46
+ displayName: "UseCases__List",
47
+ componentId: "sc-1fufeq1-0"
48
+ })(["display:flex;gap:15px;align-items:strech;flex-direction:column;"]);
49
+ var UseCase = _styledComponents.default.div.withConfig({
50
+ displayName: "UseCases__UseCase",
51
+ componentId: "sc-1fufeq1-1"
52
+ })(["display:flex;gap:6px;padding:16px;border-radius:12px;border:1px solid #6D6A6B;width:100%;line-height:27px;flex-direction:column;overflow:scroll;.use-case-icon{width:24px;height:24px;}svg path{fill:white !important;}.per-year{font-size:14px;font-weight:400;}.cost{background:#22C55E33;max-width:fit-content;border-radius:4px;padding 0 4px;}"]);
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9JY29uIiwiX3VzZV9jYXNlcyIsIl9yZWFjdEkxOG5leHQiLCJVc2VDYXNlcyIsIl9yZWYiLCJwb2ludHMiLCJmaWx0ZXJlZFVzZUNhc2UiLCJ1c2VDYXNlcyIsImRhdGEiLCJkaXNwbGF5ZWRVc2VDYXNlcyIsImNhbGNDb3N0IiwidXNlQ2FzZSIsImFjcm9ueW0iLCJjb2RlIiwidG90YWwiLCJyZWR1Y2UiLCJzdW0iLCJwb2ludCIsInRvRml4ZWQiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkxpc3QiLCJtYXAiLCJpbmRleCIsIlVzZUNhc2UiLCJrZXkiLCJjb25jYXQiLCJJY29uIiwidXNlX2Nhc2UiLCJpY29uIiwiY2xhc3NOYW1lIiwiVHJhbnMiLCJpMThuS2V5IiwibmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC9Vc2VDYXNlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uL1dpZGdldHMvUG90ZW50aWFsSW1wYWN0U3VtbWFyeS9JY29uJztcbmltcG9ydCB7IElHZW9Qb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lHZW9Qb2ludCc7XG5pbXBvcnQgZGF0YSBmcm9tICcuL3VzZV9jYXNlcy5qc29uJztcbmltcG9ydCB7IFRyYW5zIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5cbmludGVyZmFjZSBVc2VDYXNlc1Byb3BzIHtcbiAgcG9pbnRzOiBJR2VvUG9pbnRbXTtcbiAgZmlsdGVyZWRVc2VDYXNlOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBVc2VDYXNlczogUmVhY3QuRkM8VXNlQ2FzZXNQcm9wcz4gPSAoe1xuICBwb2ludHMsXG4gIGZpbHRlcmVkVXNlQ2FzZSxcbn0pID0+IHtcbiAgLy8gVEJEOiBjb25zaWRlciByZXBsYWNpbmcgdGhlIGlkIHdpdGggdGhlIGNvZGUgYW5kIHJlbW92ZSBpdCBhbGx0b2dldGhlclxuICBjb25zdCB1c2VDYXNlcyA9IGRhdGE7XG4gIGNvbnN0IGRpc3BsYXllZFVzZUNhc2VzID0gZmlsdGVyZWRVc2VDYXNlID8gW2ZpbHRlcmVkVXNlQ2FzZV0gOiB1c2VDYXNlcztcblxuICAvLyBUQkQ6IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgY29zdCBpcyBub3QgZmluYWwgYW5kIHNob3VsZCBiZSB1cGRhdGVkIG9uY2UgdGhlIGRhdGEgaXMgYXZhaWxhYmxlXG4gIC8vIGl0IHNob3VsZCBhbHNvIHN1cHBvcnQgSyBhbmQgTVxuICBjb25zdCBjYWxjQ29zdCA9ICh1c2VDYXNlKSA9PiB7XG4gICAgY29uc3QgYWNyb255bSA9IHVzZUNhc2UuY29kZSArICdjJztcbiAgICBjb25zdCB0b3RhbCA9IHBvaW50cy5yZWR1Y2UoKHN1bSwgcG9pbnQpID0+IHN1bSArIHBvaW50W2Fjcm9ueW1dLCAwKTtcbiAgICByZXR1cm4gdG90YWwudG9GaXhlZCgyKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxMaXN0PlxuICAgICAge2Rpc3BsYXllZFVzZUNhc2VzLm1hcCgodXNlQ2FzZSwgaW5kZXgpID0+IChcbiAgICAgICAgPFVzZUNhc2Uga2V5PXtgdXNlX2Nhc2VfJHtpbmRleH1gfT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEljb24gdXNlX2Nhc2U9e3VzZUNhc2UuaWNvbn0gY2xhc3NOYW1lPVwidXNlLWNhc2UtaWNvblwiIC8+XG4gICAgICAgICAgICA8VHJhbnNcbiAgICAgICAgICAgICAgaTE4bktleT17YHBvbGx1dGlvbl9yaXNrX2Fzc2Vzc21lbnQudXNlX2Nhc2VzLiR7dXNlQ2FzZS5uYW1lfWB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29zdFwiPlxuICAgICAgICAgICAgPHNwYW4+KyB7Y2FsY0Nvc3QodXNlQ2FzZSl9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicGVyLXllYXJcIj57Jy9QZXIgeWVhcid9PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1VzZUNhc2U+XG4gICAgICApKX1cbiAgICA8L0xpc3Q+XG4gICk7XG59O1xuXG5jb25zdCBMaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxNXB4O1xuICBhbGlnbi1pdGVtczogc3RyZWNoO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgVXNlQ2FzZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNkQ2QTZCO1xuICB3aWR0aDogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBzY3JvbGw7XG5cbiAgLnVzZS1jYXNlLWljb24ge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgfVxuXG4gIHN2ZyBwYXRoIHtcbiAgICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBlci15ZWFyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIC5jb3N0IHtcbiAgICBiYWNrZ3JvdW5kOiAjMjJDNTVFMzM7XG4gICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4g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
@@ -0,0 +1,18 @@
1
+ <svg width="187" height="180" viewBox="0 0 187 180" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g filter="url(#filter0_d_6145_6222)">
3
+ <rect x="91" y="84" width="80" height="80" rx="40" fill="white" shape-rendering="crispEdges"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M123.97 109.403C123.663 109.139 123.271 108.996 122.866 109L122.85 109V109H117.639C117.442 109.025 117.252 109.085 117.076 109.178C116.882 109.28 116.71 109.419 116.57 109.588C116.429 109.757 116.324 109.952 116.259 110.161C116.196 110.368 116.173 110.584 116.192 110.8C116.729 115.702 118.415 120.409 121.112 124.538L121.123 124.555L121.123 124.556C123.552 128.376 126.791 131.615 130.611 134.043L130.624 134.051L130.623 134.051C134.708 136.7 139.354 138.36 144.191 138.9H144.417C144.859 138.9 145.283 138.724 145.595 138.412C145.908 138.099 146.083 137.675 146.083 137.233V132.72C146.025 132.543 145.996 132.353 146.001 132.158C146.011 131.75 145.87 131.352 145.606 131.04C145.343 130.729 144.975 130.526 144.572 130.467C142.852 130.238 141.163 129.817 139.536 129.212L139.53 129.21C139.232 129.098 138.908 129.073 138.596 129.14C138.286 129.206 138.001 129.36 137.775 129.582L135.662 131.695C135.131 132.225 134.312 132.336 133.66 131.965C129.226 129.444 125.555 125.774 123.035 121.34C122.664 120.688 122.774 119.868 123.305 119.338L125.418 117.225C125.64 116.999 125.794 116.714 125.86 116.404C125.926 116.092 125.902 115.768 125.79 115.47L125.788 115.464L125.788 115.464C125.183 113.837 124.762 112.148 124.532 110.428C124.475 110.029 124.275 109.665 123.97 109.403ZM122.843 105.666C124.053 105.657 125.225 106.086 126.143 106.875C127.063 107.666 127.664 108.765 127.834 109.967L127.835 109.98L127.835 109.98C128.032 111.455 128.393 112.905 128.911 114.3C129.247 115.194 129.319 116.165 129.12 117.099C128.92 118.034 128.457 118.892 127.785 119.572L127.779 119.578L127.779 119.578L126.583 120.773C128.543 123.848 131.152 126.457 134.226 128.416L135.421 127.221L135.428 127.215C136.108 126.543 136.966 126.079 137.901 125.88C138.835 125.681 139.806 125.753 140.7 126.088C142.095 126.607 143.545 126.968 145.02 127.164L145.033 127.166L145.033 127.166C146.247 127.337 147.356 127.949 148.149 128.885C148.815 129.67 149.218 130.638 149.313 131.654C149.38 131.836 149.417 132.032 149.417 132.233V137.233C149.417 138.559 148.89 139.831 147.952 140.769C147.015 141.706 145.743 142.233 144.417 142.233H144.1C144.04 142.233 143.98 142.23 143.92 142.223C138.535 141.638 133.362 139.799 128.816 136.852C124.589 134.164 121.005 130.579 118.316 126.353C115.332 121.782 113.469 116.573 112.876 111.147L112.874 111.123C112.812 110.468 112.88 109.807 113.074 109.178C113.268 108.549 113.585 107.965 114.005 107.459C114.425 106.952 114.942 106.534 115.524 106.228C116.106 105.921 116.744 105.733 117.399 105.673C117.449 105.669 117.5 105.666 117.55 105.666H122.843ZM132.759 107.158C132.856 106.243 133.676 105.579 134.591 105.676C138.366 106.073 141.892 107.747 144.586 110.421C147.279 113.095 148.98 116.608 149.406 120.379C149.509 121.294 148.852 122.119 147.937 122.223C147.022 122.326 146.197 121.668 146.094 120.754C145.753 117.736 144.392 114.926 142.237 112.787C140.082 110.648 137.262 109.309 134.242 108.991C133.327 108.894 132.663 108.074 132.759 107.158ZM132.781 113.677C132.96 112.774 133.836 112.186 134.739 112.365C136.706 112.752 138.511 113.723 139.92 115.149C141.329 116.576 142.276 118.393 142.639 120.365C142.806 121.27 142.207 122.139 141.302 122.306C140.397 122.472 139.528 121.874 139.361 120.968C139.119 119.654 138.487 118.442 137.548 117.491C136.609 116.54 135.406 115.894 134.094 115.635C133.191 115.457 132.603 114.58 132.781 113.677Z" fill="#1A1919"/>
5
+ </g>
6
+ <defs>
7
+ <filter id="filter0_d_6145_6222" x="0.0909042" y="0.363632" width="261.818" height="261.818" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
8
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
9
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
10
+ <feOffset dy="7.27273"/>
11
+ <feGaussianBlur stdDeviation="45.4545"/>
12
+ <feComposite in2="hardAlpha" operator="out"/>
13
+ <feColorMatrix type="matrix" values="0 0 0 0 0.941176 0 0 0 0 0.0196078 0 0 0 0 0.403922 0 0 0 0.3 0"/>
14
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_6145_6222"/>
15
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_6145_6222" result="shape"/>
16
+ </filter>
17
+ </defs>
18
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="49" height="48" viewBox="0 0 49 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.848389" width="48" height="48" rx="24" fill="white"/>
3
+ <path d="M17.0984 17.61C19.1184 20.2 22.8484 25 22.8484 25V31C22.8484 31.55 23.2984 32 23.8484 32H25.8484C26.3984 32 26.8484 31.55 26.8484 31V25C26.8484 25 30.5684 20.2 32.5884 17.61C33.0984 16.95 32.6284 16 31.7984 16H17.8884C17.0584 16 16.5884 16.95 17.0984 17.61Z" fill="" stroke="black" stroke-width="1.5"/>
4
+ <circle cx="7" cy="7" r="6" fill="" />
5
+ </svg>
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ require("bootstrap/dist/css/bootstrap.min.css");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _reactRedux = require("react-redux");
16
+ var _actions = require("store/context/actions");
17
+ var _Analytics = require("../../utilities/Analytics");
18
+ var _Map = require("./Map");
19
+ var _useNavContext2 = require("../../hooks/useNavContext");
20
+ var _KandoBottomSheet = _interopRequireDefault(require("../../ui-kit/KandoBottomSheet/KandoBottomSheet"));
21
+ var _urls = require("../../utilities/urls");
22
+ require("./index.scss");
23
+ var _TotalSavings = require("./TotalSavings");
24
+ var _FilterBehaviors = require("./FilterBehaviors");
25
+ var _FactoryDetails = require("./FactoryDetails");
26
+ var _FilterButton = _interopRequireDefault(require("./FilterButton"));
27
+ var _use_cases = _interopRequireDefault(require("./use_cases.json"));
28
+ 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); }
29
+ 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; }
30
+ var PollutionRiskAssessment = function PollutionRiskAssessment() {
31
+ var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
32
+ return state.global_data.waterAuthorityName;
33
+ });
34
+ var waterAuthorityId = (0, _reactRedux.useSelector)(function (state) {
35
+ return state.global_data.waterAuthorityId;
36
+ });
37
+ var _useState = (0, _react.useState)(),
38
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
39
+ polygonData = _useState2[0],
40
+ setPolygonData = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(),
42
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
43
+ pointsData = _useState4[0],
44
+ setPointsData = _useState4[1];
45
+ var _useNavContext = (0, _useNavContext2.useNavContext)(),
46
+ isRtl = _useNavContext.isRtl;
47
+ var _useState5 = (0, _react.useState)('total_savings'),
48
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
49
+ shownContent = _useState6[0],
50
+ setShownContent = _useState6[1];
51
+ var _useState7 = (0, _react.useState)([]),
52
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
53
+ visiblePoints = _useState8[0],
54
+ setVisiblePoints = _useState8[1];
55
+ var _useState9 = (0, _react.useState)(''),
56
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
57
+ useCasesFilter = _useState10[0],
58
+ setUseCasesFilter = _useState10[1];
59
+ var _useState11 = (0, _react.useState)(null),
60
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
61
+ mapBounds = _useState12[0],
62
+ setMapBounds = _useState12[1];
63
+ var _useState13 = (0, _react.useState)(),
64
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
65
+ clickedPointId = _useState14[0],
66
+ setClickedPointId = _useState14[1];
67
+ var handleDismiss = function handleDismiss() {
68
+ setShownContent('total_savings');
69
+ };
70
+ var dispatch = (0, _reactRedux.useDispatch)();
71
+ var fetchData = /*#__PURE__*/function () {
72
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, setData) {
73
+ var response, result;
74
+ return _regenerator.default.wrap(function _callee$(_context) {
75
+ while (1) {
76
+ switch (_context.prev = _context.next) {
77
+ case 0:
78
+ _context.prev = 0;
79
+ _context.next = 3;
80
+ return fetch(url);
81
+ case 3:
82
+ response = _context.sent;
83
+ _context.next = 6;
84
+ return response.json();
85
+ case 6:
86
+ result = _context.sent;
87
+ setData(result);
88
+ _context.next = 13;
89
+ break;
90
+ case 10:
91
+ _context.prev = 10;
92
+ _context.t0 = _context["catch"](0);
93
+ console.error("Failed to fetch data from ".concat(url, ":"), _context.t0);
94
+ case 13:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }
99
+ }, _callee, null, [[0, 10]]);
100
+ }));
101
+ return function fetchData(_x, _x2) {
102
+ return _ref.apply(this, arguments);
103
+ };
104
+ }();
105
+ (0, _react.useEffect)(function () {
106
+ if (waterAuthorityId) {
107
+ var currentGeoAreaUrl = (0, _urls.urls)({
108
+ waterAuthorityId: waterAuthorityId
109
+ }).PollutionRiskAssessment.currentGeoArea;
110
+ fetchData(currentGeoAreaUrl, setPolygonData);
111
+ (0, _Analytics.analyticsTrack)('Viewed Pollution Risk Assessment Page', {
112
+ utility_name: waterAuthorityName
113
+ });
114
+ dispatch((0, _actions.updateNavContext)({
115
+ name: 'pollution_risk_assessment'
116
+ }));
117
+ }
118
+ }, [waterAuthorityId]);
119
+ var getPolygonGeoJSON = function getPolygonGeoJSON(polygonData) {
120
+ try {
121
+ return (polygonData === null || polygonData === void 0 ? void 0 : polygonData.polygon) ? JSON.parse(polygonData.polygon) : [];
122
+ } catch (error) {
123
+ console.error('Failed to parse polygon data:', error);
124
+ return [];
125
+ }
126
+ };
127
+ (0, _react.useEffect)(function () {
128
+ if (!polygonData) return;
129
+ var allPointsUrl = (0, _urls.urls)({
130
+ waterAuthorityId: waterAuthorityId,
131
+ id: polygonData === null || polygonData === void 0 ? void 0 : polygonData.id
132
+ }).PollutionRiskAssessment.allPoints;
133
+ fetchData(allPointsUrl, setPointsData);
134
+ }, [polygonData]);
135
+ var useCase = _use_cases.default.find(function (useCase) {
136
+ return useCase.id === useCasesFilter;
137
+ });
138
+ var getBottomSheetConfig = function getBottomSheetConfig() {
139
+ switch (shownContent) {
140
+ case 'total_savings':
141
+ return {
142
+ content: /*#__PURE__*/_react.default.createElement(_TotalSavings.TotalSavings, {
143
+ points: visiblePoints,
144
+ filteredUseCase: useCase
145
+ }),
146
+ snapPoints: function snapPoints(_ref2) {
147
+ var maxHeight = _ref2.maxHeight;
148
+ return [78, maxHeight - 100];
149
+ },
150
+ backgroundColor: '#000'
151
+ };
152
+ case 'filter_behaviors':
153
+ return {
154
+ content: /*#__PURE__*/_react.default.createElement(_FilterBehaviors.FilterBehaviors, {
155
+ selectedItem: useCasesFilter,
156
+ handleChange: setUseCasesFilter
157
+ }),
158
+ snapPoints: function snapPoints(_ref3) {
159
+ var maxHeight = _ref3.maxHeight;
160
+ return [maxHeight - 300, maxHeight - 300];
161
+ },
162
+ backgroundColor: '#fff'
163
+ };
164
+ case 'factory_details':
165
+ return {
166
+ content: /*#__PURE__*/_react.default.createElement(_FactoryDetails.FactoryDetails, {
167
+ point_id: clickedPointId
168
+ }),
169
+ snapPoints: function snapPoints(_ref4) {
170
+ var maxHeight = _ref4.maxHeight;
171
+ return [maxHeight - 500, maxHeight - 500];
172
+ },
173
+ backgroundColor: '#fff'
174
+ };
175
+ default:
176
+ return {
177
+ content: null,
178
+ snapPoints: function snapPoints() {
179
+ return [0];
180
+ },
181
+ backgroundColor: '#000'
182
+ };
183
+ }
184
+ };
185
+ var _useMemo = (0, _react.useMemo)(getBottomSheetConfig, [shownContent, useCasesFilter, visiblePoints, clickedPointId]),
186
+ content = _useMemo.content,
187
+ snapPoints = _useMemo.snapPoints,
188
+ backgroundColor = _useMemo.backgroundColor;
189
+ var bottomSheet = (0, _react.useMemo)(function () {
190
+ return /*#__PURE__*/_react.default.createElement(_KandoBottomSheet.default, {
191
+ backgroundColor: backgroundColor,
192
+ snapPoints: snapPoints,
193
+ onDismiss: handleDismiss,
194
+ isOpen: true
195
+ }, content);
196
+ }, [visiblePoints, shownContent, clickedPointId]);
197
+ (0, _react.useEffect)(function () {
198
+ if (!mapBounds || !pointsData) return;
199
+ var filteredPoints = pointsData.filter(function (point) {
200
+ return point.lat >= mapBounds.getSouthWest().lat && point.lat <= mapBounds.getNorthEast().lat && point.lng >= mapBounds.getSouthWest().lng && point.lng <= mapBounds.getNorthEast().lng;
201
+ });
202
+ setVisiblePoints(filteredPoints);
203
+ }, [mapBounds, pointsData]);
204
+ var handleBoundsChange = (0, _react.useCallback)(function (bounds) {
205
+ setMapBounds(bounds);
206
+ }, []);
207
+ var filterButtonClick = function filterButtonClick() {
208
+ setShownContent(function (prevContent) {
209
+ return prevContent === 'filter_behaviors' ? 'total_savings' : 'filter_behaviors';
210
+ });
211
+ };
212
+ var filterButtonState = (0, _react.useMemo)(function () {
213
+ if (shownContent === 'filter_behaviors') {
214
+ return 'filled';
215
+ }
216
+ return useCasesFilter !== '' ? 'filled-red' : '';
217
+ }, [shownContent, useCasesFilter]);
218
+ var markerClicked = function markerClicked(id) {
219
+ setClickedPointId(id);
220
+ if (shownContent !== 'factory_details') {
221
+ setShownContent('factory_details');
222
+ }
223
+ };
224
+ if (!pointsData || !polygonData) return null;
225
+ return /*#__PURE__*/_react.default.createElement("div", {
226
+ className: "app-wrapper"
227
+ }, /*#__PURE__*/_react.default.createElement(MapTableContainer, {
228
+ isRtl: isRtl
229
+ }, /*#__PURE__*/_react.default.createElement(_Map.Map, {
230
+ filteredUseCaseCode: (useCase ? useCase.code : 'to') + 's',
231
+ points: pointsData,
232
+ polygon: getPolygonGeoJSON(polygonData),
233
+ onBoundsChange: handleBoundsChange,
234
+ onMarkerClick: markerClicked
235
+ })), bottomSheet, /*#__PURE__*/_react.default.createElement(_FilterButton.default, {
236
+ buttonState: filterButtonState,
237
+ onClick: filterButtonClick
238
+ }));
239
+ };
240
+ var _default = PollutionRiskAssessment;
241
+ exports.default = _default;
242
+ var MapTableContainer = _styledComponents.default.div.withConfig({
243
+ displayName: "PollutionRiskAssessment__MapTableContainer",
244
+ componentId: "sc-peb1i1-0"
245
+ })(["position:fixed;top:65px;height:calc(100vh - 20px);width:100vw;#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}}"]);
246
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0FuYWx5dGljcyIsIl9NYXAiLCJfdXNlTmF2Q29udGV4dDIiLCJfS2FuZG9Cb3R0b21TaGVldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXJscyIsIl9Ub3RhbFNhdmluZ3MiLCJfRmlsdGVyQmVoYXZpb3JzIiwiX0ZhY3RvcnlEZXRhaWxzIiwiX0ZpbHRlckJ1dHRvbiIsIl91c2VfY2FzZXMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50Iiwid2F0ZXJBdXRob3JpdHlOYW1lIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvbHlnb25EYXRhIiwic2V0UG9seWdvbkRhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvaW50c0RhdGEiLCJzZXRQb2ludHNEYXRhIiwiX3VzZU5hdkNvbnRleHQiLCJ1c2VOYXZDb250ZXh0IiwiaXNSdGwiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3duQ29udGVudCIsInNldFNob3duQ29udGVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidmlzaWJsZVBvaW50cyIsInNldFZpc2libGVQb2ludHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ1c2VDYXNlc0ZpbHRlciIsInNldFVzZUNhc2VzRmlsdGVyIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjbGlja2VkUG9pbnRJZCIsInNldENsaWNrZWRQb2ludElkIiwiaGFuZGxlRGlzbWlzcyIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJmZXRjaERhdGEiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1cmwiLCJzZXREYXRhIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJzZW50IiwianNvbiIsInQwIiwiY29uc29sZSIsImVycm9yIiwiY29uY2F0Iiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VFZmZlY3QiLCJjdXJyZW50R2VvQXJlYVVybCIsInVybHMiLCJjdXJyZW50R2VvQXJlYSIsImFuYWx5dGljc1RyYWNrIiwidXRpbGl0eV9uYW1lIiwidXBkYXRlTmF2Q29udGV4dCIsIm5hbWUiLCJnZXRQb2x5Z29uR2VvSlNPTiIsInBvbHlnb24iLCJKU09OIiwicGFyc2UiLCJhbGxQb2ludHNVcmwiLCJpZCIsImFsbFBvaW50cyIsInVzZUNhc2UiLCJ1c2VDYXNlcyIsImZpbmQiLCJnZXRCb3R0b21TaGVldENvbmZpZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiVG90YWxTYXZpbmdzIiwicG9pbnRzIiwiZmlsdGVyZWRVc2VDYXNlIiwic25hcFBvaW50cyIsIl9yZWYyIiwibWF4SGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiRmlsdGVyQmVoYXZpb3JzIiwic2VsZWN0ZWRJdGVtIiwiaGFuZGxlQ2hhbmdlIiwiX3JlZjMiLCJGYWN0b3J5RGV0YWlscyIsInBvaW50X2lkIiwiX3JlZjQiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJib3R0b21TaGVldCIsIm9uRGlzbWlzcyIsImlzT3BlbiIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwicG9pbnQiLCJsYXQiLCJnZXRTb3V0aFdlc3QiLCJnZXROb3J0aEVhc3QiLCJsbmciLCJoYW5kbGVCb3VuZHNDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJvdW5kcyIsImZpbHRlckJ1dHRvbkNsaWNrIiwicHJldkNvbnRlbnQiLCJmaWx0ZXJCdXR0b25TdGF0ZSIsIm1hcmtlckNsaWNrZWQiLCJjbGFzc05hbWUiLCJNYXBUYWJsZUNvbnRhaW5lciIsIk1hcCIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJjb2RlIiwib25Cb3VuZHNDaGFuZ2UiLCJvbk1hcmtlckNsaWNrIiwiYnV0dG9uU3RhdGUiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnYm9vdHN0cmFwL2Rpc3QvY3NzL2Jvb3RzdHJhcC5taW4uY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVwZGF0ZU5hdkNvbnRleHQgfSBmcm9tICdzcmMvc3RvcmUvY29udGV4dC9hY3Rpb25zJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICcuL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VOYXZDb250ZXh0JztcbmltcG9ydCBLYW5kb0JvdHRvbVNoZWV0IGZyb20gJy4uLy4uL3VpLWtpdC9LYW5kb0JvdHRvbVNoZWV0L0thbmRvQm90dG9tU2hlZXQnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IElHZW9Qb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lHZW9Qb2ludCc7XG5pbXBvcnQgTCwgeyBHZW9KU09OIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJy4vaW5kZXguc2Nzcyc7XG5pbXBvcnQgeyBUb3RhbFNhdmluZ3MgfSBmcm9tICcuL1RvdGFsU2F2aW5ncyc7XG5pbXBvcnQgeyBGaWx0ZXJCZWhhdmlvcnMgfSBmcm9tICcuL0ZpbHRlckJlaGF2aW9ycyc7XG5pbXBvcnQgeyBGYWN0b3J5RGV0YWlscyB9IGZyb20gJy4vRmFjdG9yeURldGFpbHMnO1xuaW1wb3J0IEZpbHRlckJ1dHRvbiBmcm9tICcuL0ZpbHRlckJ1dHRvbic7XG5pbXBvcnQgdXNlQ2FzZXMgZnJvbSAnLi91c2VfY2FzZXMuanNvbic7XG5cbmNvbnN0IFBvbGx1dGlvblJpc2tBc3Nlc3NtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IFtwb2x5Z29uRGF0YSwgc2V0UG9seWdvbkRhdGFdID0gdXNlU3RhdGU8R2VvSlNPTj4oKTtcbiAgY29uc3QgW3BvaW50c0RhdGEsIHNldFBvaW50c0RhdGFdID0gdXNlU3RhdGU8SUdlb1BvaW50W10+KCk7XG4gIGNvbnN0IHsgaXNSdGwgfSA9IHVzZU5hdkNvbnRleHQoKTtcbiAgY29uc3QgW3Nob3duQ29udGVudCwgc2V0U2hvd25Db250ZW50XSA9IHVzZVN0YXRlKCd0b3RhbF9zYXZpbmdzJyk7XG4gIGNvbnN0IFt2aXNpYmxlUG9pbnRzLCBzZXRWaXNpYmxlUG9pbnRzXSA9IHVzZVN0YXRlPElHZW9Qb2ludFtdPihbXSk7XG4gIGNvbnN0IFt1c2VDYXNlc0ZpbHRlciwgc2V0VXNlQ2FzZXNGaWx0ZXJdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbbWFwQm91bmRzLCBzZXRNYXBCb3VuZHNdID0gdXNlU3RhdGU8TC5MYXRMbmdCb3VuZHMgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2NsaWNrZWRQb2ludElkLCBzZXRDbGlja2VkUG9pbnRJZF0gPSB1c2VTdGF0ZTxudW1iZXI+KCk7XG5cbiAgY29uc3QgaGFuZGxlRGlzbWlzcyA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoJ3RvdGFsX3NhdmluZ3MnKTtcbiAgfTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jIDxULD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgc2V0RGF0YTogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VD4+LFxuICApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgc2V0RGF0YShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZGF0YSBmcm9tICR7dXJsfTpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRHZW9BcmVhVXJsID0gdXJscyh7IHdhdGVyQXV0aG9yaXR5SWQgfSlcbiAgICAgICAgLlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50LmN1cnJlbnRHZW9BcmVhO1xuICAgICAgZmV0Y2hEYXRhKGN1cnJlbnRHZW9BcmVhVXJsLCBzZXRQb2x5Z29uRGF0YSk7XG5cbiAgICAgIGFuYWx5dGljc1RyYWNrKCdWaWV3ZWQgUG9sbHV0aW9uIFJpc2sgQXNzZXNzbWVudCBQYWdlJywge1xuICAgICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICAgIH0pO1xuICAgICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICdwb2xsdXRpb25fcmlza19hc3Nlc3NtZW50JyB9KSk7XG4gICAgfVxuICB9LCBbd2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIGNvbnN0IGdldFBvbHlnb25HZW9KU09OID0gKHBvbHlnb25EYXRhKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwb2x5Z29uRGF0YT8ucG9seWdvbiA/IEpTT04ucGFyc2UocG9seWdvbkRhdGEucG9seWdvbikgOiBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHBvbHlnb24gZGF0YTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb2x5Z29uRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYWxsUG9pbnRzVXJsID0gdXJscyh7XG4gICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgaWQ6IHBvbHlnb25EYXRhPy5pZCxcbiAgICB9KS5Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC5hbGxQb2ludHM7XG5cbiAgICBmZXRjaERhdGEoYWxsUG9pbnRzVXJsLCBzZXRQb2ludHNEYXRhKTtcbiAgfSwgW3BvbHlnb25EYXRhXSk7XG5cbiAgY29uc3QgdXNlQ2FzZSA9IHVzZUNhc2VzLmZpbmQoKHVzZUNhc2UpID0+IHVzZUNhc2UuaWQgPT09IHVzZUNhc2VzRmlsdGVyKTtcblxuICBjb25zdCBnZXRCb3R0b21TaGVldENvbmZpZyA9ICgpID0+IHtcbiAgICBzd2l0Y2ggKHNob3duQ29udGVudCkge1xuICAgICAgY2FzZSAndG90YWxfc2F2aW5ncyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogKFxuICAgICAgICAgICAgPFRvdGFsU2F2aW5ncyBwb2ludHM9e3Zpc2libGVQb2ludHN9IGZpbHRlcmVkVXNlQ2FzZT17dXNlQ2FzZX0gLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIDc4LFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMTAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwMCcsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmaWx0ZXJfYmVoYXZpb3JzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiAoXG4gICAgICAgICAgICA8RmlsdGVyQmVoYXZpb3JzXG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbT17dXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17c2V0VXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgc25hcFBvaW50czogKHsgbWF4SGVpZ2h0IH06IHsgbWF4SGVpZ2h0OiBudW1iZXIgfSkgPT4gW1xuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmYWN0b3J5X2RldGFpbHMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IDxGYWN0b3J5RGV0YWlscyBwb2ludF9pZD17Y2xpY2tlZFBvaW50SWR9IC8+LFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICgpID0+IFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMDAwJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgeyBjb250ZW50LCBzbmFwUG9pbnRzLCBiYWNrZ3JvdW5kQ29sb3IgfSA9IHVzZU1lbW8oXG4gICAgZ2V0Qm90dG9tU2hlZXRDb25maWcsXG4gICAgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXIsIHZpc2libGVQb2ludHMsIGNsaWNrZWRQb2ludElkXSxcbiAgKTtcblxuICBjb25zdCBib3R0b21TaGVldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8S2FuZG9Cb3R0b21TaGVldFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JhY2tncm91bmRDb2xvcn1cbiAgICAgICAgc25hcFBvaW50cz17c25hcFBvaW50c31cbiAgICAgICAgb25EaXNtaXNzPXtoYW5kbGVEaXNtaXNzfVxuICAgICAgICBpc09wZW49e3RydWV9XG4gICAgICA+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9LYW5kb0JvdHRvbVNoZWV0PlxuICAgICk7XG4gIH0sIFt2aXNpYmxlUG9pbnRzLCBzaG93bkNvbnRlbnQsIGNsaWNrZWRQb2ludElkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcEJvdW5kcyB8fCAhcG9pbnRzRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSBwb2ludHNEYXRhLmZpbHRlcigocG9pbnQpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHBvaW50LmxhdCA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxhdCA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxuZyA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubG5nICYmXG4gICAgICAgIHBvaW50LmxuZyA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubG5nXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgc2V0VmlzaWJsZVBvaW50cyhmaWx0ZXJlZFBvaW50cyk7XG4gIH0sIFttYXBCb3VuZHMsIHBvaW50c0RhdGFdKTtcblxuICBjb25zdCBoYW5kbGVCb3VuZHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygoYm91bmRzKSA9PiB7XG4gICAgc2V0TWFwQm91bmRzKGJvdW5kcyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBmaWx0ZXJCdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoKHByZXZDb250ZW50KSA9PlxuICAgICAgcHJldkNvbnRlbnQgPT09ICdmaWx0ZXJfYmVoYXZpb3JzJyA/ICd0b3RhbF9zYXZpbmdzJyA6ICdmaWx0ZXJfYmVoYXZpb3JzJyxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNob3duQ29udGVudCA9PT0gJ2ZpbHRlcl9iZWhhdmlvcnMnKSB7XG4gICAgICByZXR1cm4gJ2ZpbGxlZCc7XG4gICAgfVxuICAgIHJldHVybiB1c2VDYXNlc0ZpbHRlciAhPT0gJycgPyAnZmlsbGVkLXJlZCcgOiAnJztcbiAgfSwgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXJdKTtcblxuICBjb25zdCBtYXJrZXJDbGlja2VkID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBzZXRDbGlja2VkUG9pbnRJZChpZCk7XG4gICAgaWYgKHNob3duQ29udGVudCAhPT0gJ2ZhY3RvcnlfZGV0YWlscycpIHtcbiAgICAgIHNldFNob3duQ29udGVudCgnZmFjdG9yeV9kZXRhaWxzJyk7XG4gICAgfVxuICB9O1xuXG4gIGlmICghcG9pbnRzRGF0YSB8fCAhcG9seWdvbkRhdGEpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhcHAtd3JhcHBlclwiPlxuICAgICAgPE1hcFRhYmxlQ29udGFpbmVyIGlzUnRsPXtpc1J0bH0+XG4gICAgICAgIDxNYXBcbiAgICAgICAgICBmaWx0ZXJlZFVzZUNhc2VDb2RlPXsodXNlQ2FzZSA/IHVzZUNhc2UuY29kZSA6ICd0bycpICsgJ3MnfVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzRGF0YX1cbiAgICAgICAgICBwb2x5Z29uPXtnZXRQb2x5Z29uR2VvSlNPTihwb2x5Z29uRGF0YSl9XG4gICAgICAgICAgb25Cb3VuZHNDaGFuZ2U9e2hhbmRsZUJvdW5kc0NoYW5nZX1cbiAgICAgICAgICBvbk1hcmtlckNsaWNrPXttYXJrZXJDbGlja2VkfVxuICAgICAgICAvPlxuICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgIHtib3R0b21TaGVldH1cbiAgICAgIDxGaWx0ZXJCdXR0b25cbiAgICAgICAgYnV0dG9uU3RhdGU9e2ZpbHRlckJ1dHRvblN0YXRlfVxuICAgICAgICBvbkNsaWNrPXtmaWx0ZXJCdXR0b25DbGlja31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb2xsdXRpb25SaXNrQXNzZXNzbWVudDtcblxuY29uc3QgTWFwVGFibGVDb250YWluZXIgPSBzdHlsZWQuZGl2PHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NXB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTtcbiAgd2lkdGg6IDEwMHZ3O1xuXG4gICNtYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICosXG4gICAgKjpmb2N1cyxcbiAgICAqOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLGVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFHQUEsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGdCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFMLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBZSxVQUFBLEdBQUFOLHNCQUFBLENBQUFULE9BQUE7QUFBd0MsU0FBQWdCLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFFeEMsSUFBTVcsdUJBQWlDLEdBQUcsU0FBcENBLHVCQUFpQ0EsQ0FBQSxFQUFTO0VBQzlDLElBQU1DLGtCQUFrQixHQUFHLElBQUFDLHVCQUFXLEVBQ3BDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsQ0FBQ0gsa0JBQWtCO0VBQUEsQ0FDakQsQ0FBQztFQUNELElBQU1JLGdCQUFnQixHQUFHLElBQUFILHVCQUFXLEVBQ2xDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsZ0JBQWdCO0VBQUEsQ0FDL0MsQ0FBQztFQUNELElBQUFDLFNBQUEsR0FBc0MsSUFBQUMsZUFBUSxFQUFVLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUF4QixPQUFBLEVBQUFxQixTQUFBO0lBQWxESSxXQUFXLEdBQUFGLFVBQUE7SUFBRUcsY0FBYyxHQUFBSCxVQUFBO0VBQ2xDLElBQUFJLFVBQUEsR0FBb0MsSUFBQUwsZUFBUSxFQUFjLENBQUM7SUFBQU0sVUFBQSxPQUFBSixlQUFBLENBQUF4QixPQUFBLEVBQUEyQixVQUFBO0lBQXBERSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFHLGNBQUEsR0FBa0IsSUFBQUMsNkJBQWEsRUFBQyxDQUFDO0lBQXpCQyxLQUFLLEdBQUFGLGNBQUEsQ0FBTEUsS0FBSztFQUNiLElBQUFDLFVBQUEsR0FBd0MsSUFBQVosZUFBUSxFQUFDLGVBQWUsQ0FBQztJQUFBYSxVQUFBLE9BQUFYLGVBQUEsQ0FBQXhCLE9BQUEsRUFBQWtDLFVBQUE7SUFBMURFLFlBQVksR0FBQUQsVUFBQTtJQUFFRSxlQUFlLEdBQUFGLFVBQUE7RUFDcEMsSUFBQUcsVUFBQSxHQUEwQyxJQUFBaEIsZUFBUSxFQUFjLEVBQUUsQ0FBQztJQUFBaUIsVUFBQSxPQUFBZixlQUFBLENBQUF4QixPQUFBLEVBQUFzQyxVQUFBO0lBQTVERSxhQUFhLEdBQUFELFVBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFVBQUE7RUFDdEMsSUFBQUcsVUFBQSxHQUE0QyxJQUFBcEIsZUFBUSxFQUFDLEVBQUUsQ0FBQztJQUFBcUIsV0FBQSxPQUFBbkIsZUFBQSxDQUFBeEIsT0FBQSxFQUFBMEMsVUFBQTtJQUFqREUsY0FBYyxHQUFBRCxXQUFBO0lBQUVFLGlCQUFpQixHQUFBRixXQUFBO0VBQ3hDLElBQUFHLFdBQUEsR0FBa0MsSUFBQXhCLGVBQVEsRUFBd0IsSUFBSSxDQUFDO0lBQUF5QixXQUFBLE9BQUF2QixlQUFBLENBQUF4QixPQUFBLEVBQUE4QyxXQUFBO0lBQWhFRSxTQUFTLEdBQUFELFdBQUE7SUFBRUUsWUFBWSxHQUFBRixXQUFBO0VBQzlCLElBQUFHLFdBQUEsR0FBNEMsSUFBQTVCLGVBQVEsRUFBUyxDQUFDO0lBQUE2QixXQUFBLE9BQUEzQixlQUFBLENBQUF4QixPQUFBLEVBQUFrRCxXQUFBO0lBQXZERSxjQUFjLEdBQUFELFdBQUE7SUFBRUUsaUJBQWlCLEdBQUFGLFdBQUE7RUFFeEMsSUFBTUcsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7SUFDMUJqQixlQUFlLENBQUMsZUFBZSxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNa0IsUUFBUSxHQUFHLElBQUFDLHVCQUFXLEVBQUMsQ0FBQztFQUM5QixJQUFNQyxTQUFTO0lBQUEsSUFBQUMsSUFBQSxPQUFBQyxrQkFBQSxDQUFBM0QsT0FBQSxnQkFBQTRELFlBQUEsQ0FBQTVELE9BQUEsQ0FBQTZELElBQUEsQ0FBRyxTQUFBQyxRQUNoQkMsR0FBVyxFQUNYQyxPQUFnRDtNQUFBLElBQUFDLFFBQUEsRUFBQUMsTUFBQTtNQUFBLE9BQUFOLFlBQUEsQ0FBQTVELE9BQUEsQ0FBQW1FLElBQUEsVUFBQUMsU0FBQUMsUUFBQTtRQUFBO1VBQUEsUUFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFBO2NBQUFGLFFBQUEsQ0FBQUMsSUFBQTtjQUFBRCxRQUFBLENBQUFFLElBQUE7Y0FBQSxPQUd2QkMsS0FBSyxDQUFDVCxHQUFHLENBQUM7WUFBQTtjQUEzQkUsUUFBUSxHQUFBSSxRQUFBLENBQUFJLElBQUE7Y0FBQUosUUFBQSxDQUFBRSxJQUFBO2NBQUEsT0FDT04sUUFBUSxDQUFDUyxJQUFJLENBQUMsQ0FBQztZQUFBO2NBQTlCUixNQUFNLEdBQUFHLFFBQUEsQ0FBQUksSUFBQTtjQUNaVCxPQUFPLENBQUNFLE1BQU0sQ0FBQztjQUFDRyxRQUFBLENBQUFFLElBQUE7Y0FBQTtZQUFBO2NBQUFGLFFBQUEsQ0FBQUMsSUFBQTtjQUFBRCxRQUFBLENBQUFNLEVBQUEsR0FBQU4sUUFBQTtjQUVoQk8sT0FBTyxDQUFDQyxLQUFLLDhCQUFBQyxNQUFBLENBQThCZixHQUFHLFFBQUFNLFFBQUEsQ0FBQU0sRUFBVSxDQUFDO1lBQUM7WUFBQTtjQUFBLE9BQUFOLFFBQUEsQ0FBQVUsSUFBQTtVQUFBO1FBQUE7TUFBQSxHQUFBakIsT0FBQTtJQUFBLENBRTdEO0lBQUEsZ0JBWEtMLFNBQVNBLENBQUF1QixFQUFBLEVBQUFDLEdBQUE7TUFBQSxPQUFBdkIsSUFBQSxDQUFBd0IsS0FBQSxPQUFBQyxTQUFBO0lBQUE7RUFBQSxHQVdkO0VBRUQsSUFBQUMsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSWhFLGdCQUFnQixFQUFFO01BQ3BCLElBQU1pRSxpQkFBaUIsR0FBRyxJQUFBQyxVQUFJLEVBQUM7UUFBRWxFLGdCQUFnQixFQUFoQkE7TUFBaUIsQ0FBQyxDQUFDLENBQ2pETCx1QkFBdUIsQ0FBQ3dFLGNBQWM7TUFDekM5QixTQUFTLENBQUM0QixpQkFBaUIsRUFBRTNELGNBQWMsQ0FBQztNQUU1QyxJQUFBOEQseUJBQWMsRUFBQyx1Q0FBdUMsRUFBRTtRQUN0REMsWUFBWSxFQUFFekU7TUFDaEIsQ0FBQyxDQUFDO01BQ0Z1QyxRQUFRLENBQUMsSUFBQW1DLHlCQUFnQixFQUFDO1FBQUVDLElBQUksRUFBRTtNQUE0QixDQUFDLENBQUMsQ0FBQztJQUNuRTtFQUNGLENBQUMsRUFBRSxDQUFDdkUsZ0JBQWdCLENBQUMsQ0FBQztFQUV0QixJQUFNd0UsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSW5FLFdBQVcsRUFBSztJQUN6QyxJQUFJO01BQ0YsT0FBTyxDQUFBQSxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRW9FLE9BQU8sSUFBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUN0RSxXQUFXLENBQUNvRSxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3BFLENBQUMsQ0FBQyxPQUFPaEIsS0FBSyxFQUFFO01BQ2RELE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLCtCQUErQixFQUFFQSxLQUFLLENBQUM7TUFDckQsT0FBTyxFQUFFO0lBQ1g7RUFDRixDQUFDO0VBRUQsSUFBQU8sZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDM0QsV0FBVyxFQUFFO0lBRWxCLElBQU11RSxZQUFZLEdBQUcsSUFBQVYsVUFBSSxFQUFDO01BQ3hCbEUsZ0JBQWdCLEVBQUVBLGdCQUFnQjtNQUNsQzZFLEVBQUUsRUFBRXhFLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFd0U7SUFDbkIsQ0FBQyxDQUFDLENBQUNsRix1QkFBdUIsQ0FBQ21GLFNBQVM7SUFFcEN6QyxTQUFTLENBQUN1QyxZQUFZLEVBQUVsRSxhQUFhLENBQUM7RUFDeEMsQ0FBQyxFQUFFLENBQUNMLFdBQVcsQ0FBQyxDQUFDO0VBRWpCLElBQU0wRSxPQUFPLEdBQUdDLGtCQUFRLENBQUNDLElBQUksQ0FBQyxVQUFDRixPQUFPO0lBQUEsT0FBS0EsT0FBTyxDQUFDRixFQUFFLEtBQUtyRCxjQUFjO0VBQUEsRUFBQztFQUV6RSxJQUFNMEQsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQSxFQUFTO0lBQ2pDLFFBQVFsRSxZQUFZO01BQ2xCLEtBQUssZUFBZTtRQUNsQixPQUFPO1VBQ0xtRSxPQUFPLGVBQ0w5SCxNQUFBLENBQUF1QixPQUFBLENBQUF3RyxhQUFBLENBQUNySCxhQUFBLENBQUFzSCxZQUFZO1lBQUNDLE1BQU0sRUFBRWxFLGFBQWM7WUFBQ21FLGVBQWUsRUFBRVI7VUFBUSxDQUFFLENBQ2pFO1VBQ0RTLFVBQVUsRUFBRSxTQUFBQSxXQUFBQyxLQUFBO1lBQUEsSUFBR0MsU0FBUyxHQUFBRCxLQUFBLENBQVRDLFNBQVM7WUFBQSxPQUE4QixDQUNwRCxFQUFFLEVBQ0ZBLFNBQVMsR0FBRyxHQUFHLENBQ2hCO1VBQUE7VUFDREMsZUFBZSxFQUFFO1FBQ25CLENBQUM7TUFDSCxLQUFLLGtCQUFrQjtRQUNyQixPQUFPO1VBQ0xSLE9BQU8sZUFDTDlILE1BQUEsQ0FBQXVCLE9BQUEsQ0FBQXdHLGFBQUEsQ0FBQ3BILGdCQUFBLENBQUE0SCxlQUFlO1lBQ2RDLFlBQVksRUFBRXJFLGNBQWU7WUFDN0JzRSxZQUFZLEVBQUVyRTtVQUFrQixDQUNqQyxDQUNGO1VBQ0QrRCxVQUFVLEVBQUUsU0FBQUEsV0FBQU8sS0FBQTtZQUFBLElBQUdMLFNBQVMsR0FBQUssS0FBQSxDQUFUTCxTQUFTO1lBQUEsT0FBOEIsQ0FDcERBLFNBQVMsR0FBRyxHQUFHLEVBQ2ZBLFNBQVMsR0FBRyxHQUFHLENBQ2hCO1VBQUE7VUFDREMsZUFBZSxFQUFFO1FBQ25CLENBQUM7TUFDSCxLQUFLLGlCQUFpQjtRQUNwQixPQUFPO1VBQ0xSLE9BQU8sZUFBRTlILE1BQUEsQ0FBQXVCLE9BQUEsQ0FBQXdHLGFBQUEsQ0FBQ25ILGVBQUEsQ0FBQStILGNBQWM7WUFBQ0MsUUFBUSxFQUFFakU7VUFBZSxDQUFFLENBQUM7VUFDckR3RCxVQUFVLEVBQUUsU0FBQUEsV0FBQVUsS0FBQTtZQUFBLElBQUdSLFNBQVMsR0FBQVEsS0FBQSxDQUFUUixTQUFTO1lBQUEsT0FBOEIsQ0FDcERBLFNBQVMsR0FBRyxHQUFHLEVBQ2ZBLFNBQVMsR0FBRyxHQUFHLENBQ2hCO1VBQUE7VUFDREMsZUFBZSxFQUFFO1FBQ25CLENBQUM7TUFDSDtRQUNFLE9BQU87VUFDTFIsT0FBTyxFQUFFLElBQUk7VUFDYkssVUFBVSxFQUFFLFNBQUFBLFdBQUE7WUFBQSxPQUFNLENBQUMsQ0FBQyxDQUFDO1VBQUE7VUFDckJHLGVBQWUsRUFBRTtRQUNuQixDQUFDO0lBQ0w7RUFDRixDQUFDO0VBRUQsSUFBQVEsUUFBQSxHQUFpRCxJQUFBQyxjQUFPLEVBQ3REbEIsb0JBQW9CLEVBQ3BCLENBQUNsRSxZQUFZLEVBQUVRLGNBQWMsRUFBRUosYUFBYSxFQUFFWSxjQUFjLENBQzlELENBQUM7SUFIT21ELE9BQU8sR0FBQWdCLFFBQUEsQ0FBUGhCLE9BQU87SUFBRUssVUFBVSxHQUFBVyxRQUFBLENBQVZYLFVBQVU7SUFBRUcsZUFBZSxHQUFBUSxRQUFBLENBQWZSLGVBQWU7RUFLNUMsSUFBTVUsV0FBVyxHQUFHLElBQUFELGNBQU8sRUFBQyxZQUFNO0lBQ2hDLG9CQUNFL0ksTUFBQSxDQUFBdUIsT0FBQSxDQUFBd0csYUFBQSxDQUFDeEgsaUJBQUEsQ0FBQWdCLE9BQWdCO01BQ2YrRyxlQUFlLEVBQUVBLGVBQWdCO01BQ2pDSCxVQUFVLEVBQUVBLFVBQVc7TUFDdkJjLFNBQVMsRUFBRXBFLGFBQWM7TUFDekJxRSxNQUFNLEVBQUU7SUFBSyxHQUVacEIsT0FDZSxDQUFDO0VBRXZCLENBQUMsRUFBRSxDQUFDL0QsYUFBYSxFQUFFSixZQUFZLEVBQUVnQixjQUFjLENBQUMsQ0FBQztFQUVqRCxJQUFBZ0MsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDcEMsU0FBUyxJQUFJLENBQUNuQixVQUFVLEVBQUU7SUFFL0IsSUFBTStGLGNBQWMsR0FBRy9GLFVBQVUsQ0FBQ2dHLE1BQU0sQ0FBQyxVQUFDQyxLQUFLLEVBQUs7TUFDbEQsT0FDRUEsS0FBSyxDQUFDQyxHQUFHLElBQUkvRSxTQUFTLENBQUNnRixZQUFZLENBQUMsQ0FBQyxDQUFDRCxHQUFHLElBQ3pDRCxLQUFLLENBQUNDLEdBQUcsSUFBSS9FLFNBQVMsQ0FBQ2lGLFlBQVksQ0FBQyxDQUFDLENBQUNGLEdBQUcsSUFDekNELEtBQUssQ0FBQ0ksR0FBRyxJQUFJbEYsU0FBUyxDQUFDZ0YsWUFBWSxDQUFDLENBQUMsQ0FBQ0UsR0FBRyxJQUN6Q0osS0FBSyxDQUFDSSxHQUFHLElBQUlsRixTQUFTLENBQUNpRixZQUFZLENBQUMsQ0FBQyxDQUFDQyxHQUFHO0lBRTdDLENBQUMsQ0FBQztJQUVGekYsZ0JBQWdCLENBQUNtRixjQUFjLENBQUM7RUFDbEMsQ0FBQyxFQUFFLENBQUM1RSxTQUFTLEVBQUVuQixVQUFVLENBQUMsQ0FBQztFQUUzQixJQUFNc0csa0JBQWtCLEdBQUcsSUFBQUMsa0JBQVcsRUFBQyxVQUFDQyxNQUFNLEVBQUs7SUFDakRwRixZQUFZLENBQUNvRixNQUFNLENBQUM7RUFDdEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBUztJQUM5QmpHLGVBQWUsQ0FBQyxVQUFDa0csV0FBVztNQUFBLE9BQzFCQSxXQUFXLEtBQUssa0JBQWtCLEdBQUcsZUFBZSxHQUFHLGtCQUFrQjtJQUFBLENBQzNFLENBQUM7RUFDSCxDQUFDO0VBRUQsSUFBTUMsaUJBQWlCLEdBQUcsSUFBQWhCLGNBQU8sRUFBQyxZQUFNO0lBQ3RDLElBQUlwRixZQUFZLEtBQUssa0JBQWtCLEVBQUU7TUFDdkMsT0FBTyxRQUFRO0lBQ2pCO0lBQ0EsT0FBT1EsY0FBYyxLQUFLLEVBQUUsR0FBRyxZQUFZLEdBQUcsRUFBRTtFQUNsRCxDQUFDLEVBQUUsQ0FBQ1IsWUFBWSxFQUFFUSxjQUFjLENBQUMsQ0FBQztFQUVsQyxJQUFNNkYsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJeEMsRUFBVSxFQUFLO0lBQ3BDNUMsaUJBQWlCLENBQUM0QyxFQUFFLENBQUM7SUFDckIsSUFBSTdELFlBQVksS0FBSyxpQkFBaUIsRUFBRTtNQUN0Q0MsZUFBZSxDQUFDLGlCQUFpQixDQUFDO0lBQ3BDO0VBQ0YsQ0FBQztFQUVELElBQUksQ0FBQ1IsVUFBVSxJQUFJLENBQUNKLFdBQVcsRUFBRSxPQUFPLElBQUk7RUFFNUMsb0JBQ0VoRCxNQUFBLENBQUF1QixPQUFBLENBQUF3RyxhQUFBO0lBQUtrQyxTQUFTLEVBQUM7RUFBYSxnQkFDMUJqSyxNQUFBLENBQUF1QixPQUFBLENBQUF3RyxhQUFBLENBQUNtQyxpQkFBaUI7SUFBQzFHLEtBQUssRUFBRUE7RUFBTSxnQkFDOUJ4RCxNQUFBLENBQUF1QixPQUFBLENBQUF3RyxhQUFBLENBQUMxSCxJQUFBLENBQUE4SixHQUFHO0lBQ0ZDLG1CQUFtQixFQUFFLENBQUMxQyxPQUFPLEdBQUdBLE9BQU8sQ0FBQzJDLElBQUksR0FBRyxJQUFJLElBQUksR0FBSTtJQUMzRHBDLE1BQU0sRUFBRTdFLFVBQVc7SUFDbkJnRSxPQUFPLEVBQUVELGlCQUFpQixDQUFDbkUsV0FBVyxDQUFFO0lBQ3hDc0gsY0FBYyxFQUFFWixrQkFBbUI7SUFDbkNhLGFBQWEsRUFBRVA7RUFBYyxDQUM5QixDQUNnQixDQUFDLEVBQ25CaEIsV0FBVyxlQUNaaEosTUFBQSxDQUFBdUIsT0FBQSxDQUFBd0csYUFBQSxDQUFDbEgsYUFBQSxDQUFBVSxPQUFZO0lBQ1hpSixXQUFXLEVBQUVULGlCQUFrQjtJQUMvQlUsT0FBTyxFQUFFWjtFQUFrQixDQUM1QixDQUNFLENBQUM7QUFFVixDQUFDO0FBQUMsSUFBQWEsUUFBQSxHQUVhcEksdUJBQXVCO0FBQUFxSSxPQUFBLENBQUFwSixPQUFBLEdBQUFtSixRQUFBO0FBRXRDLElBQU1SLGlCQUFpQixHQUFHVSx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUlBZ0JuQyJ9
@@ -0,0 +1,45 @@
1
+ .map-heights {
2
+ height: 100%;
3
+ width: 100%;
4
+
5
+ *,
6
+ *:focus,
7
+ *:hover {
8
+ outline: none;
9
+ }
10
+ }
11
+
12
+ .assessment-page {
13
+ height: 100%;
14
+ width: 100%;
15
+ left: 0;
16
+ top: 0;
17
+
18
+ #map {
19
+ height: 100%;
20
+ width: 100%;
21
+
22
+ .leaflet-popup-close-button {
23
+ font-size: x-large;
24
+ }
25
+ }
26
+
27
+ .btn-group {
28
+ display: flex;
29
+ justify-content: center;
30
+ margin-top: 20px;
31
+
32
+ button {
33
+ margin: 0 10px;
34
+ }
35
+ }
36
+
37
+ .use-case-icon {
38
+ width: 24px;
39
+ height: 24px;
40
+ }
41
+
42
+ svg path {
43
+ fill: white !important;
44
+ }
45
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.4627 10.3134C15.7358 10.3134 15.9686 10.2172 16.161 10.0248C16.3534 9.83241 16.4496 9.59963 16.4496 9.32644C16.4496 9.05325 16.3534 8.82047 16.161 8.62809C15.9686 8.43571 15.7358 8.33952 15.4627 8.33952C15.1895 8.33952 14.9567 8.43571 14.7643 8.62809C14.5719 8.82047 14.4757 9.05325 14.4757 9.32644C14.4757 9.59963 14.5719 9.83241 14.7643 10.0248C14.9567 10.2172 15.1895 10.3134 15.4627 10.3134ZM6.53734 7.93183H12.1157V6.25839H6.53734V7.93183ZM3.05092 21.0409C2.46162 19.0069 1.87268 16.983 1.2841 14.9691C0.695508 12.9552 0.401215 10.8884 0.401215 8.76861C0.401215 7.21527 0.9426 5.89722 2.02537 4.81447C3.10812 3.7317 4.42617 3.19031 5.97951 3.19031H11.8368C12.3474 2.5195 12.9599 1.97991 13.6744 1.57154C14.3888 1.16317 15.1709 0.958984 16.0205 0.958984C16.328 0.958984 16.5908 1.06805 16.8089 1.28618C17.0271 1.50429 17.1361 1.76711 17.1361 2.07462C17.1361 2.15043 17.1258 2.22624 17.105 2.30205C17.0843 2.37784 17.0625 2.44792 17.0396 2.5123C16.9366 2.78121 16.849 3.05655 16.7767 3.33833C16.7045 3.62011 16.6426 3.90476 16.5912 4.19226L19.4941 7.09514H21.5988V13.9114L18.5543 14.9112L16.7178 21.0409H11.5579V18.8096H8.21081V21.0409H3.05092ZM4.30601 19.3674H6.53734V17.1361H13.2313V19.3674H15.4627L17.1919 13.6217L19.9253 12.7013V8.76861H18.8097L14.9048 4.86378C14.9048 4.49189 14.9281 4.13395 14.9746 3.78996C15.021 3.44596 15.0979 3.10089 15.2052 2.75476C14.666 2.90351 14.1954 3.16276 13.7935 3.53249C13.3915 3.90224 13.0833 4.346 12.8687 4.86378H5.97951C4.90103 4.86378 3.98061 5.24497 3.21824 6.00734C2.45587 6.76971 2.07468 7.69013 2.07468 8.76861C2.07468 10.5909 2.32571 12.3713 2.82776 14.1099C3.32981 15.8484 3.82256 17.601 4.30601 19.3674Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMap = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _leaflet = _interopRequireDefault(require("leaflet"));
10
+ require("leaflet.heat");
11
+ require("leaflet/dist/leaflet.css");
12
+ var _react = require("react");
13
+ var _PointIcon = require("Widgets/Map/points/PointIcon");
14
+ var _theme = require("styles/theme/theme");
15
+ var _MapUtils = require("Widgets/Map/MapUtils");
16
+ var useMap = function useMap(mapRef, points, filteredUseCaseCode, polygon, onMarkerClick) {
17
+ var _useState = (0, _react.useState)(),
18
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
19
+ map = _useState2[0],
20
+ setMap = _useState2[1];
21
+ var _useState3 = (0, _react.useState)(15),
22
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
23
+ mapZoomLevel = _useState4[0],
24
+ setMapZoomLevel = _useState4[1];
25
+ var heatLayerRef = (0, _react.useRef)();
26
+ var pointsLayerRef = (0, _react.useRef)();
27
+ (0, _react.useEffect)(function () {
28
+ if (!mapRef.current) {
29
+ return;
30
+ }
31
+ var mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
32
+ var mapTemp = _leaflet.default.map(mapRef.current, {});
33
+ Object.values(mapTypes)[0].addTo(mapTemp);
34
+ _leaflet.default.control.layers(mapTypes, {}, {
35
+ position: 'topright'
36
+ }).addTo(mapTemp);
37
+
38
+ // The colors are transparent so the map will fit the polygon bounds but it won't be visible
39
+ if (polygon && polygon.length === undefined) {
40
+ var geoJSONLayer = _leaflet.default.geoJSON(polygon, {
41
+ style: {
42
+ color: 'transparent',
43
+ fillColor: 'transparent',
44
+ fillOpacity: 0
45
+ }
46
+ }).addTo(mapTemp);
47
+ mapTemp.fitBounds(geoJSONLayer.getBounds());
48
+ }
49
+ mapTemp.on('zoomend', function () {
50
+ setMapZoomLevel(mapTemp.getZoom());
51
+ });
52
+ setMap(mapTemp);
53
+ return function () {
54
+ if (!mapTemp) {
55
+ return;
56
+ }
57
+ mapTemp.off();
58
+ mapTemp.remove();
59
+
60
+ // Clean up layers
61
+ if (heatLayerRef.current) {
62
+ heatLayerRef.current.off();
63
+ heatLayerRef.current.remove();
64
+ heatLayerRef.current = null;
65
+ }
66
+ if (pointsLayerRef.current) {
67
+ pointsLayerRef.current.clearLayers();
68
+ pointsLayerRef.current = null;
69
+ }
70
+ };
71
+ }, []);
72
+
73
+ // The heat map plugin expects an array of arrays with the lat, lng and intensity
74
+ // The intensity is the value of the point's total score (tos) divided by 100 because the intensity should be between 0 and 1
75
+ var calculateHeatPoints = (0, _react.useCallback)(function () {
76
+ return points.map(function (point) {
77
+ var intensityValue = point[filteredUseCaseCode];
78
+ if (typeof intensityValue === 'number' && !isNaN(intensityValue)) {
79
+ var intensity = intensityValue / 100;
80
+ return [point.lat, point.lng, intensity];
81
+ }
82
+ return null; // Exclude invalid points
83
+ }).filter(Boolean); // Remove null values
84
+ }, [points, filteredUseCaseCode]);
85
+ (0, _react.useEffect)(function () {
86
+ if (!map || !points) {
87
+ return;
88
+ }
89
+ if (!heatLayerRef.current) {
90
+ heatLayerRef.current = _leaflet.default.heatLayer([], {
91
+ radius: 25,
92
+ blur: 15,
93
+ maxZoom: 15
94
+ });
95
+ }
96
+ if (!pointsLayerRef.current) {
97
+ pointsLayerRef.current = _leaflet.default.layerGroup();
98
+ }
99
+ if (mapZoomLevel <= 15) {
100
+ if (!map.hasLayer(heatLayerRef.current)) {
101
+ map.addLayer(heatLayerRef.current);
102
+ }
103
+ heatLayerRef.current.setLatLngs(calculateHeatPoints());
104
+ if (map.hasLayer(pointsLayerRef.current)) {
105
+ map.removeLayer(pointsLayerRef.current);
106
+ }
107
+ } else {
108
+ if (!pointsLayerRef.current.getLayers().length) {
109
+ points.forEach(function (point) {
110
+ var _pointsLayerRef$curre;
111
+ var icon = (0, _PointIcon.getPointIconByType)('Groups::Factory', point === null || point === void 0 ? void 0 : point.id.toString(), '', false, true);
112
+ var marker = _leaflet.default.marker([point.lat, point.lng], {
113
+ icon: icon
114
+ });
115
+ marker.on('click', function () {
116
+ if (onMarkerClick) {
117
+ onMarkerClick(point.id);
118
+ }
119
+ });
120
+ (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.addLayer(marker);
121
+ });
122
+ }
123
+ if (!map.hasLayer(pointsLayerRef.current)) {
124
+ map.addLayer(pointsLayerRef.current);
125
+ }
126
+ if (map.hasLayer(heatLayerRef.current)) {
127
+ map.removeLayer(heatLayerRef.current);
128
+ }
129
+ }
130
+ }, [points, map, mapZoomLevel, filteredUseCaseCode, calculateHeatPoints]);
131
+ return map;
132
+ };
133
+ exports.useMap = useMap;
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJwb2x5Z29uIiwib25NYXJrZXJDbGljayIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsImhlYXRMYXllclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsIm1hcFR5cGVzIiwiYmFzZU1hcHMiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsInNhdGVsbGl0ZSIsIm1hcFRlbXAiLCJMIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJnZW9KU09OTGF5ZXIiLCJnZW9KU09OIiwic3R5bGUiLCJjb2xvciIsImZpbGxDb2xvciIsImZpbGxPcGFjaXR5IiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwib24iLCJnZXRab29tIiwib2ZmIiwicmVtb3ZlIiwiY2xlYXJMYXllcnMiLCJjYWxjdWxhdGVIZWF0UG9pbnRzIiwidXNlQ2FsbGJhY2siLCJwb2ludCIsImludGVuc2l0eVZhbHVlIiwiaXNOYU4iLCJpbnRlbnNpdHkiLCJsYXQiLCJsbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwiaGVhdExheWVyIiwicmFkaXVzIiwiYmx1ciIsIm1heFpvb20iLCJsYXllckdyb3VwIiwiaGFzTGF5ZXIiLCJhZGRMYXllciIsInNldExhdExuZ3MiLCJyZW1vdmVMYXllciIsImdldExheWVycyIsImZvckVhY2giLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiaWQiLCJ0b1N0cmluZyIsIm1hcmtlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnbGVhZmxldC5oZWF0JztcbmltcG9ydCAnbGVhZmxldC9kaXN0L2xlYWZsZXQuY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgSUdlb1BvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSUdlb1BvaW50JztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICdzcmMvc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGJhc2VNYXBzIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElHZW9Qb2ludFtdLFxuICBmaWx0ZXJlZFVzZUNhc2VDb2RlOiBzdHJpbmcsXG4gIHBvbHlnb24/OiBhbnksXG4gIG9uTWFya2VyQ2xpY2s/OiAoaWQ6IG51bWJlcikgPT4gdm9pZCxcbik6IEwuTWFwIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IHVzZVN0YXRlPEwuTWFwPigpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMTUpO1xuICBjb25zdCBoZWF0TGF5ZXJSZWYgPSB1c2VSZWY8TC5IZWF0TGF5ZXI+KCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuTGF5ZXJHcm91cD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUeXBlcyA9IGJhc2VNYXBzKGxlYWZsZXRNYXAubWFwRGVmYXVsdCwgbGVhZmxldE1hcC5zYXRlbGxpdGUpO1xuICAgIGNvbnN0IG1hcFRlbXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwge30pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ3RvcHJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIC8vIFRoZSBjb2xvcnMgYXJlIHRyYW5zcGFyZW50IHNvIHRoZSBtYXAgd2lsbCBmaXQgdGhlIHBvbHlnb24gYm91bmRzIGJ1dCBpdCB3b24ndCBiZSB2aXNpYmxlXG4gICAgaWYgKHBvbHlnb24gJiYgcG9seWdvbi5sZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZ2VvSlNPTkxheWVyID0gTC5nZW9KU09OKHBvbHlnb24sIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBmaWxsQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IDAsXG4gICAgICAgIH0sXG4gICAgICB9KS5hZGRUbyhtYXBUZW1wKTtcbiAgICAgIG1hcFRlbXAuZml0Qm91bmRzKGdlb0pTT05MYXllci5nZXRCb3VuZHMoKSk7XG4gICAgfVxuXG4gICAgbWFwVGVtcC5vbignem9vbWVuZCcsICgpID0+IHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBUZW1wLmdldFpvb20oKSk7XG4gICAgfSk7XG5cbiAgICBzZXRNYXAobWFwVGVtcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFtYXBUZW1wKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcFRlbXAub2ZmKCk7XG4gICAgICBtYXBUZW1wLnJlbW92ZSgpO1xuXG4gICAgICAvLyBDbGVhbiB1cCBsYXllcnNcbiAgICAgIGlmIChoZWF0TGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5vZmYoKTtcbiAgICAgICAgaGVhdExheWVyUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAgIGhlYXRMYXllclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIC8vIFRoZSBoZWF0IG1hcCBwbHVnaW4gZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMgd2l0aCB0aGUgbGF0LCBsbmcgYW5kIGludGVuc2l0eVxuICAvLyBUaGUgaW50ZW5zaXR5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgcG9pbnQncyB0b3RhbCBzY29yZSAodG9zKSBkaXZpZGVkIGJ5IDEwMCBiZWNhdXNlIHRoZSBpbnRlbnNpdHkgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMVxuICBjb25zdCBjYWxjdWxhdGVIZWF0UG9pbnRzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHNcbiAgICAgIC5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGludGVuc2l0eVZhbHVlID0gcG9pbnRbZmlsdGVyZWRVc2VDYXNlQ29kZV07XG4gICAgICAgIGlmICh0eXBlb2YgaW50ZW5zaXR5VmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTihpbnRlbnNpdHlWYWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbnRlbnNpdHkgPSBpbnRlbnNpdHlWYWx1ZSAvIDEwMDtcbiAgICAgICAgICByZXR1cm4gW3BvaW50LmxhdCwgcG9pbnQubG5nLCBpbnRlbnNpdHldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsOyAvLyBFeGNsdWRlIGludmFsaWQgcG9pbnRzXG4gICAgICB9KVxuICAgICAgLmZpbHRlcihCb29sZWFuKTsgLy8gUmVtb3ZlIG51bGwgdmFsdWVzXG4gIH0sIFtwb2ludHMsIGZpbHRlcmVkVXNlQ2FzZUNvZGVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWhlYXRMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudCA9IEwuaGVhdExheWVyKFtdLCB7XG4gICAgICAgIHJhZGl1czogMjUsXG4gICAgICAgIGJsdXI6IDE1LFxuICAgICAgICBtYXhab29tOiAxNSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwubGF5ZXJHcm91cCgpO1xuICAgIH1cblxuICAgIGlmIChtYXBab29tTGV2ZWwgPD0gMTUpIHtcbiAgICAgIGlmICghbWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAuYWRkTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5zZXRMYXRMbmdzKGNhbGN1bGF0ZUhlYXRQb2ludHMoKSk7XG5cbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICAgICAgICAnR3JvdXBzOjpGYWN0b3J5JyxcbiAgICAgICAgICAgIHBvaW50Py5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbcG9pbnQubGF0LCBwb2ludC5sbmddLCB7XG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAob25NYXJrZXJDbGljaykge1xuICAgICAgICAgICAgICBvbk1hcmtlckNsaWNrKHBvaW50LmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLmFkZExheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvaW50cywgbWFwLCBtYXBab29tTGV2ZWwsIGZpbHRlcmVkVXNlQ2FzZUNvZGUsIGNhbGN1bGF0ZUhlYXRQb2ludHNdKTtcblxuICByZXR1cm4gbWFwO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBRU8sSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQ2pCQyxNQUF1QyxFQUN2Q0MsTUFBbUIsRUFDbkJDLG1CQUEyQixFQUMzQkMsT0FBYSxFQUNiQyxhQUFvQyxFQUNkO0VBQ3RCLElBQUFDLFNBQUEsR0FBc0IsSUFBQUMsZUFBUSxFQUFRLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUFDLE9BQUEsRUFBQUosU0FBQTtJQUFoQ0ssR0FBRyxHQUFBSCxVQUFBO0lBQUVJLE1BQU0sR0FBQUosVUFBQTtFQUNsQixJQUFBSyxVQUFBLEdBQXdDLElBQUFOLGVBQVEsRUFBQyxFQUFFLENBQUM7SUFBQU8sVUFBQSxPQUFBTCxlQUFBLENBQUFDLE9BQUEsRUFBQUcsVUFBQTtJQUE3Q0UsWUFBWSxHQUFBRCxVQUFBO0lBQUVFLGVBQWUsR0FBQUYsVUFBQTtFQUNwQyxJQUFNRyxZQUFZLEdBQUcsSUFBQUMsYUFBTSxFQUFjLENBQUM7RUFDMUMsSUFBTUMsY0FBYyxHQUFHLElBQUFELGFBQU0sRUFBZSxDQUFDO0VBRTdDLElBQUFFLGdCQUFTLEVBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ29CLE9BQU8sRUFBRTtNQUNuQjtJQUNGO0lBRUEsSUFBTUMsUUFBUSxHQUFHLElBQUFDLGtCQUFRLEVBQUNDLGlCQUFVLENBQUNDLFVBQVUsRUFBRUQsaUJBQVUsQ0FBQ0UsU0FBUyxDQUFDO0lBQ3RFLElBQU1DLE9BQU8sR0FBR0MsZ0JBQUMsQ0FBQ2pCLEdBQUcsQ0FBQ1YsTUFBTSxDQUFDb0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpDUSxNQUFNLENBQUNDLE1BQU0sQ0FBQ1IsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNTLEtBQUssQ0FBQ0osT0FBTyxDQUFDO0lBRXpDQyxnQkFBQyxDQUFDSSxPQUFPLENBQUNDLE1BQU0sQ0FBQ1gsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO01BQUVZLFFBQVEsRUFBRTtJQUFXLENBQUMsQ0FBQyxDQUFDSCxLQUFLLENBQUNKLE9BQU8sQ0FBQzs7SUFFdkU7SUFDQSxJQUFJdkIsT0FBTyxJQUFJQSxPQUFPLENBQUMrQixNQUFNLEtBQUtDLFNBQVMsRUFBRTtNQUMzQyxJQUFNQyxZQUFZLEdBQUdULGdCQUFDLENBQUNVLE9BQU8sQ0FBQ2xDLE9BQU8sRUFBRTtRQUN0Q21DLEtBQUssRUFBRTtVQUNMQyxLQUFLLEVBQUUsYUFBYTtVQUNwQkMsU0FBUyxFQUFFLGFBQWE7VUFDeEJDLFdBQVcsRUFBRTtRQUNmO01BQ0YsQ0FBQyxDQUFDLENBQUNYLEtBQUssQ0FBQ0osT0FBTyxDQUFDO01BQ2pCQSxPQUFPLENBQUNnQixTQUFTLENBQUNOLFlBQVksQ0FBQ08sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3QztJQUVBakIsT0FBTyxDQUFDa0IsRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFNO01BQzFCN0IsZUFBZSxDQUFDVyxPQUFPLENBQUNtQixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQztJQUVGbEMsTUFBTSxDQUFDZSxPQUFPLENBQUM7SUFFZixPQUFPLFlBQU07TUFDWCxJQUFJLENBQUNBLE9BQU8sRUFBRTtRQUNaO01BQ0Y7TUFDQUEsT0FBTyxDQUFDb0IsR0FBRyxDQUFDLENBQUM7TUFDYnBCLE9BQU8sQ0FBQ3FCLE1BQU0sQ0FBQyxDQUFDOztNQUVoQjtNQUNBLElBQUkvQixZQUFZLENBQUNJLE9BQU8sRUFBRTtRQUN4QkosWUFBWSxDQUFDSSxPQUFPLENBQUMwQixHQUFHLENBQUMsQ0FBQztRQUMxQjlCLFlBQVksQ0FBQ0ksT0FBTyxDQUFDMkIsTUFBTSxDQUFDLENBQUM7UUFDN0IvQixZQUFZLENBQUNJLE9BQU8sR0FBRyxJQUFJO01BQzdCO01BQ0EsSUFBSUYsY0FBYyxDQUFDRSxPQUFPLEVBQUU7UUFDMUJGLGNBQWMsQ0FBQ0UsT0FBTyxDQUFDNEIsV0FBVyxDQUFDLENBQUM7UUFDcEM5QixjQUFjLENBQUNFLE9BQU8sR0FBRyxJQUFJO01BQy9CO0lBQ0YsQ0FBQztFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7O0VBRU47RUFDQTtFQUNBLElBQU02QixtQkFBbUIsR0FBRyxJQUFBQyxrQkFBVyxFQUFDLFlBQU07SUFDNUMsT0FBT2pELE1BQU0sQ0FDVlMsR0FBRyxDQUFDLFVBQUN5QyxLQUFLLEVBQUs7TUFDZCxJQUFNQyxjQUFjLEdBQUdELEtBQUssQ0FBQ2pELG1CQUFtQixDQUFDO01BQ2pELElBQUksT0FBT2tELGNBQWMsS0FBSyxRQUFRLElBQUksQ0FBQ0MsS0FBSyxDQUFDRCxjQUFjLENBQUMsRUFBRTtRQUNoRSxJQUFNRSxTQUFTLEdBQUdGLGNBQWMsR0FBRyxHQUFHO1FBQ3RDLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDSSxHQUFHLEVBQUVKLEtBQUssQ0FBQ0ssR0FBRyxFQUFFRixTQUFTLENBQUM7TUFDMUM7TUFDQSxPQUFPLElBQUksQ0FBQyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQ0RHLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQztFQUN0QixDQUFDLEVBQUUsQ0FBQ3pELE1BQU0sRUFBRUMsbUJBQW1CLENBQUMsQ0FBQztFQUVqQyxJQUFBaUIsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDVCxHQUFHLElBQUksQ0FBQ1QsTUFBTSxFQUFFO01BQ25CO0lBQ0Y7SUFFQSxJQUFJLENBQUNlLFlBQVksQ0FBQ0ksT0FBTyxFQUFFO01BQ3pCSixZQUFZLENBQUNJLE9BQU8sR0FBR08sZ0JBQUMsQ0FBQ2dDLFNBQVMsQ0FBQyxFQUFFLEVBQUU7UUFDckNDLE1BQU0sRUFBRSxFQUFFO1FBQ1ZDLElBQUksRUFBRSxFQUFFO1FBQ1JDLE9BQU8sRUFBRTtNQUNYLENBQUMsQ0FBQztJQUNKO0lBRUEsSUFBSSxDQUFDNUMsY0FBYyxDQUFDRSxPQUFPLEVBQUU7TUFDM0JGLGNBQWMsQ0FBQ0UsT0FBTyxHQUFHTyxnQkFBQyxDQUFDb0MsVUFBVSxDQUFDLENBQUM7SUFDekM7SUFFQSxJQUFJakQsWUFBWSxJQUFJLEVBQUUsRUFBRTtNQUN0QixJQUFJLENBQUNKLEdBQUcsQ0FBQ3NELFFBQVEsQ0FBQ2hELFlBQVksQ0FBQ0ksT0FBTyxDQUFDLEVBQUU7UUFDdkNWLEdBQUcsQ0FBQ3VELFFBQVEsQ0FBQ2pELFlBQVksQ0FBQ0ksT0FBTyxDQUFDO01BQ3BDO01BRUFKLFlBQVksQ0FBQ0ksT0FBTyxDQUFDOEMsVUFBVSxDQUFDakIsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO01BRXRELElBQUl2QyxHQUFHLENBQUNzRCxRQUFRLENBQUM5QyxjQUFjLENBQUNFLE9BQU8sQ0FBQyxFQUFFO1FBQ3hDVixHQUFHLENBQUN5RCxXQUFXLENBQUNqRCxjQUFjLENBQUNFLE9BQU8sQ0FBQztNQUN6QztJQUNGLENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ0YsY0FBYyxDQUFDRSxPQUFPLENBQUNnRCxTQUFTLENBQUMsQ0FBQyxDQUFDbEMsTUFBTSxFQUFFO1FBQzlDakMsTUFBTSxDQUFDb0UsT0FBTyxDQUFDLFVBQUNsQixLQUFLLEVBQUs7VUFBQSxJQUFBbUIscUJBQUE7VUFDeEIsSUFBTUMsSUFBSSxHQUFHLElBQUFDLDZCQUFrQixFQUM3QixpQkFBaUIsRUFDakJyQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXNCLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsRUFDcEIsRUFBRSxFQUNGLEtBQUssRUFDTCxJQUNGLENBQUM7VUFDRCxJQUFNQyxNQUFNLEdBQUdoRCxnQkFBQyxDQUFDZ0QsTUFBTSxDQUFDLENBQUN4QixLQUFLLENBQUNJLEdBQUcsRUFBRUosS0FBSyxDQUFDSyxHQUFHLENBQUMsRUFBRTtZQUM5Q2UsSUFBSSxFQUFKQTtVQUNGLENBQUMsQ0FBQztVQUNGSSxNQUFNLENBQUMvQixFQUFFLENBQUMsT0FBTyxFQUFFLFlBQU07WUFDdkIsSUFBSXhDLGFBQWEsRUFBRTtjQUNqQkEsYUFBYSxDQUFDK0MsS0FBSyxDQUFDc0IsRUFBRSxDQUFDO1lBQ3pCO1VBQ0YsQ0FBQyxDQUFDO1VBQ0YsQ0FBQUgscUJBQUEsR0FBQXBELGNBQWMsQ0FBQ0UsT0FBTyxjQUFBa0QscUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3QkwsUUFBUSxDQUFDVSxNQUFNLENBQUM7UUFDMUMsQ0FBQyxDQUFDO01BQ0o7TUFFQSxJQUFJLENBQUNqRSxHQUFHLENBQUNzRCxRQUFRLENBQUM5QyxjQUFjLENBQUNFLE9BQU8sQ0FBQyxFQUFFO1FBQ3pDVixHQUFHLENBQUN1RCxRQUFRLENBQUMvQyxjQUFjLENBQUNFLE9BQU8sQ0FBQztNQUN0QztNQUVBLElBQUlWLEdBQUcsQ0FBQ3NELFFBQVEsQ0FBQ2hELFlBQVksQ0FBQ0ksT0FBTyxDQUFDLEVBQUU7UUFDdENWLEdBQUcsQ0FBQ3lELFdBQVcsQ0FBQ25ELFlBQVksQ0FBQ0ksT0FBTyxDQUFDO01BQ3ZDO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQ25CLE1BQU0sRUFBRVMsR0FBRyxFQUFFSSxZQUFZLEVBQUVaLG1CQUFtQixFQUFFK0MsbUJBQW1CLENBQUMsQ0FBQztFQUV6RSxPQUFPdkMsR0FBRztBQUNaLENBQUM7QUFBQ2tFLE9BQUEsQ0FBQTdFLE1BQUEsR0FBQUEsTUFBQSJ9