diff --git a/4/ecolyo.8dbc60519627bd9bef5e.js b/4/ecolyo.4bdc1836bb506dfd5fea.js
similarity index 99%
rename from 4/ecolyo.8dbc60519627bd9bef5e.js
rename to 4/ecolyo.4bdc1836bb506dfd5fea.js
index c138b9f44091377d2e640758e66da94c84e847e2..8484462a5fda2fdd74075ebfe42b2b0d044de178 100644
--- a/4/ecolyo.8dbc60519627bd9bef5e.js
+++ b/4/ecolyo.4bdc1836bb506dfd5fea.js
@@ -2114,7 +2114,7 @@ var CardBase = (0, _styles.withStyles)({
     boxSizing: 'border-box',
     boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.75)',
     borderRadius: '4px',
-    margin: '10px 0px 20px 0px'
+    margin: '10px 0px 10px 0px'
   }
 })(_CardActionArea.default);
 var CardElec = (0, _styles.withStyles)({
diff --git a/5/ecolyo.8aa52fadbb475400faa5.js b/5/ecolyo.db82752ea0dfdcfbeaad.js
similarity index 93%
rename from 5/ecolyo.8aa52fadbb475400faa5.js
rename to 5/ecolyo.db82752ea0dfdcfbeaad.js
index 943cf8bff908bfc39335f58bae18bfa4d00c6f1e..f28d1b75da3a8fa322220da87366fbc0b71c51d4 100644
--- a/5/ecolyo.8aa52fadbb475400faa5.js
+++ b/5/ecolyo.db82752ea0dfdcfbeaad.js
@@ -685,7 +685,7 @@ if(false) {}
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.error-line {\n  color: #e0e0e0;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n}\n\n.underlined-error {\n  text-align: center;\n  text-decoration: underline;\n}\n\n.warning-icon {\n  margin-right: 4px;\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.error-line {\n  color: #e0e0e0;\n  cursor: pointer;\n}\n\n.underlined-error {\n  text-align: center;\n  text-decoration: underline;\n}\n\n.warning-icon {\n  margin-right: 4px;\n}", ""]);
 
 
 
@@ -851,6 +851,8 @@ var _reactRedux = __webpack_require__("/MKj");
 
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _chart = __webpack_require__("idK9");
+
 var _global = __webpack_require__("c4IZ");
 
 var _decoreText = __webpack_require__("j5h9");
@@ -954,7 +956,15 @@ var SgeInit = function SgeInit(_ref) {
       root: 'btn-highlight',
       label: 'text-16-bold'
     }
-  }, t("auth.".concat(konnectorSlug, ".connect")))));
+  }, t("auth.".concat(konnectorSlug, ".connect"))), fluidStatus.firstDataDate && /*#__PURE__*/_react.default.createElement(_core.Button, {
+    classes: {
+      root: 'btn-secondary',
+      label: 'text-16-bold'
+    },
+    onClick: function onClick() {
+      return dispatch((0, _chart.setShowOfflineData)(true));
+    }
+  }, t('auth.button_showOfflineData'))));
 };
 
 var _default = SgeInit;
@@ -1245,7 +1255,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
   var navigate = (0, _reactRouterDom.useNavigate)();
   var client = (0, _cozyClient.useClient)();
   var dispatch = (0, _reactRedux.useDispatch)();
-  var isMulti = fluidType !== _fluid.FluidType.MULTIFLUID;
+  var isMulti = fluidType === _fluid.FluidType.MULTIFLUID;
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
     return state.ecolyo;
@@ -1253,41 +1263,37 @@ var ConsumptionView = function ConsumptionView(_ref) {
       _useSelector$chart = _useSelector.chart,
       currentTimeStep = _useSelector$chart.currentTimeStep,
       loading = _useSelector$chart.loading,
+      showOfflineData = _useSelector$chart.showOfflineData,
       _useSelector$global = _useSelector.global,
       fluidStatus = _useSelector$global.fluidStatus,
       releaseNotes = _useSelector$global.releaseNotes,
       customPopupModal = _useSelector$global.customPopupModal,
       partnersIssueModal = _useSelector.modal.partnersIssueModal;
 
-  var _useState = (0, _react.useState)(false),
+  var _useState = (0, _react.useState)(releaseNotes.show),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      isFluidKonnected = _useState2[0],
-      setIsFluidKonnected = _useState2[1];
+      openReleaseNoteModal = _useState2[0],
+      setOpenReleaseNoteModal = _useState2[1];
 
-  var _useState3 = (0, _react.useState)(releaseNotes.show),
+  var _useState3 = (0, _react.useState)(0),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      openReleaseNoteModal = _useState4[0],
-      setOpenReleaseNoteModal = _useState4[1];
+      headerHeight = _useState4[0],
+      setHeaderHeight = _useState4[1];
 
-  var _useState5 = (0, _react.useState)(0),
+  var _useState5 = (0, _react.useState)(false),
       _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
-      headerHeight = _useState6[0],
-      setHeaderHeight = _useState6[1];
+      active = _useState6[0],
+      setActive = _useState6[1];
 
-  var _useState7 = (0, _react.useState)(false),
+  var _useState7 = (0, _react.useState)(true),
       _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
-      active = _useState8[0],
-      setActive = _useState8[1];
+      openExpiredConsentModal = _useState8[0],
+      setOpenExpiredConsentModal = _useState8[1];
 
-  var _useState9 = (0, _react.useState)(true),
+  var _useState9 = (0, _react.useState)([]),
       _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
-      openExpiredConsentModal = _useState10[0],
-      setOpenExpiredConsentModal = _useState10[1];
-
-  var _useState11 = (0, _react.useState)([]),
-      _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
-      consentExpiredFluids = _useState12[0],
-      setConsentExpiredFluids = _useState12[1];
+      consentExpiredFluids = _useState10[0],
+      setConsentExpiredFluids = _useState10[1];
 
   var updateKey = fluidType !== _fluid.FluidType.MULTIFLUID && fluidStatus[fluidType].lastDataDate ? "".concat(fluidStatus[fluidType].lastDataDate.toLocaleString(), " + ").concat(fluidStatus[fluidType].status + fluidType) : '';
   var lastDataDateKey = fluidType !== _fluid.FluidType.MULTIFLUID && fluidStatus[fluidType].lastDataDate ? "".concat(fluidStatus[fluidType].lastDataDate.toLocaleString() + fluidType) : '';
@@ -1397,17 +1403,23 @@ var ConsumptionView = function ConsumptionView(_ref) {
       return _ref3.apply(this, arguments);
     };
   }();
+  /** Handle time change */
 
-  (0, _react.useEffect)(function () {
-    setIsFluidKonnected((0, _utils.isKonnectorActive)(fluidStatus, fluidType));
 
+  (0, _react.useEffect)(function () {
     if (fluidType !== _fluid.FluidType.ELECTRICITY && currentTimeStep == _timeStep.TimeStep.HALF_AN_HOUR) {
       dispatch((0, _chart.setCurrentTimeStep)(_timeStep.TimeStep.WEEK));
     }
-  }, [dispatch, fluidType, currentTimeStep, fluidStatus]);
+  }, [dispatch, fluidType, currentTimeStep]);
+  /**
+   * If fluid is not connected, display Connect components
+   * If fluid is connected, dispatch FluidChart
+   */
+
   (0, _react.useEffect)(function () {
-    dispatch((0, _chart.setLoading)(true));
-  }, [dispatch]);
+    var isFluidConnected = (0, _utils.isKonnectorActive)(fluidStatus, fluidType);
+    dispatch((0, _chart.setShowOfflineData)(isFluidConnected));
+  }, [dispatch, fluidStatus, fluidType]);
   (0, _react.useEffect)(function () {
     var subscribed = true;
     var expiredConsents = []; // Check if some fluids have expired consent error
@@ -1450,7 +1462,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
   }), openReleaseNoteModal && /*#__PURE__*/_react.default.createElement(_ReleaseNotesModal.default, {
     open: openReleaseNoteModal,
     handleCloseClick: handleCloseReleaseNoteModal
-  }), isFluidKonnected ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && /*#__PURE__*/_react.default.createElement("div", {
+  }), showOfflineData && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && /*#__PURE__*/_react.default.createElement("div", {
     className: 'consumptionview-loading',
     "aria-busy": "true"
   }, /*#__PURE__*/_react.default.createElement(_Loader.default, {
@@ -1463,26 +1475,28 @@ var ConsumptionView = function ConsumptionView(_ref) {
     key: lastDataDateKey
   }), /*#__PURE__*/_react.default.createElement(_ConsumptionDetails.default, {
     fluidType: fluidType
-  })), isMulti && /*#__PURE__*/_react.default.createElement("div", {
+  })), !isMulti && /*#__PURE__*/_react.default.createElement("div", {
     className: "konnector-section"
   }, /*#__PURE__*/_react.default.createElement(_KonnectorViewerCard.default, {
     fluidStatus: fluidStatus[fluidType],
     fluidType: fluidType,
     isParam: true,
     isDisconnected: false,
+    showOfflineData: true,
     setActive: setActive,
     active: active,
     key: fluidType
-  }))) : /*#__PURE__*/_react.default.createElement("div", {
+  }))), !showOfflineData && /*#__PURE__*/_react.default.createElement("div", {
     className: "konnector-section"
-  }, isMulti ? /*#__PURE__*/_react.default.createElement(_KonnectorViewerCard.default, {
+  }, isMulti ? /*#__PURE__*/_react.default.createElement(_KonnectorViewerList.default, null) : /*#__PURE__*/_react.default.createElement(_KonnectorViewerCard.default, {
     fluidStatus: fluidStatus[fluidType],
     fluidType: fluidType,
     isParam: false,
     isDisconnected: true,
+    showOfflineData: false,
     setActive: setActive,
     active: active
-  }) : /*#__PURE__*/_react.default.createElement(_KonnectorViewerList.default, null))), fluidStatus.filter(function (fluid) {
+  }))), fluidStatus.filter(function (fluid) {
     return fluid.maintenance;
   }).filter(function (fluid) {
     return fluid.fluidType === fluidType;
@@ -1545,14 +1559,14 @@ var _reactRedux = __webpack_require__("/MKj");
 
 var _global = __webpack_require__("c4IZ");
 
-__webpack_require__("0OtY");
-
 var _EpglInit = _interopRequireDefault(__webpack_require__("waxR"));
 
 var _GrdfInit = _interopRequireDefault(__webpack_require__("L2+7"));
 
 var _SgeInit = _interopRequireDefault(__webpack_require__("Be0E"));
 
+__webpack_require__("0OtY");
+
 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); }
 
 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; }
@@ -1935,6 +1949,8 @@ var _notif_error = _interopRequireDefault(__webpack_require__("pSnQ"));
 
 var _notif_maintenance = _interopRequireDefault(__webpack_require__("goTn"));
 
+var _offlineParam = _interopRequireDefault(__webpack_require__("lLz+"));
+
 var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));
 
 var _StyledIcon = _interopRequireDefault(__webpack_require__("I07j"));
@@ -1977,6 +1993,8 @@ var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
 var _reactRedux = __webpack_require__("/MKj");
 
+var _reactRouterDom = __webpack_require__("SOjZ");
+
 var _account = _interopRequireDefault(__webpack_require__("gucQ"));
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
@@ -1995,8 +2013,12 @@ var _chart = __webpack_require__("idK9");
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("oKH6");
+
 var _picto = __webpack_require__("6DBe");
 
+var _utils = __webpack_require__("c+yx");
+
 __webpack_require__("981c");
 
 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); }
@@ -2017,6 +2039,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   var fluidStatus = _ref.fluidStatus,
       isParam = _ref.isParam,
       isDisconnected = _ref.isDisconnected,
+      showOfflineData = _ref.showOfflineData,
       active = _ref.active,
       fluidType = _ref.fluidType,
       setActive = _ref.setActive;
@@ -2026,6 +2049,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
 
   var client = (0, _cozyClient.useClient)();
   var dispatch = (0, _reactRedux.useDispatch)();
+  var navigate = (0, _reactRouterDom.useNavigate)();
   var fluidSlug = fluidStatus.connection.konnectorConfig.slug;
   var fluidState = fluidStatus.status;
   var konnector = fluidStatus.connection.konnector;
@@ -2344,7 +2368,32 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       return _ref7.apply(this, arguments);
     };
   }(), [client]);
+
+  var toggleModalConnection = function toggleModalConnection() {
+    switch (fluidType) {
+      case _fluid.FluidType.ELECTRICITY:
+        navigate('/sge-connect');
+        break;
+
+      case _fluid.FluidType.GAS:
+      case _fluid.FluidType.WATER:
+        dispatch((0, _chart.setShowOfflineData)(false));
+        dispatch((0, _modal.openConnectionModal)(true));
+        break;
+    }
+  };
+
   var getConnectionCard = (0, _react.useCallback)(function () {
+    if (showOfflineData && !account) {
+      return /*#__PURE__*/_react.default.createElement(_core.Button, {
+        classes: {
+          root: 'btn-highlight',
+          label: 'text-16-bold'
+        },
+        onClick: toggleModalConnection
+      }, t("auth.".concat((0, _utils.getKonnectorSlug)(fluidType), ".connect")));
+    }
+
     if (fluidState === _fluid.FluidState.KONNECTOR_NOT_FOUND && !isUpdating) {
       return /*#__PURE__*/_react.default.createElement(_ConnectionNotFound.default, {
         konnectorSlug: fluidSlug
@@ -2412,13 +2461,13 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     return /*#__PURE__*/_react.default.createElement("div", {
       className: "konnector-icon"
     }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
-      icon: fluidStatus.connection.account ? iconType : iconAddType,
+      icon: fluidStatus.connection.account ? iconType : _offlineParam.default,
       size: 49
     }), fluidStatus.maintenance ? /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
       icon: _notif_maintenance.default,
       size: 24,
       className: "konnector-state-picto"
-    }) : (fluidStatus.status === _fluid.FluidState.ERROR || isOutdatedData || fluidStatus.status === _fluid.FluidState.ERROR_LOGIN_FAILED) && /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+    }) : (fluidStatus.status === _fluid.FluidState.ERROR || isOutdatedData || fluidStatus.status === _fluid.FluidState.ERROR_LOGIN_FAILED) && fluidStatus.connection.account && /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
       icon: _notif_error.default,
       size: 24,
       className: "konnector-state-picto"
@@ -2438,7 +2487,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     } else if (fluidStatus.connection.account && !isOutdatedData) {
       return t("FLUID.".concat(_fluid.FluidType[fluidStatus.fluidType], ".LABEL"));
     } else {
-      return t("konnector_options.label_connect_to_".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase()));
+      return t("konnector_options.label_offline_".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase()));
     }
   }, [fluidStatus.connection.account, fluidStatus.fluidType, fluidStatus.maintenance, isOutdatedData, t]); // If user has selected accept button on Expired consent modal, then delete its account
 
@@ -2544,7 +2593,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     expanded: active,
     onChange: toggleAccordion,
     classes: {
-      root: "expansion-panel-root ".concat(!fluidStatus.maintenance && (fluidStatus.status === _fluid.FluidState.ERROR || fluidStatus.status === _fluid.FluidState.ERROR_LOGIN_FAILED || isOutdatedData) ? 'red-border' : '')
+      root: "expansion-panel-root ".concat(!fluidStatus.maintenance && (fluidStatus.status === _fluid.FluidState.ERROR || fluidStatus.status === _fluid.FluidState.ERROR_LOGIN_FAILED) ? 'red-border' : '')
     }
   }, /*#__PURE__*/_react.default.createElement(_core.AccordionSummary, {
     "aria-label": t("konnector_options.accessibility.button_toggle_detail_".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase())),
@@ -2558,12 +2607,12 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       content: 'expansion-panel-content'
     }
   }, displayKonnectorIcon(), /*#__PURE__*/_react.default.createElement("div", {
-    className: (0, _classnames.default)('konnector-title', (0, _defineProperty2.default)({}, "".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase(), "-connected text-16-bold"), fluidStatus.status !== _fluid.FluidState.NOT_CONNECTED && !fluidStatus.maintenance))
+    className: (0, _classnames.default)('text-16-bold konnector-title', (0, _defineProperty2.default)({}, "".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase(), "-connected"), fluidStatus.status !== _fluid.FluidState.NOT_CONNECTED && !fluidStatus.maintenance))
   }, displayKonnectorHeader())), /*#__PURE__*/_react.default.createElement(_core.AccordionDetails, {
     classes: {
       root: 'expansion-panel-details'
     }
-  }, getConnectionCard())) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, getConnectionCard()), /*#__PURE__*/_react.default.createElement(_KonnectorModal.default, {
+  }, getConnectionCard())) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.AccordionDetails, null, getConnectionCard())), /*#__PURE__*/_react.default.createElement(_KonnectorModal.default, {
     open: openModal,
     isUpdating: isUpdating,
     isLogging: isLogging,
@@ -2890,7 +2939,7 @@ if(false) {}
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.consumptionview-loading {\n  background-color: #121212;\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.consumptionview-content {\n  background-color: #121212;\n}\n.consumptionview-content.--hidden {\n  display: none;\n}\n\n.konnector-section {\n  background-color: #121212;\n  margin: auto;\n  width: 45.75rem;\n  box-sizing: border-box;\n  margin-top: 1rem;\n  margin-bottom: 2rem;\n}\n@media only screen and (max-width : 768px) {\n  .konnector-section {\n    width: 100%;\n    padding: 0rem 1rem 3rem 1rem;\n    margin-bottom: 0;\n  }\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.consumptionview-loading {\n  background-color: #121212;\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.consumptionview-content {\n  background-color: #121212;\n}\n.consumptionview-content.--hidden {\n  display: none;\n}\n\n.konnector-section {\n  background-color: #121212;\n  margin: 0 auto;\n  width: 45.75rem;\n  box-sizing: border-box;\n}\n@media only screen and (max-width : 768px) {\n  .konnector-section {\n    width: 100%;\n    padding: 0rem 1rem 3rem 1rem;\n  }\n}", ""]);
 
 
 
@@ -3140,6 +3189,8 @@ var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("oKH6");
+
 __webpack_require__("0OtY");
 
 var _GrdfBill = _interopRequireDefault(__webpack_require__("jXsH"));
@@ -3160,15 +3211,15 @@ var GrdfInit = function GrdfInit(_ref) {
   var client = (0, _cozyClient.useClient)();
   var dispatch = (0, _reactRedux.useDispatch)();
 
+  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      isConnectionModalOpen = _useSelector.modal.isConnectionModalOpen;
+
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      openModal = _useState2[0],
-      setOpenModal = _useState2[1];
-
-  var _useState3 = (0, _react.useState)(false),
-      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      showForm = _useState4[0],
-      setShowForm = _useState4[1];
+      showForm = _useState2[0],
+      setShowForm = _useState2[1];
 
   var konnectorSlug = fluidStatus.connection.konnectorConfig.slug;
   var siteLink = fluidStatus.connection.konnectorConfig.siteLink;
@@ -3240,24 +3291,19 @@ var GrdfInit = function GrdfInit(_ref) {
       return _ref2.apply(this, arguments);
     };
   }(), [client, konnector, dispatch, fluidStatus.fluidType, fluidStatus.connection, onSuccess, konnectorSlug]);
-  var toggleModal = (0, _react.useCallback)(function () {
-    setOpenModal(function (prev) {
-      return !prev;
-    });
-  }, []);
   var goToPartnerSite = (0, _react.useCallback)(function () {
     window.open(siteLink, '_blank');
   }, [siteLink]);
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !showForm ? /*#__PURE__*/_react.default.createElement(_GrdfBill.default, {
-    togglePartnerConnectionModal: toggleModal
-  }) : /*#__PURE__*/_react.default.createElement(_GrdfForm.default, {
-    togglePartnerConnectionModal: toggleModal
-  }), /*#__PURE__*/_react.default.createElement(_GrdfConnectModal.default, {
-    open: openModal,
+    fluidStatus: fluidStatus
+  }) : /*#__PURE__*/_react.default.createElement(_GrdfForm.default, null), /*#__PURE__*/_react.default.createElement(_GrdfConnectModal.default, {
+    open: isConnectionModalOpen,
     showForm: showForm,
     konnector: konnector,
     fluidStatus: fluidStatus,
-    handleCloseClick: toggleModal,
+    handleCloseClick: function handleCloseClick() {
+      return dispatch((0, _modal.openConnectionModal)(false));
+    },
     setShowForm: setShowForm,
     goToPartnerSite: goToPartnerSite,
     handleSuccess: handleSuccess
@@ -3910,14 +3956,17 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-__webpack_require__("0OtY");
+var _reactRedux = __webpack_require__("/MKj");
 
-var GrdfForm = function GrdfForm(_ref) {
-  var togglePartnerConnectionModal = _ref.togglePartnerConnectionModal;
+var _modal = __webpack_require__("oKH6");
 
+__webpack_require__("0OtY");
+
+var GrdfForm = function GrdfForm() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var dispatch = (0, _reactRedux.useDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -3928,7 +3977,9 @@ var GrdfForm = function GrdfForm(_ref) {
     className: "connection-form-connect-button grdf"
   }, /*#__PURE__*/_react.default.createElement(_Button.default, {
     "aria-label": t('auth.accessibility.button_connect'),
-    onClick: togglePartnerConnectionModal,
+    onClick: function onClick() {
+      return dispatch((0, _modal.openConnectionModal)(true));
+    },
     classes: {
       root: 'btn-highlight',
       label: 'text-18-bold'
@@ -3966,7 +4017,7 @@ exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.fluidchart-root {\n  background-color: #121212;\n  padding: 0.5rem 2rem 1rem 2rem;\n  margin-bottom: 1rem;\n}\n@media only screen and (max-width : 768px) {\n  .fluidchart-root {\n    padding: 0rem 1rem 1rem 1rem;\n    margin-bottom: 0rem;\n  }\n}\n\n.fluidchart-content {\n  min-height: 29.5rem;\n}\n@media only screen and (max-width : 768px) {\n  .fluidchart-content {\n    min-height: 21.5rem;\n  }\n}\n\n.fluidchart-footer {\n  display: flex;\n  align-items: center;\n  justify-content: left;\n  margin: auto;\n  padding-top: 1.5rem;\n  max-width: 45.75rem;\n}\n.fluidchart-footer .fluidchart-footer-label {\n  color: #e0e0e0;\n}\n\n.compareLegend {\n  padding: 0.5rem 0 1rem 0;\n  display: flex;\n  gap: 1rem;\n  font-weight: 700;\n  max-width: 45.75rem;\n  margin: auto;\n}\n.compareLegend .electricity {\n  color: #d87b39;\n}\n.compareLegend .electricity.compare {\n  color: #e2bca1;\n}\n.compareLegend .gas {\n  color: #45d1b8;\n}\n.compareLegend .gas.compare {\n  color: #a8f7e9;\n}\n.compareLegend .water {\n  color: #3a98ec;\n}\n.compareLegend .water.compare {\n  color: #abd4fa;\n}\n.compareLegend .multifluid {\n  color: #e3b82a;\n}\n.compareLegend .multifluid.compare {\n  color: #ffd597;\n}\n.compareLegend div {\n  display: flex;\n  gap: 0.5rem;\n  align-items: center;\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.fluidchart-root {\n  background-color: #121212;\n  padding: 0.5rem 2rem 1rem 2rem;\n}\n@media only screen and (max-width : 768px) {\n  .fluidchart-root {\n    padding: 0rem 1rem 1rem 1rem;\n  }\n}\n\n.fluidchart-content {\n  min-height: 29.5rem;\n}\n@media only screen and (max-width : 768px) {\n  .fluidchart-content {\n    min-height: 21.5rem;\n  }\n}\n\n.fluidchart-footer {\n  display: flex;\n  align-items: center;\n  justify-content: left;\n  margin: auto;\n  padding-top: 1.5rem;\n  max-width: 45.75rem;\n}\n.fluidchart-footer .fluidchart-footer-label {\n  color: #e0e0e0;\n}\n\n.compareLegend {\n  padding: 0.5rem 0 1rem 0;\n  display: flex;\n  gap: 1rem;\n  font-weight: 700;\n  max-width: 45.75rem;\n  margin: auto;\n}\n.compareLegend .electricity {\n  color: #d87b39;\n}\n.compareLegend .electricity.compare {\n  color: #e2bca1;\n}\n.compareLegend .gas {\n  color: #45d1b8;\n}\n.compareLegend .gas.compare {\n  color: #a8f7e9;\n}\n.compareLegend .water {\n  color: #3a98ec;\n}\n.compareLegend .water.compare {\n  color: #abd4fa;\n}\n.compareLegend .multifluid {\n  color: #e3b82a;\n}\n.compareLegend .multifluid.compare {\n  color: #ffd597;\n}\n.compareLegend div {\n  display: flex;\n  gap: 0.5rem;\n  align-items: center;\n}\n\n.lastValidData {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n}\n.lastValidData span.date {\n  color: #e0e0e0;\n  cursor: pointer;\n  text-decoration: underline;\n}\n.lastValidData button {\n  margin-top: 0rem !important;\n  width: 70% !important;\n  height: 40px !important;\n  max-width: 22.5rem;\n}", ""]);
 
 
 
@@ -4179,7 +4230,7 @@ exports.default = _default;
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.konnector-form {\n  margin: 0;\n}\n@media only screen and (min-width: 768px) {\n  .konnector-form {\n    padding-top: 1rem;\n    margin: 1rem 1.5rem 2rem 1.5rem;\n    padding-bottom: 1rem;\n  }\n}\n\n.connection-form {\n  text-align: center;\n}\n.connection-form span {\n  color: #e3b82a;\n  font-weight: bold;\n}\n.connection-form .connection-form-title {\n  margin-top: 0;\n  padding: 0 1rem;\n}\n.connection-form .connection-form-title.enedissgegrandlyon {\n  color: #d87b39;\n}\n.connection-form .connection-form-title.grdfgrandlyon {\n  color: #45d1b8;\n}\n.connection-form .connection-form-title.eglgrandlyon {\n  color: #3a98ec;\n}\n.connection-form .connection-form-subtitle {\n  color: #ffffff;\n}\n.connection-form .connection-form-infotext {\n  color: #e0e0e0;\n}\n.connection-form button.btn-secondary-positive span:first-child {\n  color: #e0e0e0;\n}\n.connection-form .connection-form-button {\n  margin: 0 0.5rem;\n}\n.connection-form .connection-form-button button.btn-highlight {\n  padding: 0.5rem;\n  margin-top: 0.5rem;\n  margin-bottom: 0rem;\n  height: 2.5rem;\n  max-width: 22.5rem;\n}\n.connection-form .connection-form-button button.btn-secondary-negative {\n  padding: 0.5rem;\n  margin-top: 0.5rem;\n  margin-bottom: 1.5rem;\n  height: 2.5rem;\n  max-width: 22.5rem;\n}\n.connection-form .connection-form-connect-button {\n  margin: 0 0.5rem;\n}\n.connection-form .connection-form-connect-button button.btn-highlight {\n  padding: 0.5rem;\n  margin-top: 0.5rem;\n  margin-bottom: 1rem;\n  height: 5rem;\n  max-width: 22.5rem;\n}\n.connection-form .connection-form-connect-button button.btn-secondary-negative {\n  padding: 0.5rem;\n  margin-top: 1rem;\n  margin-bottom: 2.5rem;\n  height: 5rem;\n  max-width: 22.5rem;\n}\n.connection-form .connection-form-connect-button.grdf {\n  margin-top: 2rem;\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n}\n@media only screen and (max-width : 768px) {\n  .connection-form .connection-form-connect-button .connection-form-connect-button-content {\n    justify-content: left;\n  }\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content .connection-form-connect-button-content-icon {\n  margin: 0 0.5rem 0 0;\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content .connection-form-connect-button-text {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  text-align: left;\n  max-width: 13.5rem;\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.konnector-form {\n  width: 100%;\n  margin: 0;\n}\n@media only screen and (min-width: 768px) {\n  .konnector-form {\n    padding-top: 1rem;\n    margin: 1rem 1.5rem 2rem 1.5rem;\n    padding-bottom: 1rem;\n  }\n}\n\n.connection-form {\n  text-align: center;\n}\n.connection-form span {\n  color: #e3b82a;\n  font-weight: bold;\n}\n.connection-form .connection-form-title {\n  margin: 0;\n}\n.connection-form .connection-form-title.enedissgegrandlyon {\n  color: #d87b39;\n}\n.connection-form .connection-form-title.grdfgrandlyon {\n  color: #45d1b8;\n}\n.connection-form .connection-form-title.eglgrandlyon {\n  color: #3a98ec;\n}\n.connection-form .connection-form-subtitle {\n  margin: 0 auto 0.5rem auto;\n  color: #ffffff;\n}\n.connection-form .connection-form-infotext {\n  color: #e0e0e0;\n}\n.connection-form button.btn-secondary-positive span:first-child {\n  color: #e0e0e0;\n}\n.connection-form .connection-form-button {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 0.5rem;\n}\n.connection-form .connection-form-button button {\n  height: 2.5rem;\n  max-width: 22.5rem;\n  margin: 0;\n}\n.connection-form .connection-form-connect-button {\n  margin: 0 0.5rem;\n}\n.connection-form .connection-form-connect-button button {\n  padding: 0.5rem;\n  height: 5rem;\n}\n.connection-form .connection-form-connect-button.grdf {\n  margin-top: 2rem;\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n}\n@media only screen and (max-width : 768px) {\n  .connection-form .connection-form-connect-button .connection-form-connect-button-content {\n    justify-content: left;\n  }\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content .connection-form-connect-button-content-icon {\n  margin: 0 0.5rem 0 0;\n}\n.connection-form .connection-form-connect-button .connection-form-connect-button-content .connection-form-connect-button-text {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  text-align: left;\n  max-width: 13.5rem;\n}", ""]);
 
 
 
@@ -4371,11 +4422,7 @@ var KonnectorViewerList = function KonnectorViewerList() {
   var goToFluid = (0, _react.useCallback)(function (fluidType) {
     navigate("/consumption/".concat(_fluid.FluidType[fluidType].toLowerCase()));
   }, [navigate]);
-  return /*#__PURE__*/_react.default.createElement("div", {
-    className: "kv-root"
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "kv-content"
-  }, /*#__PURE__*/_react.default.createElement("div", null, fluidStatus.map(function (fluidStatusItem, key) {
+  return fluidStatus.map(function (fluidStatusItem, key) {
     return /*#__PURE__*/_react.default.createElement(_StyledCard.default, {
       key: key,
       className: "connection-card",
@@ -4388,7 +4435,7 @@ var KonnectorViewerList = function KonnectorViewerList() {
     }), /*#__PURE__*/_react.default.createElement("div", {
       className: "konnector-title text-18-bold ".concat(_fluid.FluidType[fluidStatusItem.fluidType].toLowerCase())
     }, t("konnector_options.label_connect_to_".concat(_fluid.FluidType[fluidStatusItem.fluidType].toLowerCase()))));
-  }))));
+  });
 };
 
 var _default = KonnectorViewerList;
@@ -4607,6 +4654,28 @@ exports.default = _default;
 
 /***/ }),
 
+/***/ "Xyoa":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4BeY");
+/* harmony import */ var _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("IaFt");
+/* harmony import */ var _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1__);
+
+
+var symbol = new _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0___default.a({
+  "id": "coin_6c7fa2069486e314a047d80853cf6185",
+  "use": "coin_6c7fa2069486e314a047d80853cf6185-usage",
+  "viewBox": "0 0 36 36",
+  "content": "<symbol viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" id=\"coin_6c7fa2069486e314a047d80853cf6185\">\n<path d=\"M20.6948 1.16223C20.6205 1.1616 20.5463 1.16097 20.4799 1.15867L17.6179 1.02004L17.6002 1.36141C17.4978 1.38325 17.3971 1.41297 17.2852 1.42862L15.6657 34.2815C15.7702 34.3086 15.8703 34.3531 15.967 34.3819L15.951 34.7311L18.813 34.8698L18.8113 34.8619C18.8856 34.8625 18.9536 34.8727 19.0295 34.8812C27.4514 35.2992 34.6573 28.0886 35.116 18.777C35.5826 9.46374 29.1245 1.57854 20.6948 1.16223Z\" fill=\"url(#coin_6c7fa2069486e314a047d80853cf6185_paint0_angular_13983_3418)\" />\n<path opacity=\"0.75\" d=\"M34.9434 15.1906L31.7833 14.4651L15.678 34.0316L15.6654 34.2813C15.77 34.3084 15.87 34.3529 15.9668 34.3817L15.9507 34.7309L18.8127 34.8695L18.811 34.8617C18.8853 34.8623 18.9533 34.8725 19.0292 34.881C27.4511 35.299 34.657 28.0883 35.1157 18.7768C35.1821 17.544 35.1162 16.3477 34.9434 15.1906Z\" fill=\"#A95508\" />\n<path d=\"M32.1201 18.6221C32.5794 9.31192 26.121 1.42756 17.6948 1.01184C9.26857 0.596126 2.06542 7.80648 1.6061 17.1166C1.14677 26.4268 7.60521 34.3111 16.0314 34.7268C24.4576 35.1426 31.6608 27.9322 32.1201 18.6221Z\" fill=\"url(#coin_6c7fa2069486e314a047d80853cf6185_paint1_linear_13983_3418)\" />\n<path d=\"M28.9838 18.4667C29.3489 11.0666 24.2184 4.79987 17.5245 4.46962C10.8306 4.13937 5.10819 9.87064 4.74309 17.2708C4.378 24.6709 9.5085 30.9376 16.2024 31.2679C22.8963 31.5981 28.6187 25.8669 28.9838 18.4667Z\" fill=\"url(#coin_6c7fa2069486e314a047d80853cf6185_paint2_linear_13983_3418)\" />\n<path opacity=\"0.75\" d=\"M28.9838 18.4667C29.3489 11.0666 24.2184 4.79987 17.5245 4.46962C10.8306 4.13937 5.10819 9.87064 4.74309 17.2708C4.378 24.6709 9.5085 30.9376 16.2024 31.2679C22.8963 31.5981 28.6187 25.8669 28.9838 18.4667Z\" fill=\"#A95508\" />\n<path d=\"M28.9614 18.9128C29.3144 11.7589 24.3546 5.70065 17.8834 5.38138C11.4122 5.06212 5.8802 10.6027 5.52725 17.7566C5.1743 24.9106 10.1341 30.9688 16.6053 31.288C23.0764 31.6073 28.6085 26.0667 28.9614 18.9128Z\" fill=\"url(#coin_6c7fa2069486e314a047d80853cf6185_paint3_linear_13983_3418)\" />\n<path opacity=\"0.75\" d=\"M12.1178 16.2449L9 17.0001L10.2741 17.9394L11.9157 17.7885L11.8776 18.3095L11.8644 18.8417L11.8546 19.2375C11.8514 19.3649 11.8525 19.4919 11.8577 19.6185L9.00014 20.0001L10.1908 21.2967L11.9335 21.1366C12.0475 22.2971 12.2737 23.3384 12.612 24.2605C12.959 25.1727 12.0562 24.9945 12.612 25.6152C13.7 26.8303 15.1997 27.6221 15.9736 27.9141C16.7478 28.197 17.6231 28.2935 18.5997 28.2038C19.8035 28.0932 20.8497 27.7383 21.7381 27.1393C22.6349 26.5394 23.3938 25.7435 24.0147 24.7514L22.993 23.7832L21.4464 22.7538L21.9122 24.1821C21.7825 24.3302 21.6273 24.4942 21.4464 24.6742C21.274 24.8535 21.0639 25.0271 20.8161 25.1951C20.5686 25.354 20.2796 25.4941 19.949 25.6152C19.6184 25.7364 19.23 25.8174 18.7838 25.8584C17.622 25.9652 16.6649 25.6083 15.9125 24.7879C15.1604 23.9583 14.6885 22.6627 14.497 20.901L19.4219 20.4485C19.6408 20.4284 19.8152 20.3397 19.945 20.1826C20.0749 20.0254 20.142 19.8604 20.1463 19.6875L20.1669 18.855L18.5001 18.0001L14.4086 19.3841C14.4033 19.2575 14.4023 19.1305 14.4054 19.0031L14.4152 18.6073L14.4284 18.0751L14.4666 17.5541L20.6921 16.9821C20.911 16.962 21.0854 16.8733 21.2153 16.7162C21.3452 16.559 21.4123 16.394 21.4166 16.2211L21.4372 15.3886L20.0001 14.5001L14.6686 16.0105C14.9793 14.3207 15.5325 13.0126 16.3282 12.0862C17.1325 11.1499 18.1198 10.628 19.29 10.5205C19.9046 10.464 20.4033 10.5044 20.7863 10.6417C21.1695 10.7699 21.4849 10.9225 21.7325 11.0994C21.9801 11.2764 22.1775 11.4444 22.3248 11.6033C22.4807 11.7524 22.6302 11.8203 22.7733 11.8072C22.908 11.7948 23.014 11.7533 23.0914 11.6826C23.1687 11.612 23.2422 11.5281 23.3118 11.4309L24.1832 10.3296C23.6222 9.5823 22.9433 9.01377 22.1466 8.62401C21.35 8.23426 20.3834 8.09159 19.2468 8.19602C18.3376 8.27957 17.4915 8.52979 16.7084 8.9467C15.9337 9.36284 15.2395 9.92136 14.6258 10.6223C14.0123 11.3141 13.4921 12.138 13.0652 13.0941C12.6386 14.0411 12.3227 15.0914 12.1178 16.2449Z\" fill=\"#A95508\" />\n<path d=\"M8.8163 15.4107L10.6221 15.2448C10.8271 14.0912 11.1429 13.0409 11.5695 12.094C11.9964 11.1379 12.5166 10.3139 13.1301 9.62213C13.7439 8.92122 14.4381 8.3627 15.2127 7.94656C15.9958 7.52965 16.842 7.27942 17.7512 7.19588C18.8877 7.09145 19.8543 7.23411 20.651 7.62387C21.4477 8.01363 22.1265 8.58215 22.6876 9.32944L21.8161 10.4308C21.7465 10.5279 21.673 10.6118 21.5957 10.6825C21.5184 10.7531 21.4123 10.7947 21.2776 10.807C21.1345 10.8202 20.985 10.7522 20.8291 10.6032C20.6819 10.4442 20.4844 10.2763 20.2368 10.0993C19.9892 9.92234 19.6738 9.76976 19.2906 9.64157C18.9077 9.50429 18.4089 9.46388 17.7943 9.52035C16.6242 9.62788 15.6369 10.1498 14.8325 11.0861C14.0368 12.0125 13.4836 13.3206 13.1729 15.0104L19.9415 14.3884L19.9209 15.2209C19.9166 15.3938 19.8495 15.5588 19.7196 15.716C19.5897 15.8732 19.4154 15.9618 19.1965 15.9819L12.9709 16.554C12.9582 16.7276 12.9455 16.9013 12.9328 17.0749C12.9285 17.2478 12.9241 17.4252 12.9196 17.6072C12.9162 17.7437 12.9129 17.8756 12.9098 18.003C12.9066 18.1304 12.9077 18.2573 12.9129 18.3839L18.6713 17.8548L18.6506 18.6873C18.6464 18.8602 18.5793 19.0252 18.4494 19.1824C18.3195 19.3396 18.1451 19.4282 17.9262 19.4484L13.0013 19.9009C13.1928 21.6625 13.6647 22.9581 14.4169 23.7877C15.1693 24.6082 16.1264 24.9651 17.2881 24.8583C17.7343 24.8173 18.1227 24.7362 18.4533 24.6151C18.7839 24.4939 19.0729 24.3539 19.3205 24.195C19.5682 24.027 19.7783 23.8533 19.9507 23.6741C20.1316 23.4941 20.2868 23.33 20.4165 23.182C20.5548 23.024 20.6756 22.8949 20.7789 22.7946C20.8906 22.6936 21.0012 22.638 21.1106 22.628C21.1948 22.6202 21.2618 22.6277 21.3116 22.6504C21.3699 22.6722 21.4318 22.7165 21.4973 22.7831L22.5191 23.7513C21.8981 24.7434 21.1392 25.5393 20.2424 26.1391C19.354 26.7382 18.3079 27.093 17.104 27.2037C16.1275 27.2934 15.2521 27.1968 14.478 26.9139C13.7041 26.6219 13.0349 26.1705 12.4705 25.5597C11.9147 24.939 11.4633 24.1726 11.1164 23.2604C10.778 22.3383 10.5519 21.297 10.4378 20.1364L8.69518 20.2966L8.73307 18.768L10.3621 18.6183C10.3568 18.4917 10.3558 18.3647 10.3589 18.2374C10.3621 18.11 10.3654 17.9781 10.3687 17.8416C10.3732 17.6596 10.3776 17.4822 10.3819 17.3093C10.3946 17.1357 10.4073 16.962 10.42 16.7884L8.77841 16.9392L8.8163 15.4107Z\" fill=\"url(#coin_6c7fa2069486e314a047d80853cf6185_paint4_linear_13983_3418)\" />\n<defs>\n<radialGradient id=\"coin_6c7fa2069486e314a047d80853cf6185_paint0_angular_13983_3418\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(22.1186 20.6523) rotate(119.031) scale(70.3432 92.2077)\">\n<stop offset=\"0.413979\" stop-color=\"#BF723B\" />\n<stop offset=\"0.512607\" stop-color=\"#DD9A2B\" />\n<stop offset=\"0.601154\" stop-color=\"#F6D74C\" />\n<stop offset=\"0.656158\" stop-color=\"#D1880D\" />\n<stop offset=\"0.759746\" stop-color=\"#A05B11\" />\n<stop offset=\"0.889115\" stop-color=\"#A05B11\" />\n<stop offset=\"0.947304\" stop-color=\"#F5B11B\" />\n<stop offset=\"0.972422\" stop-color=\"#BE7D1B\" />\n</radialGradient>\n<linearGradient id=\"coin_6c7fa2069486e314a047d80853cf6185_paint1_linear_13983_3418\" x1=\"17.4544\" y1=\"38.4582\" x2=\"36.916\" y2=\"11.3407\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#BF723B\" />\n<stop offset=\"0.12897\" stop-color=\"#DD9A2B\" />\n<stop offset=\"0.453125\" stop-color=\"#F6D74C\" />\n<stop offset=\"0.75\" stop-color=\"#D1880D\" />\n<stop offset=\"1\" stop-color=\"#A05B11\" />\n</linearGradient>\n<linearGradient id=\"coin_6c7fa2069486e314a047d80853cf6185_paint2_linear_13983_3418\" x1=\"25.9569\" y1=\"31.2874\" x2=\"29.6278\" y2=\"10.2197\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#BF723B\" />\n<stop offset=\"0.260417\" stop-color=\"#DD9A2B\" />\n<stop offset=\"0.453125\" stop-color=\"#F6D74C\" />\n<stop offset=\"0.75\" stop-color=\"#D1880D\" />\n<stop offset=\"1\" stop-color=\"#A05B11\" />\n</linearGradient>\n<linearGradient id=\"coin_6c7fa2069486e314a047d80853cf6185_paint3_linear_13983_3418\" x1=\"14.7165\" y1=\"31.9085\" x2=\"30.5309\" y2=\"9.54805\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#BF723B\" />\n<stop offset=\"0.178858\" stop-color=\"#DD9A2B\" />\n<stop offset=\"0.453125\" stop-color=\"#F6D74C\" />\n<stop offset=\"0.75\" stop-color=\"#D1880D\" />\n<stop offset=\"1\" stop-color=\"#A05B11\" />\n</linearGradient>\n<linearGradient id=\"coin_6c7fa2069486e314a047d80853cf6185_paint4_linear_13983_3418\" x1=\"2.49277\" y1=\"25.9591\" x2=\"25.5833\" y2=\"28.7972\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#BF723B\" />\n<stop offset=\"0.260417\" stop-color=\"#DD9A2B\" />\n<stop offset=\"0.453125\" stop-color=\"#F6D74C\" />\n<stop offset=\"0.75\" stop-color=\"#D1880D\" />\n<stop offset=\"1\" stop-color=\"#A05B11\" />\n</linearGradient>\n</defs>\n</symbol>"
+});
+var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1___default.a.add(symbol);
+/* harmony default export */ __webpack_exports__["default"] = (symbol);
+
+/***/ }),
+
 /***/ "Y5EC":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -4861,7 +4930,7 @@ if(false) {}
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.kv-root {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 0rem 0rem 1rem 0rem;\n}\n.kv-root .kv-content {\n  width: 45.75rem;\n}\n@media only screen and (max-width : 768px) {\n  .kv-root .kv-content {\n    width: 100%;\n  }\n}\n.kv-root .kv-content .kv-header {\n  margin-top: 2.5rem;\n  margin-bottom: 1.25rem;\n  color: #e0e0e0;\n}\n\nbutton.connection-card div {\n  display: flex;\n  align-items: center;\n  justify-content: start;\n  height: 80px;\n  font-weight: normal;\n  box-sizing: border-box;\n}\nbutton.connection-card div svg {\n  margin-right: 1.5rem;\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nbutton.connection-card div {\n  display: flex;\n  align-items: center;\n  justify-content: start;\n  height: 80px;\n  font-weight: normal;\n  box-sizing: border-box;\n}\nbutton.connection-card div svg {\n  margin-right: 1.5rem;\n}", ""]);
 
 
 
@@ -5555,6 +5624,8 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
 
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
+var _core = __webpack_require__("TTf+");
+
 var _legendComparison = _interopRequireDefault(__webpack_require__("m9b7"));
 
 var _StyledIcon = _interopRequireDefault(__webpack_require__("I07j"));
@@ -5583,12 +5654,20 @@ var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
 var _reactRedux = __webpack_require__("/MKj");
 
+var _reactRouterDom = __webpack_require__("SOjZ");
+
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
+var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
+
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _chart = __webpack_require__("idK9");
 
+var _modal = __webpack_require__("oKH6");
+
+var _utils = __webpack_require__("c+yx");
+
 var _FluidChartSwipe = _interopRequireDefault(__webpack_require__("cbBy"));
 
 __webpack_require__("3RoJ");
@@ -5616,6 +5695,9 @@ var FluidChart = function FluidChart(_ref) {
       fluidStatus = _useSelector.global.fluidStatus;
 
   var dispatch = (0, _reactRedux.useDispatch)();
+  var navigate = (0, _reactRouterDom.useNavigate)();
+  var currentFluidStatus = fluidStatus[fluidType];
+  var isFluidConnected = (0, _utils.isKonnectorActive)(fluidStatus, fluidType);
 
   var _useExploration = (0, _useExploration3.default)(),
       _useExploration2 = (0, _slicedToArray2.default)(_useExploration, 2),
@@ -5742,10 +5824,51 @@ var FluidChart = function FluidChart(_ref) {
     }), /*#__PURE__*/_react.default.createElement("span", {
       className: lowercaseFluidType
     }, t("timestep.".concat(lowercaseTimeStep, ".current")))));
-  }, [lowercaseFluidType, lowercaseTimeStep, t]);
+  }, [lowercaseFluidType, lowercaseTimeStep, t]); // TODO if we keep this, use the same existing function
+
+  var moveToDate = function moveToDate() {
+    if (currentFluidStatus !== null && currentFluidStatus !== void 0 && currentFluidStatus.lastDataDate) {
+      var dateChartService = new _dateChart.default();
+      var updatedIndex = dateChartService.defineDateIndex(currentTimeStep, currentFluidStatus.lastDataDate);
+      dispatch((0, _chart.setSelectedDate)(currentFluidStatus.lastDataDate));
+      dispatch((0, _chart.setCurrentIndex)(updatedIndex));
+    }
+  };
+
+  var toggleModalConnection = function toggleModalConnection() {
+    switch (fluidType) {
+      case _fluid.FluidType.ELECTRICITY:
+        navigate('/sge-connect');
+        break;
+
+      case _fluid.FluidType.GAS:
+      case _fluid.FluidType.WATER:
+        dispatch((0, _chart.setShowOfflineData)(false));
+        dispatch((0, _modal.openConnectionModal)(true));
+        break;
+    }
+  };
+
+  var LastDataValid = function LastDataValid() {
+    var _currentFluidStatus$l;
+
+    return /*#__PURE__*/_react.default.createElement("div", {
+      className: "lastValidData"
+    }, /*#__PURE__*/_react.default.createElement("span", {
+      className: "text-16-normal date",
+      onClick: moveToDate
+    }, t('consumption_visualizer.last_valid_data'), ' : ', (currentFluidStatus === null || currentFluidStatus === void 0 ? void 0 : (_currentFluidStatus$l = currentFluidStatus.lastDataDate) === null || _currentFluidStatus$l === void 0 ? void 0 : _currentFluidStatus$l.toFormat('dd/MM/yy')) || '-'), /*#__PURE__*/_react.default.createElement("p", null, t('auth.warningOfflineData')), /*#__PURE__*/_react.default.createElement(_core.Button, {
+      classes: {
+        root: 'btn-secondary-negative',
+        label: 'text-16-bold'
+      },
+      onClick: toggleModalConnection
+    }, t("auth.".concat((0, _utils.getKonnectorSlug)(fluidType), ".connect"))));
+  };
+
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLoaded && /*#__PURE__*/_react.default.createElement("div", {
     className: "fluidchart-root"
-  }, currentTimeStep === _timeStep.TimeStep.HALF_AN_HOUR && !containsHalfHourData ? /*#__PURE__*/_react.default.createElement(_HalfHourNoData.default, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
+  }, !isFluidConnected && /*#__PURE__*/_react.default.createElement(LastDataValid, null), currentTimeStep === _timeStep.TimeStep.HALF_AN_HOUR && !containsHalfHourData ? /*#__PURE__*/_react.default.createElement(_HalfHourNoData.default, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
     className: "fluidchart-content"
   }, /*#__PURE__*/_react.default.createElement(_FluidChartSwipe.default, {
     fluidType: fluidType,
@@ -6003,6 +6126,8 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
 
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
+var _coin = _interopRequireDefault(__webpack_require__("Xyoa"));
+
 var _coins = _interopRequireDefault(__webpack_require__("Vp4i"));
 
 var _StyledIcon = _interopRequireDefault(__webpack_require__("I07j"));
@@ -6119,13 +6244,18 @@ var TotalConsumption = function TotalConsumption(_ref) {
       computeTotal(currentDatachart.comparisonData, setPreviousTotalValue);
     }
   }, [currentDatachart, fluidType, currentTimeStep, client, computeTotal]);
+
+  var compareIcon = function compareIcon() {
+    return /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+      className: "pile-icon",
+      icon: showCompare ? _coins.default : _coin.default,
+      size: showCompare ? 48 : 36
+    });
+  };
+
   return /*#__PURE__*/_react.default.createElement("div", {
-    className: "icon-line"
-  }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "pile-icon",
-    icon: _coins.default,
-    size: 48
-  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", {
+    className: "icon-line ".concat(showCompare ? 'compare' : '')
+  }, compareIcon(), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", {
     className: "euro-value"
   }, totalValue), /*#__PURE__*/_react.default.createElement("span", {
     className: "euro-symbol"
@@ -6166,16 +6296,23 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
+var _reactRedux = __webpack_require__("/MKj");
+
+var _chart = __webpack_require__("idK9");
+
+var _modal = __webpack_require__("oKH6");
+
 var _decoreText = __webpack_require__("j5h9");
 
 __webpack_require__("0OtY");
 
 var GrdfBill = function GrdfBill(_ref) {
-  var togglePartnerConnectionModal = _ref.togglePartnerConnectionModal;
+  var fluidStatus = _ref.fluidStatus;
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var dispatch = (0, _reactRedux.useDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -6189,12 +6326,22 @@ var GrdfBill = function GrdfBill(_ref) {
     className: "connection-form-button"
   }, /*#__PURE__*/_react.default.createElement(_Button.default, {
     "aria-label": t('auth.grdfgrandlyon.accessibility.connect'),
-    onClick: togglePartnerConnectionModal,
+    onClick: function onClick() {
+      return dispatch((0, _modal.openConnectionModal)(true));
+    },
     classes: {
       root: 'btn-highlight',
       label: 'text-16-bold'
     }
-  }, t('auth.grdfgrandlyon.connect'))));
+  }, t('auth.grdfgrandlyon.connect')), fluidStatus.firstDataDate && /*#__PURE__*/_react.default.createElement(_Button.default, {
+    classes: {
+      root: 'btn-secondary',
+      label: 'text-16-bold'
+    },
+    onClick: function onClick() {
+      return dispatch((0, _chart.setShowOfflineData)(true));
+    }
+  }, t('auth.button_showOfflineData'))));
 };
 
 var _default = GrdfBill;
@@ -6949,7 +7096,7 @@ var CardBase = (0, _styles.withStyles)({
     boxSizing: 'border-box',
     boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.75)',
     borderRadius: '4px',
-    margin: '10px 0px 20px 0px'
+    margin: '10px 0px 10px 0px'
   }
 })(_CardActionArea.default);
 var CardElec = (0, _styles.withStyles)({
@@ -7136,16 +7283,23 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
+var _reactRedux = __webpack_require__("/MKj");
+
+var _chart = __webpack_require__("idK9");
+
+var _modal = __webpack_require__("oKH6");
+
 var _decoreText = __webpack_require__("j5h9");
 
 __webpack_require__("0OtY");
 
 var EpglBill = function EpglBill(_ref) {
-  var togglePartnerConnectionModal = _ref.togglePartnerConnectionModal;
+  var fluidStatus = _ref.fluidStatus;
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var dispatch = (0, _reactRedux.useDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -7159,12 +7313,22 @@ var EpglBill = function EpglBill(_ref) {
     className: "connection-form-button"
   }, /*#__PURE__*/_react.default.createElement(_Button.default, {
     "aria-label": t('auth.eglgrandlyon.accessibility.connect'),
-    onClick: togglePartnerConnectionModal,
+    onClick: function onClick() {
+      return dispatch((0, _modal.openConnectionModal)(true));
+    },
     classes: {
       root: 'btn-highlight',
       label: 'text-16-bold'
     }
-  }, t('auth.eglgrandlyon.connect'))));
+  }, t('auth.eglgrandlyon.connect')), fluidStatus.firstDataDate && /*#__PURE__*/_react.default.createElement(_Button.default, {
+    classes: {
+      root: 'btn-secondary',
+      label: 'text-16-bold'
+    },
+    onClick: function onClick() {
+      return dispatch((0, _chart.setShowOfflineData)(true));
+    }
+  }, t('auth.button_showOfflineData'))));
 };
 
 var _default = EpglBill;
@@ -8030,6 +8194,10 @@ var _EpglConnectModal = _interopRequireDefault(__webpack_require__("b88j"));
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
+var _reactRedux = __webpack_require__("/MKj");
+
+var _modal = __webpack_require__("oKH6");
+
 __webpack_require__("0OtY");
 
 var _EpglBill = _interopRequireDefault(__webpack_require__("o1ew"));
@@ -8042,39 +8210,38 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var EpglInit = function EpglInit(_ref) {
   var fluidStatus = _ref.fluidStatus;
+  var dispatch = (0, _reactRedux.useDispatch)();
+
+  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      isConnectionModalOpen = _useSelector.modal.isConnectionModalOpen;
+
   var siteLink = fluidStatus.connection.konnectorConfig.siteLink;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      openModal = _useState2[0],
-      setOpenModal = _useState2[1];
+      showForm = _useState2[0],
+      setShowForm = _useState2[1];
 
   var _useState3 = (0, _react.useState)(false),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      showForm = _useState4[0],
-      setShowForm = _useState4[1];
-
-  var _useState5 = (0, _react.useState)(false),
-      _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
-      hasCreatedAccount = _useState6[0],
-      setHasCreatedAccount = _useState6[1];
+      hasCreatedAccount = _useState4[0],
+      setHasCreatedAccount = _useState4[1];
 
-  var toggleModal = (0, _react.useCallback)(function () {
-    setOpenModal(function (prev) {
-      return !prev;
-    });
-  }, []);
   var goToPartnerSite = (0, _react.useCallback)(function () {
     window.open(siteLink, '_blank');
   }, [siteLink]);
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !showForm ? /*#__PURE__*/_react.default.createElement(_EpglBill.default, {
-    togglePartnerConnectionModal: toggleModal
+    fluidStatus: fluidStatus
   }) : /*#__PURE__*/_react.default.createElement(_EpglForm.default, {
     fluidStatus: fluidStatus,
     hasCreatedAccount: hasCreatedAccount
   }), /*#__PURE__*/_react.default.createElement(_EpglConnectModal.default, {
-    open: openModal,
-    handleCloseClick: toggleModal,
+    open: isConnectionModalOpen,
+    handleCloseClick: function handleCloseClick() {
+      return dispatch((0, _modal.openConnectionModal)(false));
+    },
     setShowForm: setShowForm,
     goToPartnerSite: goToPartnerSite,
     setHasCreatedAccount: setHasCreatedAccount
@@ -8222,7 +8389,7 @@ var InfoDataConsumptionVisualizer = function InfoDataConsumptionVisualizer(_ref)
       className: "error-line"
     }, /*#__PURE__*/_react.default.createElement("span", {
       className: "text-16-normal underlined-error"
-    }, (fluidType === _fluid.FluidType.MULTIFLUID ? "".concat(t('consumption_visualizer.last_valid_data_multi')) : "".concat(t('consumption_visualizer.last_valid_data'))) + " : ".concat(lastDataDate ? lastDataDate.toFormat("dd'/'MM'/'yy") : '-')));
+    }, (fluidType === _fluid.FluidType.MULTIFLUID ? "".concat(t('consumption_visualizer.last_valid_data_multi')) : "".concat(t('consumption_visualizer.last_available_data'))) + " : ".concat(lastDataDate ? lastDataDate.toFormat("dd'/'MM'/'yy") : '-')));
   }
 
   if (dataload.state === _dataload.DataloadState.EMPTY || dataload.state === _dataload.DataloadState.HOLE || dataload.state === _dataload.DataloadState.AGGREGATED_EMPTY) {
@@ -8250,7 +8417,7 @@ exports.default = _default;
 
 exports = module.exports = __webpack_require__("JPst")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.icon-line {\n  display: flex;\n  align-items: flex-end;\n}\n.icon-line svg {\n  transform: translate(0px, 4px);\n}\n.icon-line .compare span {\n  color: #7b7b7b;\n  font-size: 1.4rem;\n}\n.icon-line .compare span.euro-symbol {\n  font-size: 0.8rem;\n}\n.icon-line .euro-value {\n  font-size: 2rem;\n  font-weight: 900;\n  color: white;\n  margin-left: 0.7rem;\n  margin-right: 0.3rem;\n}\n.icon-line .euro-symbol {\n  color: white;\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.icon-line {\n  display: flex;\n  align-items: baseline;\n}\n.icon-line.compare {\n  align-items: flex-end;\n}\n.icon-line svg {\n  transform: translate(0px, 4px);\n}\n.icon-line .compare span {\n  color: #7b7b7b;\n  font-size: 1.4rem;\n}\n.icon-line .compare span.euro-symbol {\n  font-size: 0.8rem;\n}\n.icon-line .euro-value {\n  font-size: 2rem;\n  font-weight: 900;\n  color: white;\n  margin-left: 0.7rem;\n  margin-right: 0.3rem;\n}\n.icon-line .euro-symbol {\n  color: white;\n}", ""]);
 
 
 
diff --git a/app/ecolyo.1813cb642a5c7380cd4c.js b/app/ecolyo.2191be4f765ced62bfce.js
similarity index 98%
rename from app/ecolyo.1813cb642a5c7380cd4c.js
rename to app/ecolyo.2191be4f765ced62bfce.js
index 47c0f3e7d9baaba1f87de96b54efca03bda8c506..2ae39b6dff343dfe456ecb389018a4a6bfa187d6 100644
--- a/app/ecolyo.1813cb642a5c7380cd4c.js
+++ b/app/ecolyo.2191be4f765ced62bfce.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"eff4cc1e75bcc37e8fed","4":"8dbc60519627bd9bef5e","5":"8aa52fadbb475400faa5","6":"c03889ab8782bad3bebe","7":"1850b6ce28566211a509","8":"5a104e5906433ba909f2","9":"d4e0f8345c64c54574af"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"eff4cc1e75bcc37e8fed","4":"4bdc1836bb506dfd5fea","5":"db82752ea0dfdcfbeaad","6":"c03889ab8782bad3bebe","7":"1850b6ce28566211a509","8":"5a104e5906433ba909f2","9":"d4e0f8345c64c54574af"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -1358,8 +1358,6 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.default = void 0;
 
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
 var _core = __webpack_require__("TTf+");
@@ -1382,10 +1380,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 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; }
 
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
 var ProfileTypeFormDateSelection = function ProfileTypeFormDateSelection(_ref) {
   var step = _ref.step,
       viewedStep = _ref.viewedStep,
@@ -1513,7 +1507,8 @@ var ProfileTypeFormDateSelection = function ProfileTypeFormDateSelection(_ref) {
     setPreviousStep(profileType);
   }, [profileType, setPreviousStep]);
   var handleNext = (0, _react.useCallback)(function () {
-    setNextStep(_objectSpread(_objectSpread({}, profileType), {}, (0, _defineProperty2.default)({}, answerType.attribute, answer)));
+    profileType[answerType.attribute] = answer;
+    setNextStep(profileType);
   }, [profileType, setNextStep, answer, answerType.attribute]);
 
   function handleSelectMonth(event) {
@@ -8839,7 +8834,7 @@ exports.default = _default;
 /***/ "9pOX":
 /***/ (function(module) {
 
-module.exports = JSON.parse("{\"common\":{\"title_app\":\"Ecolyo\",\"title_consumption\":\"Conso\",\"title_challenge\":\"Défis\",\"title_quiz\":\"Quiz\",\"title_exploration\":\"Exploration\",\"title_action\":\"Action\",\"title_duel\":\"Duel final\",\"title_ecogesture\":\"Astuce\",\"title_ecogestures\":\"Astuces\",\"title_ecogestures_choice\":\"Sélection des astuces\",\"title_options\":\"Options\",\"title_analysis\":\"Analyse\",\"title_profiletype\":\"Ajuster mon profil\",\"title_legal_notice\":\"Mentions légales\",\"title_gcu\":\"Conditions générales d’utilisation\",\"title_accessibility\":\"Accessibilité : non conforme\",\"title_sge_connect\":\"Connexion à l'électricité\",\"accessibility\":{\"loading\":\"Chargement\"}},\"navigation\":{\"consumption\":\"Conso\",\"challenges\":\"Défis\",\"ecogestures\":\"Astuces\",\"options\":\"Options\",\"analysis\":\"Analyse\"},\"FLUID\":{\"ELECTRICITY\":{\"NAME\":\"Électricité\",\"LABEL\":\"Électricité\",\"UNIT\":\"kWh\",\"ADD\":\"Ajouter l'électricité\",\"MEGAUNIT\":\"MWh\",\"provider\":\"Enedis\"},\"WATER\":{\"NAME\":\"Eau\",\"LABEL\":\"Eau\",\"ADD\":\"Ajouter l'eau\",\"UNIT\":\"L\",\"MEGAUNIT\":\"m³\",\"provider\":\"Eau Publique du Grand Lyon\"},\"GAS\":{\"NAME\":\"Gaz\",\"LABEL\":\"Gaz\",\"ADD\":\"Ajouter le gaz\",\"UNIT\":\"kWh\",\"MEGAUNIT\":\"MWh\",\"provider\":\"GRDF\"},\"MULTIFLUID\":{\"NAME\":\"Multi fluide\",\"LABEL\":\"Multi\",\"UNIT\":\"€\"}},\"action\":{\"duration\":\"Durée : %{smart_count} jours\",\"result\":\"Résultat\",\"finished\":\"Défi terminé !\",\"details\":\"Détail de l'astuce\",\"apply\":\"J'applique cette action\",\"other\":\"Je choisis une autre action\",\"resultText1\":\"Cela n'a pas été trop difficile ?\",\"resultText2\":\"Jetez un coup d'œil dans la page conso dans 1 à 3 jours, le temps que vos données arrivent, pour voir l'impact de votre action.\",\"resultText3\":\"Pas de baisse de significative ? Pas de panique, en maintenant cette pratique dans le temps, les économies d'énergies et d'eau seront davantage visibles.\",\"resultText4\":\"Dans tous les cas, bravo, vous remportez...\",\"ok\":\"Ok\"},\"action_modal\":{\"accept\":\"Je relève le défi\",\"refuse\":\"Je me défile\",\"accessibility\":{\"window_title\":\"Fenêtre de confirmation\",\"button_accept\":\"Accepter\",\"button_refuse\":\"Refuser\"}},\"analysis\":{\"viewTitle\":\"Analyse\",\"comparison\":\"Comparatif\",\"analysis_date\":\"Conso totale\",\"challenge\":\"Défis terminés en\",\"user_consumption\":\"Votre conso\",\"average_home\":\"Conso moyenne d'un profil similaire\",\"average_home_description\":\"Le comparatif ici présenté est calculé sur la base d'un profil similaire au vôtre. Il s'agit d'un calcul et non d'une comparaison avec les autres utilisateurs de l'application. Sont pris en compte l'ensemble des informations entrées dans votre profil : mode de chauffage, âge du logement et éventuels travaux de rénovation, etc. Ce modèle a été créé avec l'Agence Locale de l'Energie sur la base de chiffres issues du Schéma Directeur des Energies de la Métropole de Lyon et de Chiffres-clé publiés par l'ADEME (l'Agence de l'Environnement et de la Maîtrise de l'Energie).\",\"approximative_description\":\"Pour comparer votre consommation avec un foyer similaire ou avec une conso idéale, veuillez détailler votre profil\",\"not_connected\":\"Non connecté\",\"no_data_2\":\"Données non disponibles\",\"accessibility\":{\"button_go_to_profil\":\"Détailler mon profil\"},\"max_day\":\"Jour où vous avez le plus consommé\",\"compare\":{\"title\":\"Comparateur\",\"month_tab\":\"Comparer au mois dernier\",\"year_tab\":\"Comparer à l'année dernière\"},\"no_data\":\"Pas de données\"},\"analysis_error_modal\":{\"title\":\"Aucune analyse\",\"message\":\"Pour profiter d’une analyse de vos consommations, connectez au moins un de vos compteurs.\",\"go_to_options\":\"Je connecte mes compteurs\",\"go_back\":\"Retour\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_go_back\":\"Retour\",\"button_goto_konnector\":\"Aller aux connecteurs\"}},\"analysis_pie\":{\"total\":\"Conso totale\",\"month\":\"Au mois de \",\"estimation\":\"Comment sont estimés\",\"estimation2\":\"les prix ?\"},\"special_elec\":{\"title\":\"Spécial Électricité\",\"average\":\"Conso moyenne\",\"weektype\":\"un jour de \",\"week\":\"semaine\",\"weekend\":\"week-end\",\"min\":\"Conso minimum\",\"percentage\":\"Part dans la facture\",\"price\":\"Soit\",\"maxPower\":\"Puissance maximum atteinte\",\"showModal\":\"Plus d'infos\"},\"elec_info_modal\":{\"accessibility\":{\"window_title\":\"electricity-info-modal\",\"button_close\":\"close-modal\"},\"title1\":\"Qu’est-ce que la consommation minimum ?\",\"title2\":\"Qu’est-ce que la puissance maximum ?\",\"text1\":\"Elle correspond à votre plus petite consommation du mois sur un créneau d'une demi-heure.\",\"text2\":\"Nous extrapolons cette consommation sur 1 mois afin vous donner un aperçu de la consommation de vos consommations électriques en veille (box, télé, chargeurs, ...) ou encore de celle, incompressible, de vos appareils de froid (frigo, congélateur).\",\"text3\":\"C’est la puissance maximum délivrée par tous les appareils fonctionnant au même moment dans votre logement.\",\"text4\":\"Vous avez choisi une puissance maximum dans votre offre d’électricité (3, 6 ou 9 kVA...) que vous ne devez pas dépasser pour ne pas faire sauter votre compteur. \",\"text5\":\"Cette puissance varie d'un mois à l'autre, regardez cette valeur sur l'ensemble de l'année pour vérifier si votre puissance souscrite correspond bien à votre usage.\"},\"auth\":{\"enedissgegrandlyon\":{\"title\":\"Ecolyo doit se connecter à l’électricité\",\"bill\":\"Munissez-vous d’une <span>facture d’électricité</span> pour valider la connexion\",\"connect\":\"Je me connecte à l'électricité\",\"accessibility\":{\"connect\":\"Se connecter\"},\"identityTitle\":\"Nom inscrit sur la facture\",\"firstName\":\"Prénom\",\"lastName\":\"Nom\",\"pdlTitle\":\"Numéro de votre compteur électrique (PDL)\",\"pdlLabel\":\"N° (14 chiffres)\",\"pdlHint\":\"Où trouver le n° de PDL ?\",\"pdlModal\":{\"txt1\":\"Où trouver le n° de PDL ou PRM ?\",\"txt2\":\"Le numéro de PDL ou PRM se compose de 14 chiffres.\",\"txt3\":\"Votre numéro de PDL ou PRM se trouve sur votre facture d’électricité.\",\"txt4\":\"Si vous avez un compteur Linky, appuyez sur le bouton “+” et faites défiler l’affichage jusqu’à obtenir l’affichage suivant :\"},\"addressTitle\":\"Adresse du titulaire\",\"address\":\"Numéro et voie\",\"zipCode\":\"Code postal\",\"city\":\"Ville\",\"headConsent\":\"Vous allez partager vos données à la Métropole de Lyon. Elles seront directement transférées à Ecolyo à l'intérieur de votre cloud personnel, sans que la Métropole n'y accède ni ne les visualise.\",\"textConsent\":\"Afin  de vous offrir des fonctionnalités de visualisation et d'analyse, Ecolyo a besoin des données suivantes : \",\"consentLi1\":\"L'historique et le relevé de vos consommations quotidiennes en kWh\",\"consentLi2\":\"L'historique et le relevé de vos consommations au pas de temps 30 minutes\",\"consentLi3\":\"Les puissances maximales atteintes quotidiennement\",\"consentLi4\":\"Les données contractuelles (début de contrat et puissance souscrite)\",\"consentCheck1\":\"Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un an</span>\",\"consentCheck2\":\"J’atteste être le titulaire du point de livraison (PDL) renseigné à l’étape précédente\",\"modalHint\":{\"accessibility\":\"Titre de la modale\",\"title\":\"Où trouver le n° de PDL ?\",\"button\":\"J'ai compris\",\"button-accessibility\":\"Bouton valider\"}},\"grdfgrandlyon\":{\"bill\":\"Munissez-vous d’une <span>facture de gaz</span> pour valider la connexion\",\"connect\":\"Je me connecte au gaz\",\"accessibility\":{\"connect\":\"Se connecter\"},\"connect_form\":{\"label\":\"Je donne mon accord via mon compte GRDF\"},\"no_account\":{\"title\":\"Ecolyo doit se connecter au gaz\"},\"with_account\":{\"title\":\"Votre compte GRDF a bien été créé ?\",\"subtitle1\":\"Plus qu’à donner votre accord pour connecter votre compteur de gaz et Ecolyo !\"},\"step1\":{\"info1\":\"Un <span>compte chez GRDF</span> est nécessaire pour vous connecter au gaz\",\"info2\":\" <span>quelque soit votre fournisseur de gaz</span>.\",\"info3\":\"<p>GRDF est le gestionnaire de réseau. C'est lui qui est responsable de votre compteur Gazpar et de la collecte des données de consommation.</p>\",\"info4\":\"Possédez-vous un <span>compte GRDF</span> ?\"},\"step2\":{\"info1\":\"Une fois votre compte créé, <span>n'oubliez pas de revenir sur Ecolyo</span> pour finaliser la connexion.\"},\"step3\":{\"info1\":\"La visualisation de vos données sur Ecolyo demande l'activation du <span>partage de toutes les données.</span>\",\"info2\":\"Pour une expérience optimale, <span>une période de consentement de 1 an</span> est recommandée à partir d’aujourd’hui.\",\"info3\":\"<p>Veillez également à indiquer une date antérieure pour l'historique (1er calendrier) afin de pouvoir récupérer jusqu'à 3 ans d'historique.</p>\"},\"button_go_to_partner_site\":\"Aller sur GRDF\"},\"eglgrandlyon\":{\"bill\":\"Munissez-vous d’une <span>facture d'eau</span> pour valider la connexion\",\"connect\":\"Je me connecte à l'eau\",\"accessibility\":{\"connect\":\"Se connecter\"},\"connect_form\":{\"login\":\"Identifiant (7 chiffres)\",\"password\":\"Mot de passe\",\"label\":\"Je connecte Ecolyo à mon compte Eau Publique du Grand Lyon\"},\"no_account\":{\"title\":\"Ecolyo doit se connecter à l'eau\"},\"with_account\":{\"title\":\"Votre compte Eau Publique du Grand Lyon a bien été créé ?\",\"subtitle1\":\"Plus qu’à donner votre accord pour connecter votre compteur d'eau et Ecolyo !\"},\"step1\":{\"info1\":\"La connexion se fait via <span>votre compte Eau Publique du Grand Lyon</span>.\",\"info2\":\"Possédez-vous un <span>compte Eau Publique du Grand Lyon</span> ?\"},\"step2\":{\"info1\":\"Une fois votre compte créé, <span>n'oubliez pas de revenir sur Ecolyo</span> pour finaliser la connexion.\"},\"button_go_to_partner_site\":\"Aller sur EPGL\"},\"connect_oauth\":{\"loading\":\"Chargement...\"},\"accessibility\":{\"button_reveal_password\":\"Afficher le mot de passe\",\"button_connect\":\"Se connecter\",\"button_create_account\":\"Se créer un compte\",\"window_title\":\"Fenêtre d'information sur la création de compte.\",\"button_close\":\"Fermer la fenêtre.\"},\"button_previous\":\"Précédent\",\"button_connect\":\"Se connecter\",\"button_create_account\":\"Se créer un compte\",\"button_has_account\":\"J'ai déjà un compte\",\"button_validate\":\"J'ai compris\"},\"challenge\":{\"card\":{\"ongoing\":{\"quiz\":\"Quiz\",\"exploration\":\"Explorations\",\"action\":\"Actions\",\"duel\":\"Duel Final\",\"result\":\"Résultat\",\"duelDone\":\"du duel final\"},\"locked\":{\"desc\":\"À débloquer en terminant le défi précédent\"}},\"card_done\":{\"saving\":\"Économie de\",\"depense\":\"Dépense de\",\"win\":\"Gagné\",\"lost\":\"Perdu\",\"final_defi\":\"sur le duel final\",\"final_defi_view\":\"Revoir le duel final\"},\"card_last\":{\"title\":\"Tous les défis sont terminés\",\"message1\":\"Nous travaillons actuellement à vous proposer de nouveaux défis.\",\"button\":\"Suggérer une idée de défi\"},\"card_unlocked\":{\"button_launch\":\"Lancer le défi\"},\"accessibility\":{\"button_launch\":\"Lancer le défi\",\"button_goto_konnector\":\"Aller aux connecteurs\",\"button_slider_previous\":\"Précédent\",\"button_slider_next\":\"Suivant\"}},\"challenge_no_fluid_modal\":{\"title\":\"Oups !\",\"content\":\"Connectez au moins 1 fluide pour pouvoir jouer\",\"button_validate\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_validate\":\"Valider\"}},\"consumption\":{\"display_last_data\":\"Voir mes dernières consos\",\"accessibility\":{\"button_previous_period\":\"Afficher la période précédente\",\"button_next_period\":\"Afficher la période suivante\",\"button_previous_value\":\"Sélectionner la valeur précédente\",\"button_next_value\":\"Sélectionner la valeur suivante\",\"checkbox_compare\":\"Afficher ou cacher la comparaison\"},\"partner_issue_modal\":{\"title\":\"Attention !\",\"error_connect_gaz\":\"La connexion à vos données de <span class='gaz'>gaz</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='gaz'>GRDF</span> ou dans notre service)\",\"error_connect_elec\":\"La connexion à vos données d'<span class='elec'>électricité</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='elec'>Enedis</span> ou dans notre service)\",\"error_connect_water\":\"La connexion à vos données d'<span class='water'>eau</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='water'>Eau Publique du Grand Lyon</span> ou dans notre service)\",\"additional_text\":\"La visualisation et/ou la connexion à vos données de consommation peut s'en trouver affectée.<br /><br /><i>Merci pour votre patience en attendant un retour à la normale :)</i>\",\"ok\":\"Ok\"},\"compared\":\"Comparé\"},\"consumption_details\":{\"detail\":\"Détail par fluide\",\"connect\":\"Connecter d'autres fluides\",\"mini_cards_label\":\"AUTRES ENERGIES\"},\"consumption_visualizer\":{\"missing_data\":\"Données manquantes\",\"no_data\":\"Pas de données\",\"why_no_data\":\"Pourquoi n'ai-je pas de données ?\",\"last_data\":\"Dernières données\",\"last_valid_data\":\"Dernières données disponibles\",\"last_valid_data_multi\":\"Dernières données complètes\",\"data_to_come\":\"à venir\",\"aie\":\"Aïe !\",\"data_empty\":\"Vide\",\"estimated\":\"estimés\",\"dataModal\":{\"list_title\":\"3 raisons possibles :\",\"item1\":\"le lien entre Ecolyo et le fournisseur de données est rompu : une mise à jour de ce lien (en bas de la page) peut résoudre ce problème.\",\"item2\":\"un problème technique chez votre gestionnaire : se connecter directement chez ce gestionnaire pour vérifier que cette donnée apparaît.\",\"item3\":\"pour le gaz : vous n'avez pas autorisé Ecolyo à accéder aux données de consommation de cette période.\",\"item4\":\"vous n'aviez tout simplement pas de compteur communicant à l'époque !\"},\"modal\":{\"window_title\":\"info estimation des prix\",\"title\":\"Comment sont estimés les prix ?\",\"close\":\"Fermer la fenêtre\",\"part1\":\"Le prix de votre électricité ou de votre gaz dépend de l'offre choisie auprès de votre fournisseur. N’ayant pas accès à cette information, Ecolyo affiche un prix moyen par fluide. \",\"part2\":\"Tarifs moyens retenus :\",\"list1\":\" : 1 kWh = %{elecPrice} €TTC (il correspond au tarif réglementé d’EDF au %{elecPriceStartDate} pour une puissance souscrite de 3 ou 6 kVA et hors offre heure pleine/heure creuse)\",\"list2\":\" : 1 kWh = %{gasPrice} €TTC (tarif réglementé de vente au %{gasPriceStartDate} pour un consommateur soutirant moins de 6 MWh par an)\",\"list3\":\" : 1 litre d’eau = %{waterPrice} € TTC (prix constaté au %{waterPriceStartDate} pour un abonnement et une consommation de 120 m3/an sur la Métropole de Lyon)\",\"part3\":\"Le coût de votre abonnement n'est pas pris en compte dans Ecolyo.\"},\"release_notes_modal\":{\"title\":\"Du nouveau sur Ecolyo !\",\"message\":\"Les mises à jour suivantes ont été effectuées sur votre application :\",\"go_back\":\"J'ai compris\",\"accessibility\":{\"window_title\":\"Fenêtre de notifications\",\"button_go_back\":\"J'ai compris\"}}},\"ecogestures\":{\"loading\":\"Chargement des astuces\"},\"duel\":{\"global_error\":\"Oups. Une erreur est survenue. Veuillez retourner à l'écran d’accueil des défis\",\"button_go_back\":\"Retour\",\"average_info\":\"%{average} euros étant votre moyenne actuelle, relevez-vous le défi ?\",\"button_start\":\"Allons-y !\",\"goal1\":\"Faites moins que votre moyenne actuelle sur %{durationInDays} jours\",\"goal2\":\"pour gagner le badge %{title}\",\"goal_done\":\"Duel remporté\",\"goal_failed\":\"Duel perdu\",\"caption_average\":\"Votre moyenne à titre indicatif\",\"caption_consumption\":\"Votre consommation\",\"caption_incoming\":\"Données à venir\",\"accessibility\":{\"button_go_back\":\"Retour\",\"button_start_duel\":\"Lancer le duel\",\"button_start_quiz\":\"Lancer le quiz\"}},\"duel_result_modal\":{\"sucess\":{\"title\":\"Félicitations !\",\"message1\":\"Vous avez économisé \",\"message2\":\"et gagné le badge \",\"button_validate\":\"Youpi !\"},\"lost\":{\"title\":\"Presque !\",\"message1\":\"Vous avez dépassé de \",\"message2\":\"et manqué le badge \",\"button_validate\":\"Zut alors !\"},\"accessibility\":{\"window_title\":\"Fenêtre de résultat\",\"button_validate\":\"Valider\"}},\"last_duel_modal\":{\"title\":\"Félicitations !\",\"subtitle\":\"Vous avez terminé tous les défis !\",\"message1\":\"Nous travaillons actuellement à vous proposer de nouveaux défis.\",\"message2\":\"Vous pouvez donner votre avis sur ce que vous aimeriez en cliquant sur la bulle d'aide.\"},\"duel_empty_value_modal\":{\"title\":\"Oups !\",\"message\":\"Impossible de lancer le duel. Il nous manque en effet certaines de vos données de consommation pour vous proposer un duel à votre hauteur.\",\"button\":\"Je retourne au menu des défis\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_validate\":\"Retourner au menu des défis\"}},\"ecogesture\":{\"title_tab_0\":\"Objectifs\",\"title_tab_1\":\"Je fais déjà\",\"title_tab_2\":\"Toutes\",\"MENU_TITLE\":\"Filtrer\",\"ALL\":\"Tous les usages\",\"HEATING\":\"Chauffage\",\"AIR_CONDITIONING\":\"Climatisation\",\"ECS\":\"Eau chaude\",\"COLD_WATER\":\"Eau froide\",\"ELECTRICITY_SPECIFIC\":\"Électricité courante\",\"COOKING\":\"Cuisson\",\"selection\":\"Sélectionner les astuces les plus adaptées à votre consommation\",\"selection_2\":\"vues sur\",\"button_selection\":\"Continuer ma sélection\",\"no_ecogesture\":\"Aucune astuce ne correspond à votre filtrage\",\"no_ecogesture_filter\":{\"text1\":\"Nous n'avons pas trouvé d'astuces adaptées à votre profil dans cette catégorie.\",\"text2\":\"En effet, de par votre profil et vos modes de chauffage, d'eau ou d'eau chaude sanitaire, nous n'avons pas identifié d’astuces vous permettant de diminuer vos factures à titre individuel. Toutefois, vous pouvez toujours agir pour préserver les ressources en appliquant et diffusant autour de vous les autres bonnes pratiques présentées dans la partie \\\"Toutes les astuces\\\".\"},\"adjust_profil\":{\"description\":\"Pour une sélection d’astuces adaptée à votre consommation, vous pouvez ajuster votre profil.\",\"button_go_to_profil\":\"Ajuster mon profil\"},\"accessibility\":{\"window_title\":\"Fenêtre d'information'\",\"button_close\":\"Fermer la fenêtre\",\"button_selection\":\"Aller à la page de sélection\"},\"doing\":\"Je fais déjà\",\"objective\":\"Objectif\",\"emptyList\":{\"obj1\":\"Les astuces présentées sont des actions qui vous permettent de réduire vos consommations et donc vos factures. On parle parfois d’écogestes.\",\"obj1_done\":\"Aucune astuce n’a été sélectionnée comme objectif actuellement.\",\"obj2\":\"Vous pouvez sélectionner ceux à mettre en objectifs et ceux que vous appliquez déjà.\",\"obj2_done\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous souhaitez garder en objectif dans cette section.\",\"doing1\":\"Aucune astuce n’a été sélectionnée dans la catégorie appliquée actuellement.\",\"doing1_done\":\"Aucune astuce n’est indiquée comme déjà appliquée actuellement.\",\"doing2\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous mettez déjà en pratique dans cette section.\",\"doing2_done\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous mettez déjà en pratique dans cette section.\",\"btn1\":\"Voir toutes les astuces\",\"btn2\":\"Sélectionner\"},\"initModal\":{\"title\":\"Sélectionner mes astuces\",\"text1\":\"Les astuces présentées sont des actions qui vous permettent de réduire vos consommations et donc vos factures. On parle parfois d’écogestes \",\"text2\":\"Vous pouvez sélectionner celles à mettre en objectifs et celles que vous appliquez déjà.\",\"text3\":\"Afin de pré-sélectionner les astuces correspondant à votre consommation, merci de répondre à quelques rapides questions.\",\"btn1\":\"Plus tard\",\"btn2\":\"C'est parti !\"},\"reinit\":\"Réinitialiser ma sélection\",\"reinitModal\":{\"title_part1\":\"Cette action\",\"title_part2\":\"supprimera votre liste d’astuces\",\"title_part3\":\"sélectionnées dans\",\"title_part4\":\"“Objectifs”\",\"title_part5\":\"et\",\"title_part6\":\"“Je fais déjà”\",\"text1\":\"Vous pourrez ensuite faire une nouvelle sélection adaptée à votre consommation.\",\"text2\":\"Souhaitez-vous réinitialiser votre sélection d’astuces ?\",\"btn1\":\"Non\",\"btn2\":\"Réinitialiser\"}},\"ecogesture_modal\":{\"title_ecogesture\":\"Astuce\",\"title_action\":\"Action\",\"efficiency\":\"Efficacité\",\"show_less\":\"Voir moins d’infos\",\"show_more\":\"Voir plus d’infos\",\"select_action\":\"Je choisis cette action\",\"accessibility\":{\"window_title_ecogesture\":\"Fenêtre astuce\",\"window_title_action\":\"Fenêtre action\",\"button_close\":\"Fermer la fenêtre\",\"button_select_action\":\"Sélectionner cette action\",\"button_see_more_detail\":\"Afficher plus de détails\"}},\"ecogesture_info_modal\":{\"header\":\"Comment sont choisis les astuces adaptées à mon profil ?\",\"text\":\"Les astuces adaptés à votre profil sont aujourd’hui choisies en fonction des compteurs individuels que vous possédez (communicants ou non). Ceux présentés ici vous permettent d'agir sur vos consommations individuelles. Des modes de tri plus personnalisables seront proposés à l'avenir.\",\"button_close\":\"J'ai compris\",\"accessibility\":{\"window_title\":\"Fenêtre d'information\",\"button_close\":\"Fermer la fenêtre\"}},\"ecogesture_form\":{\"heating_type\":{\"title\":\"Chauffage\",\"question\":\"Quel est votre type de chauffage ?\",\"individual\":\"Individuel\",\"collective\":\"Collectif\"},\"warming_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Bois\",\"4\":\"Fioul\",\"title\":\"Source chauffage\",\"question\":\"Quelle source d’énergie principale utilisez-vous pour votre chauffage ?\"},\"hot_water_type\":{\"title\":\"Eau chaude\",\"question\":\"Quel est votre type de production d’eau chaude ?\",\"individual\":\"Individuelle\",\"collective\":\"Collective\"}},\"ecogesture_profile\":{\"equipments\":{\"question\":\"Quels équipements possédez-vous ?\",\"hint\":\"Plusieurs réponses possibles\",\"air_conditioning\":\"Climatisation\",\"computer\":\"Ordinateur\",\"microwave\":\"Micro-ondes\",\"oven\":\"Four\",\"washing_machine\":\"Lave-linge\",\"dishwasher\":\"Lave-vaisselle\",\"cooking_plates\":\"Plaques électriques\",\"garden\":\"Jardin\",\"dryer\":\"Sèche-linge\",\"refregirator\":\"Réfrigérateur\",\"fan\":\"Ventilateur\",\"water_heater\":\"Chauffe-eau\",\"curtain\":\"Rideaux\",\"internet_box\":\"Box internet\",\"ventilation\":\"VMC\",\"freezer\":\"Congélateur\",\"boiler\":\"Chaudière\",\"hydraulic_heating\":\"Chauffage hydraulique\"}},\"ecogesture_selection\":{\"header\":\"Sélection des astuces\",\"title\":\"Vous avez parcouru un groupe de %{smart_count} astuces\",\"text\":\"Voulez-vous continuer sur votre lancée ou remettre cette sélection à plus tard ?\",\"title_final\":\"Félicitations !\",\"text_final_1\":\"Vous avez terminé la sélection des astuces adaptées à votre consommation.\",\"text_final_2\":\"Vous pouvez les retrouver dans les sections “Objectifs” et “Je fais déjà” selon que vous les pratiquiez déjà ou non.\",\"button_go_to_ecogesture\":\"Plus tard\",\"button_ok\":\"J'ai compris\",\"button_continue\":\"Poursuivre\",\"button_objective\":\"Objectif\",\"button_doing\":\"Je fais déjà\",\"button_skip\":\"Pas intéressé\",\"accessibility\":{\"window_title\":\"Fenêtre d'information'\",\"button_close\":\"Fermer la fenêtre\",\"button_go_to_ecogesture\":\"Retourner aux astuces\",\"button_continue\":\"Poursuivre\",\"button_ok\":\"Fermer la sélection\"},\"selectionModal\":{\"title\":\"Des astuces correspondant à votre profil ont été trouvées !\",\"text\":\"À vous de choisir celles que vous souhaitez mettre en objectif et celles que vous faites déjà.\",\"button_close\":\"C'est parti !\"}},\"exploration\":{\"global_error\":\"Oups. Une erreur est survenue. Veuillez retourner à l'écran d’accueil des défis\",\"button_go_back\":\"Retour\",\"button_already_done\":\"C’est déjà fait !\",\"button_come_back\":\"Je reviens quand cela sera fait\",\"button_start\":\"C'est parti !\",\"watch_consumption\":\"Je fonce\",\"congratulation\":\"Bravo !\",\"earn\":\"Vous remportez\",\"button_confirm\":\"Ok\",\"interval\":{\"explanation\":\"Vous pouvez vérifier cette informations sur l'écran Conso.\"},\"accessibility\":{\"button_already_done\":\"Marquer l'exploration comme déjà réalisée\",\"button_confirm\":\"Valider\",\"button_come_back\":\"Fermer l'exploration\",\"button_go_back\":\"Retour\",\"button_start\":\"Lancer l'exploration\"}},\"error_page\":{\"main\":\"Erreur\",\"back\":\"Retour\",\"no_ecogesture\":\"Oups ! Nous n'avons pas trouvé l'astuce demandée.\"},\"help\":{\"title_help\":\"une question ? un problème ? une suggestion ?\",\"read_help\":\"Nous écrire via le Service d'Assistance Utilisateur\"},\"feedback\":{\"title\":\"Vous allez contacter le Service Assistance Utilisateur du Grand Lyon.\",\"text1\":\"Vous pourrez nous remonter un problème, chercher de l'aide pour vous connecter plus facilement, ou encore nous partager une bonne idée d'évolution.\",\"text2\":\"N'hésitez pas à nous écrire ! L'équipe Ecolyo vous répondra avec plaisir :)\",\"later\":\"Plus tard\",\"lets_go\":\"J'y vais\",\"accessibility\":{\"window_title\":\"Fenêtre de partage de retours\",\"button_close\":\"Fermer la fenêtre de partage de retours\"}},\"dataShare\":{\"title1\":\"Bienvenue !\",\"title1Update\":\"Ecolyo évolue !\",\"title2Update\":\"Pour continuer à utiliser Ecolyo, merci d’accepter les modalités de traitement des données ci-dessous.\",\"part1\":\"Pour le bon fonctionnement du service, nous avons besoin de l’adresse email utilisée lors la création de votre cloud personnel Grand Lyon.\",\"part2\":\"Cette donnée de compte est conservée dans Ecolyo le temps de l’utilisation de ce service.\",\"part3\":\"La Métropole de Lyon utilisera cet email afin de vous tenir informé·e :\",\"item1\":\"En réponse à vos demandes, si vous avez pris l’initiative de nous contacter.\",\"item2\":\"En cas de problème majeur avec la gestion de votre compte.\",\"item3\":\"De l’évolution de vos consommations, des nouveautés et  de la qualité du service via une lettre mensuelle. Vous pouvez à tout moment vous désinscrire de cette lettre via la page Options du service.\",\"part4\":\"Vos données privées de consommation d’énergie et d’eau sont récupérées, sauvegardées et stockées dans votre cloud personnel à votre initiative sans visibilité de la Métropole  de Lyon sur leur contenu.\",\"part5\":\"Il en est de même pour les données privées de composition du logement et du foyer, fournies par vos soins. Elles restent également sans visibilité de la Métropole de Lyon sur leur contenu.\\nLes données d’identification entrées lors de la connexion aux données de consommations d’électricité sont quant à elles conservées dans un espace sécurisé de la Métropole de Lyon et sont utilisées uniquement à des fins de contrôle du consentement par des organismes extérieurs.\",\"part6\":\"Dans le cadre de l’évaluation et de l’amélioration du service, des données d’utilisation anonymisées et pseudonymisées seront remontées à des fins d’exploitation statistiques. La récupération de ces statistiques nous permettra de s’assurer du bon fonctionnement technique de la connexion à vos données de consommation, d’évaluer globalement l’usage de l’application via des mesures d’audience ainsi que d’évaluer à terme l’impact global en termes de baisse des consommations énergétiques de notre service.\",\"part7\":\"Au sein de votre cloud personnel, vous pouvez à tout moment exercer vos droits d’accès, de rectification, de portabilité, de limitation et d’opposition en consultant notamment la page Options.\",\"part8\":\"Vous pouvez également exercer vos droits d’accès, de rectification, de limitation, d’opposition et d’effacement de vos données personnelles en contactant directement le Délégué à la Protection des Données par courrier en écrivant à l’adresse :\",\"part9\":\"Métropole de Lyon – Délégué à la Protection des Données - Direction des Assemblées, des Affaires Juridiques et des Assurances - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 \",\"part10\":\"ou en ligne, au moyen du formulaire disponible à l'adresse suivante : \",\"link1\":\"<a href=\\\"https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/\\\">https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/</a>\",\"validDataConsent\":\"Je consens au traitement de mes données tel que décrit ci-dessus.\",\"validCGU\":\"Je valide les <span class=\\\"action\\\">Conditions Générales d’Utilisation</span> \",\"validLegal\":\" du service et ai pris connaissance des <span class=\\\"action\\\"> Mentions Légales </span> de celui-ci.\",\"button_accept\":\"C'est parti !\",\"accessibility\":{\"button_accept\":\"Accepter les conditions générales d'utilisation\"}},\"minorUpdate\":{\"title\":\"Ecolyo évolue !\",\"button\":\"J'ai compris\"},\"gcu\":{\"title\":\"Conditions générales d’utilisation du service\",\"version\":\"Version du 12.12.2022\",\"content\":{\"title1\":\"Ecolyo, késako ?\",\"part1_1\":\"Ecolyo est un service proposé par la Métropole de Lyon vous permettant de suivre au même endroit vos consommations d’électricité, de gaz et d’eau, en kWh, en litres, en euros et à différentes échelles de temps. Ce service vous permet également de participer à des défis individuels et vous offre une analyse de vos consommations. Des astuces vous sont aussi proposées afin de vous permettre de réduire vos consommations.\",\"part1_2\":\"C’est un service gratuit qui prend la forme d’un site web dit « responsive », c’est-à-dire qu’il peut être consulté sur ordinateur ou sur mobile. Sur mobile, c’est une application que l’on a souhaitée ergonomique, réactive et esthétique pour votre plaisir de navigation et d’utilisation au quotidien.\",\"part1_3\":\"Tous les termes « techniques » sont définis en bas de page.\",\"title2\":\"Quelles fonctionnalités le service propose-t-il ?\",\"part2_1\":\"La fonctionnalité principale d’Ecolyo est la visualisation, au même endroit, de vos consommations d’électricité, de gaz et d’eau et ce, à différents pas de temps (de la demi-heure – uniquement pour l’électricité, à plusieurs années, en passant par les pas de temps journaliers et mensuels). La visualisation des consommations se fait en kWh pour l’énergie et en L pour l’eau ainsi qu’en euros (euros résultant d’un prix moyenné).\",\"part2_2\":\"Au-delà de la visualisation de vos consommations et parce que nous souhaitons vous aider à diminuer ces consommations vous retrouverez plusieurs autres pages : \",\"part2_2_list1\":\"Défis : Des quiz, et actions à mettre en place vous seront proposés pour vous pousser à réduire vos consommations.\",\"part2_2_list2\":\"Astuces : Une liste d’astuces pour maîtriser ses consommations d’énergie et d’eau à trier par usage, et avec une possibilité de les adapter plus précisément à votre profil.\",\"part2_2_list3\":\"Analyse : Une analyse de vos consommations réelles en comparaison à celle d’un foyer étant proche d’une vôtre.\",\"part2_3\":\"Pour la page Analyse ainsi que pour la partie personnalisation des astuces, des éléments supplémentaires sur votre profil vous seront demandés. L’ensemble de ces informations récoltées à l’aide du formulaire peuvent être modifiées par la suite.\",\"part2_4\":\"Dernière page : la page Options dans laquelle vous pourrez vous abonner à un service d’alerte sur vos consommations d’eau, de quoi ajuster votre profil ou encore vous désabonner de la lettre mensuelle.\",\"title3\":\"Comment ai-je accès à mes données d’électricité, de gaz et d’eau ?\",\"part3_1\":\"Pour visualiser vos consommations réelles et profiter pleinement du potentiel de notre service, il vous faut au minimum un des trois compteurs communicants suivants : Linky (pour l’électricité), Gazpar (pour le gaz), Téléo (pour l’eau).\",\"part3_2\":\"Ces compteurs sont opérés par les gestionnaires de réseaux. Pour Linky, c’est Enedis, le gestionnaire de réseau de distribution d’électricité. Pour Gazpar, GRDF est responsable de cette gestion. Et pour Téléo, c’est Eau Publique du Grand Lyon.\",\"part3_3\":\"Ces acteurs sont responsables de la relève de vos données. Ces données servent notamment à votre fournisseur d’électricité, de gaz ou d’eau pour permettre la facturation de vos consommations d’énergie. Des fournisseurs d’électricité ou de gaz il y en a des dizaines. Les gestionnaires de réseaux (… et de votre compteur) ne sont qu’au nombre de trois. Nous avons donc décidé de travailler avec eux, au plus près de la donnée brute issue de vos compteurs.\",\"part3_4\":\"Il vous faudra donc avoir un compte chez GRDF et Eau Publique du Grand Lyon pour accéder à vos données. Si vous n’en avez pas, il suffira de vous en créer un. Ceci ne sera à faire qu’une fois, au début.\",\"title4\":\"Ecolyo se trouve dans un cloud personnel Grand Lyon, qu’est-ce que cela signifie ?\",\"part4_1\":\"Comme vous avez dû le remarquer, lors de votre première connexion à Ecolyo vous avez dû vous créer un compte Cloud Personnel Grand Lyon. Ce cloud personnel est un espace sécurisé porté par l’ambition de vous apporter visibilité, transparence et maîtrise sur l’usage de vos données personnelles, et dont les fonctionnalités vous permettant de récupérer, synchroniser, stocker et partager vos données avec les destinataires de votre choix.  Le service Ecolyo se déploie  à l’intérieur de cet espace protégé. Dans ce cloud personnel, vous pourrez accéder également à d’autres services. Toutes les données traitées par Ecolyo, mais aussi les autres services que vous seriez amenés à utiliser dans ce cloud personnel restent dans ce Cloud Personnel Grand Lyon et n’en sortent pas, sauf si vous décidez vous-même de partager vos données avec des tiers.\",\"part4_2\":\"Pour en savoir plus sur ce cloud et son utilisation, ainsi que la durée de conservation de vos données, vous pouvez lire les conditions générales d’utilisation du service <a href=\\\"https://manager.cozygrandlyon.cloud/tos/266b4226-8417-42fb-b911-41e86dae8581.pdf?locale=fr\\\">ici</a>.\",\"title5\":\"Et donc concrètement pour Ecolyo, quelles données sont collectées et qui y a accès ?\",\"part5_1\":\"Pour qu’Ecolyo ait accès à vos données de consommations, vous devrez activer vos différents connecteurs. À ce moment-là, pour la connexion aux données de gaz et d’eau à travers un parcours qui vous conduira de manière intuitive sur le site de chacun des gestionnaires de réseaux concerné, vous pourrez donner votre consentement à partager ces données avec le Service Ecolyo, et ce pour une durée limitée dans le temps. Pour l’électricité, le don du consentement et la connexion aux données se fait directement dans notre service. Quid de la durée de ce consentement ? Pour les données électriques, elle est par défaut d'un an. Pour les données gaz, cela sera à vous de la définir (nous vous recommandons 1 an pour une expérience optimale). Les données utilisées pour vérifier la bonne connexion de vos données d’électricité sont stockées du côté de la Métropole de Lyon sur des serveurs sécurisés.\",\"part5_2\":\"Vos connecteurs, une fois configurés, permettent le transfert de vos données de consommations au service Ecolyo. Le transfert de ces données de consommation se fait sans que personne n’accède à leur contenu, pas même la Métropole de Lyon. En effet, ces données sont stockées et traitées directement dans votre cloud personnel qui en assure la protection. Tous les calculs, analyses et traitements sur ces données sont faites DANS votre espace personnel sans visibilité sur le contenu des données par la Métropole de Lyon.\",\"part5_3\":\"Vous pouvez bien sûr mettre fin à la récupération/ au transfert de vos données de consommation sur votre espace cloud personnel à tout moment et  à plusieurs niveaux : \",\"part5_3_list1\":\"Vous pouvez supprimer le transfert quotidien de vos données en supprimant tout simplement le connecteur dans la page Consos (en bas).\",\"part5_3_list2\":\"Pour supprimer l’ensemble de vos données ainsi que votre espace personnel Grand Lyon, vous devez demander la suppression de votre cloud. Pour faire cela, rendez-vous dans les paramètres de votre cloud personnel via la barre blanche en haut d’Ecolyo et appuyez sur le bouton « Supprimer mon compte » dans la partie paramètres.\",\"part5_4\":\"Des données sur le profil de votre foyer peuvent être également remplies au sein de l’application. Ces données s’enrichiront au fur et à mesure de votre utilisation du service avec d’autres informations : défis réalisés, étoiles gagnées, etc. L’ensemble de ces données restent à l’intérieur de votre cloud personnel, sans que personne n’y ait accès.\",\"part5_5\":\"Enfin, afin de permettre une mise à jour quotidienne de vos données de consommations, vos identifiants Eau Publique du Grand Lyon, un jeton d’identification GRDF ainsi que vos numéros de compteurs sont stockés.\",\"title6\":\"Personne n’a donc accès à mes données, pas même la Métropole de Lyon, vraiment ?\",\"part6_1\":\"Conformément aux indications du paragraphe précédent, la Métropole de Lyon n’accède ni à vos données de consommations ni aux données utilisées via certaines fonctionnalités du service comme le formulaire (celui-là même qui permet l’analyse de vos consommations personnalisée ainsi qu’une sélection d’éco-gestes personnalisés). Toutes ces informations sont bien gardées au chaud dans votre cloud personnel Grand Lyon.\",\"part6_2\":\"Seul vous pouvez accepter de partager vos données, documents ou fichiers privés avec la Métropole de Lyon, ses partenaires ou d’autres utilisateurs ou acteurs (publics ou privés) après recueil de votre consentement éclairé et par une action expresse de votre part.\",\"part6_3\":\"La Métropole de Lyon n'a cependant accès qu’à l’adresse email utilisée lors la création de votre cloud personnel Grand Lyon. Elle utilise cet email afin de vous tenir informé·e :\",\"part6_3_list1\":\"En réponse à vos demandes, si vous avez pris l’initiative de nous contacter. \",\"part6_3_list2\":\"En cas de problème majeur avec la gestion de votre compte.\",\"part6_3_list3\":\"De l’évolution de vos consommations, des nouveautés et  de la qualité du service via une lettre mensuelle. Vous pouvez à tout moment vous désinscrire de cette lettre via la page Options du service.\",\"part6_4\":\"Elle stocke également les informations transmises lors de la connexion à l’électricité (nom, adresse postale). Ces informations doivent être stockées car la Métropole de Lyon est régulièrement contrôlée par Enedis et doit prouver détenir le consentement des personnes pour lesquelles elle va chercher la donnée.\",\"part6_5\":\"Par ailleurs, et dans le cadre de l’évaluation et de l’amélioration du service, des données d’utilisation anonymisées seront remontées à des fins d’exploitation statistiques. La récupération de ces statistiques anonymisées nous permettra de s’assurer du bon fonctionnement technique de la connexion à vos données de consommation ainsi que d’évaluer l’impact global en termes de baisse des consommations énergétiques de notre service. Parmi ces statistiques, des mesures d’audience de la fréquentation des différentes pages du service sont réalisées. Vous pouvez, via la page Options, à tout instant, décider de vous opposer à la récupération de ces données d’utilisation.\",\"title8\":\"Encore des questions ?\",\"part8_1\":\"N’hésitez pas à consulter la FAQ ou à nous contacter via le formulaire de contact présente sur l’ensemble des pages.\",\"part8_2\":\"Dernière option, contactez-nous directement à <a href=\\\"mailto:ecolyo@grandlyon.com\\\">ecolyo(at)grandlyon.com</a>.\",\"title9\":\"LEXIQUE\",\"part9_1_title\":\"Cloud personnel Grand Lyon : \",\"part9_1_content\":\"Cloud personnel : appelé aussi le « domicile numérique », le cloud personnel est souvent réduit à un simple espace de stockage de documents mais il est bien plus que ça. C'est un espace individuel et sécurisé où vous pouvez accéder à des services sans exposer aucune donnée à l’extérieur. Vous seul pouvez y accéder, personne d'autre.\",\"part9_2_title\":\"Connecteur : \",\"part9_2_content\":\"Un connecteur est un service, installé dans votre cloud personnel également, qui a pour but uniquement d’aller récupérer les données auprès de différents partenaires/sources de données. Dans le cadre d’Ecolyo, trois connecteurs sont pré-installés dans votre cloud personnel : celui d’Enedis, celui de GRDF et celui d’Eau Publique du Grand Lyon.\",\"part9_3_title\":\"Compteur communicant : \",\"part9_3_content\":\"Un compteur communicant est un compteur qui mesure de manière précise et détaillée vos consommations et peut transmettre ces données  au gestionnaire de réseau via une technologie radio (c'est le cas pour Gazpar et Téléo par exemple) ou via les réseaux électriques (via Courant Porteur en ligne, c'est le cas pour Linky par exemple).\",\"part9_4_title\":\"Fournisseur : \",\"part9_4_content\":\"Votre fournisseur d’électricité, de gaz ou d’eau est l’entreprise qui vous facture votre électricité, gaz ou eau. Côté électricité il en existe <a href=\\\"https://www.enedis.fr/liste-des-fournisseurs-delectricite\\\">aujourd’hui plus de 50</a>, chacun proposant des tarifs différents.\",\"part9_5_title\":\"Gestionnaire de réseau de distribution : \",\"part9_5_content\":\"Appelé aussi parfois distributeur, il est en charge de la livraison de votre électricité, gaz ou eau jusqu’à votre domicile. Il est aussi en charge du compteur qui relève vos consommations. Il transmet vos données de consommations à votre fournisseur afin qu’il effectue la facturation de vos consommations d’énergie. Il peut également les transmettre à tout acteur avec qui vous avez décidé de partager ces données.\"}},\"gcu_modal\":{\"button_accept\":\"J'accepte\",\"accessibility\":{\"window_title\":\"Conditions générales d’utilisation\",\"button_accept\":\"Accepter les conditions générales d'utilisation\"}},\"matomo\":{\"matomo_title\":\"Suivi statistiques d'usage Matomo\"},\"header\":{\"accessibility\":{\"button_back\":\"Retour à la page précédente\",\"button_open_feedbacks\":\"Ouvrir le partage de retours\"}},\"konnector_form\":{\"label_updated_at\":\"Dernière mise-à-jour le\",\"button_update\":\"Mettre à jour\",\"loading\":\"Chargement...\",\"wait_end_issue\":\"Attendre la fin de la maintenance avant de mettre à jour.\",\"button_delete\":\"Supprimer\",\"issue\":\"Le problème semble venir de \",\"resolve\":\"Une mise à jour peut résoudre ce problème.\",\"login_failed\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"not_installed\":\"Le connecteur n'est pas installé. Veuillez l'installer en cliquant sur le bouton ci-dessous.\",\"button_install\":\"Installer\",\"error_account_creation\":\"Une erreur est survenue, veuillez essayer de nouveau.\",\"error_no_login_password\":\"Identifiant et mot de passe requis\",\"error_login_failed\":\"Identifiants invalides\",\"error_update\":\"Un problème est survenu lors du rapatriement de vos données.\",\"error_update_oauth\":\"Votre autorisation pour afficher vos données %{fluid} a expiré.\",\"error_consent_form_gas\":\"Vos données ne peuvent être récupérées car vous n'avez pas coché l'autorisation d'accès aux données informatives lors de votre partage de consentement.\",\"button_oauth_reload\":\"Redonner mon consentement\",\"OK\":\"Ok\",\"konnector_delta\":{\"ELECTRICITY\":\"La donnée de consommation électrique arrive normalement à J+1. Un retard d'un ou deux jours est parfois constaté.\",\"GAS\":\"La donnée de consommation de gaz arrive normalement à J+3. Un retard d'un ou deux jours est parfois constaté.\",\"WATER\":\"La donnée de consommation d'eau arrive normalement à J+3. Un retard d'un ou deux jours est parfois constaté.\"},\"accessibility\":{\"button_install\":\"Installer le connecteur\",\"button_update\":\"Mettre à jour votre connexion\",\"button_delete\":\"Supprimer votre connexion\"}},\"konnector_options\":{\"label_connect_to_electricity\":\"Se connecter à l'électricité\",\"label_connect_to_water\":\"Se connecter à l'eau\",\"label_connect_to_gas\":\"Se connecter au gaz\",\"partner_issue\":\"En maintenance\",\"outdated\":\"Données manquantes depuis %{isOutdatedData} jours\",\"accessibility\":{\"label_ko_status\":\"Connecteur en erreur\",\"button_toggle_detail_electricity\":\"Afficher ou masquer le détail de la connexion à l'électricité\",\"button_toggle_detail_water\":\"Afficher ou masquer le détail de la connexion à l'eau\",\"button_toggle_detail_gas\":\"Afficher ou masquer le détail de la connexion au gaz\"}},\"konnector_modal\":{\"loading_data\":\"Veuillez patienter, vos données sont en cours de chargement.\",\"loading_data_update\":\"Veuillez patienter, vos données sont en cours de mise à jour.\",\"logging_txt\":\"Nous vérifions vos informations d'identité\",\"success_txt\":\"Félicitations !\",\"success_data_electricity\":\"Vos données de consommation d'électricité sont maintenant connectées à Ecolyo.\",\"success_data_water\":\"Vos données de consommation d'eau sont maintenant connectées à Ecolyo.\",\"success_data_gas\":\"Vos données de consommation de gaz sont maintenant connectées à Ecolyo.\",\"success_data_additional_electricity\":\"Les données de consommations mettent entre un et deux jours pour arriver.\",\"success_data_additional_water\":\"Les données de consommations mettent entre trois et cinq jours pour arriver.\",\"success_data_additional_gas\":\"Les données de consommations mettent entre trois et cinq jours pour arriver.\",\"success_update_txt\":\"Connexion réussie !\",\"success_data_update_electricity\":\"Ecolyo est bien connecté à votre compteur d'électricité.\",\"success_data_update_water\":\"Ecolyo est bien connecté à votre compteur d'eau.\",\"success_data_update_gas\":\"Ecolyo est bien connecté à votre compteur de gaz.\",\"success_data_additional_update_electricity\":\"Sachez que la donnée de consommation d'électricité arrive entre J+1 et J+2.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"success_data_additional_update_water\":\"Sachez que la donnée de consommation d'eau arrive entre J+3 et J+5.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"success_data_additional_update_gas\":\"Sachez que la donnée de consommation de gaz arrive entre J+3 et J+5.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"error_txt\":\"Aïe !\",\"mismatch\":{\"title\":\"Vos données n'ont pas pu être récupérées.\",\"text1\":\"Vos nom et numéro de compteur ne correspondent plus. Merci de reconfigurer votre connecteur.\",\"text2\":\"Reconfigurer mon connecteur ?\",\"text3\":\"La reconfiguration de votre connecteur passe par sa suppression et sa nouvelle installation. Vos données seront conservées.\"},\"error_data_electricity\":\"Un problème est survenu. Vos données de consommation d’électricité ne seront pas chargées.\",\"error_data_water\":\"Un problème est survenu. Vos données de consommation d’eau ne seront pas chargées.\",\"error_credentials_water\":\"Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter. L'identifiant est un numéro à 7 chiffres (différent de votre numéro de contrat).\",\"error_credentials_electricity\":\"Il semblerait que les nom(s) et adresse ne concordent pas avec le numéro de votre compteur.\",\"error_credentials_electricity_2\":\"Nous ne pouvons vous donner accès aux données de consommation.\",\"error_credentials_update_water\":\"Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter.\",\"error_credentials_update_electricity\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"error_credentials_update_gas\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"error_data_gas\":\"Un problème est survenu. Vos données de consommation de gaz ne seront pas chargées.\",\"error_consent_form_gas_title\":\"Nous n'avons pas pu connecter vos données de consommation de gaz à Ecolyo.\",\"error_consent_form_gas_content\":\"En effet, le partage de vos données de consommation de gaz \\\"informatives\\\" doit être accepté.\",\"error_consent_form_gas_content_2\":\"Merci de cocher \\\"OUI\\\" au partage de vos données de consommation de gaz, et à \\\"Autoriser l'accès à mes données informatives\\\".\",\"error_data_update_electricity\":\"Un problème est survenu. Vos données de consommation d’électricité n’ont pas été mises à jour.\",\"error_data_update_water\":\"Un problème est survenu. Vos données de consommation d’eau n’ont pas été mises à jour.\",\"error_data_update_gas\":\"Un problème est survenu. Vos données de consommation de gaz n’ont pas été mises à jour.\",\"error_data_2\":\"Merci de réessayer plus tard.\",\"button_validate\":\"Ok\",\"button_understood\":\"J'ai compris\",\"button_try_again\":\"Réessayer\",\"show_common_error\":\"Voir les erreurs récurrentes\",\"show_common_error_list\":\"<span style=\\\"text-align:left; font-weight:700;\\\">Le problème peut provenir des cas suivants :</span> <ul style=\\\"text-align:left;\\\"><li>Vous avez un co-titulaire sur votre contrat. Veillez à bien entrer le nom du <span style=\\\"color:#E3B82A; font-weight:700;\\\">titulaire du contrat</span> et non le co-titulaire.</li><li>  Votre nom comporte un tiret ? Tentez sans le tiret.</li><li>  Entrez bien le nom de votre commune de résidence en entier (tirets et accents inclus)</li><li>  Avez-vous bien entré le <span style=\\\"color:#E3B82A; font-weight:700;\\\">numéro de votre compteur</span> (PDL) ? Tout autre numéro (de contrat, de client) ne fonctionne pas.</li></ul><p style=\\\"text-align:center; font-style: italic; font-weight:400; font-size: 0.9rem;\\\">Si vous rencontrez toujours des difficultés, contactez notre service d'aide </p><div style=\\\"text-align:center; font-weight:700;\\\">Avez-vous pensez à vérifier ces informations ?</div>\",\"accessibility\":{\"window_title\":\"Fenêtre d'attente de connexion\",\"button_close\":\"Fermer la fenêtre\"}},\"consent_outdated\":{\"title\":{\"0\":\"Votre autorisation pour afficher vos données d’électricité a expiré\",\"2\":\"Votre autorisation pour afficher vos données de gaz a expiré\"},\"text1\":{\"0\":\"Veuillez re-donner votre consentement pour la transmission et la reconnexion de vos données ENEDIS à Ecolyo.\",\"2\":\"Veuillez re-donner votre accord pour que GRDF nous transmette vos données de consommation.\"},\"text2\":{\"0\":\"Souhaitez-vous renouveler votre accord dès maintenant pour un an ?\",\"2\":\"Voulez-vous  donner votre accord sur votre compte GRDF maintenant ?\"},\"later\":\"Plus tard\",\"go\":\"J'y vais\",\"no\":\"Non\",\"yes\":\"Oui\"},\"delete_grdf_modal\":{\"text1\":\"La suppression de la connexion avec GRDF s’accompagne de la suppression de votre consentement à partager vos données gaz avec Ecolyo.\",\"text2\":\"Si vous souhaitez vous reconnecter, il vous faudra re-donner votre accord pour que GRDF nous transmette vos données de consommation.\",\"text3\":\"Voulez-vous  supprimer votre connexion et votre consentement à GRDF ?\",\"cancel\":\"Plus tard\",\"go\":\"Oui\"},\"legal\":{\"read_legal\":\"Lire les mentions légales\",\"title_legal\":\"Mentions légales & CGU\",\"version\":\"Version du 12.12.2022\",\"site\":\"Site du service Ecolyo : <a href=\\\"https://ecolyo.com/\\\"> https://ecolyo.com/</a>\",\"adress\":\"Métropole de Lyon - 20, rue du Lac – CS 33569 - 69505 Lyon cedex 03\",\"phone\":\"Tél : (33) 4 78 63 40 40\",\"mail\":\"<a href=\\\"mailto:ecolyo@grandlyon.com\\\"> ecolyo(at)grandlyon.com</a>\",\"p1b\":\"Directrice de publication : \",\"p1\":\"Blandine MELAY, Responsable du Service Transition Énergétique\",\"p2b\":\"Animation éditoriale, gestion et mise à jour : \",\"p2\":\"Marion BERTHOLON,  Chargée de services numériques pour la transition énergétique\",\"p3b\":\"Photographies : \",\"p3\":\"sauf mention contraire, les photos sont la propriété de la Métropole de Lyon\",\"p4b\":\"Conception et Charte graphique : \",\"p4\":\"Florent Dufier\",\"p5b\":\"Réalisation technique : \",\"p5\":\"Métropole de Lyon, Sopra Steria\",\"p6b\":\"Maintenance technique : \",\"p6\":\"Délégation Développement économique, emploi & savoirs - Innovation numérique & systèmes d’information - Usages et services numériques - Développement des services numériques\",\"title1\":\"Crédits\",\"part1\":\"Ce site est le résultat de développements spécifiques réalisés dans les langages Go, TypeScript, HTML et Sass. Les développements s’appuient sur plusieurs bibliothèques et frameworks libres : axios, cozy-bar, cozy-client, cozy-harvest-lib, cozy-scripts, cozy-ui, d3, detect-browser, global, lodash, luxon, moment, moment-timezone, node-sass, object-hash, react, react-dom, react-redux, react-router-dom, react-swipeable-views, redux-devtools-extension, sass-loader. Les tests de l’application s’appuient sur les bibliothèques et frameworks libres suivants: enzyme, enzyme-adapter-react-16, jest-junit, react-test-renderer, redux-mock-store. La pile technique intègre également les applications Cozy stack, Yarn, Docker, ACH. Les déploiements sont réalisés sur le registre hébergé chez Cozy. L’équipe de réalisation utilise au quotidien les applications GitLab, IceScrum, RocketChat, SonarQube.\",\"title2\":\"Traitement des données personnelles et droit d’accès, de modification et de suppression\",\"part2\":\"Conformément à la réglementation en vigueur en matière de protection des données personnelles, le service Ecolyo a fait l’objet d’une inscription au registre des traitements de la Métropole de Lyon. Ecolyo fait partie de l’écosystème de services orientés « self data » déployés par la Métropole de Lyon avec l’ambition d’offrir aux usagers métropolitains les outils et les services leur permettant d’exercer directement leur droit à la portabilité, dans un cadre apte à garantir aussi bien la transparence et le contrôle sur l’usage de leurs données personnelles que l’exploitation directe du contenu de ces données selon leurs libres choix. Le self data est en effet selon la Fondation Internet Nouvelle Génération (FING) « la production, l’exploitation et le partage de données personnelles par les individus, sous leur contrôle et à leurs propres fins ». Au sein de cet environnement self data, la gestion des données s’appuie sur l’organisation suivante des rôles et responsabilités associées : \",\"part2-1\":\"Les partenaires du service GRDF et Eau Publique du Grand Lyon sont responsables exclusivement des seuls traitements de Données Personnelles relatifs à la collecte des données de consommation de gaz et d’eau de l’utilisateur et à leur transmission sur la plateforme de cloud personnel, après consentement de l’utilisateur.\",\"part2-2\":\"Enedis est responsable de la collecte des données de consommation d’électricité et de leur mise à disposition à la Métropole de Lyon qui, elle en gère la transmission sur la plateforme du cloud personnel de l’utilisateur, après avoir récupéré le consentement de l’utilisateur.\",\"part2-3\":\"La Métropole de Lyon est responsable de traitement sur le périmètre du service Ecolyo qu’elle propose à l’usager, ainsi que des traitements nécessaires à la fourniture de la plateforme de cloud personnel qu’elle met à disposition de l’usager pour accéder au service Ecolyo. En sa qualité de responsable de ces traitements, elle collecte et traite : \",\"part2-3-1\":\"Les données de compte de l’usager renseignées par l’usager au sein de son espace de cloud personnel Grand Lyon à des fins de gestion du compte et de communication avec l’usager ;\",\"part2-3-2\":\"Les données de compte de l’utilisateur lui permettant de connecter ses données d’électricité à Ecolyo ;\",\"part2-3-3\":\"Les données privées de consommation d’énergie et d’eau dont la récupération, la sauvegarde, le stockage, la synchronisation et le partage sur la plateforme de cloud personnel sont initiés par l’usager sans visibilité de la Métropole de Lyon sur leur contenu.\",\"part2-3-4\":\"Les données privées sur la composition du logement et du foyer de l’utilisateur, fournies par l’utilisateur lui-même au sein du service, sont traitées par le service sans visibilité de la Métropole de Lyon sur leur contenu.\",\"part2-3-5\":\"Des métriques d’usage du service anonymisées et remontées périodiquement afin d’améliorer la qualité du service et d’évaluer son impact (Plus d’informations sur la manière dont votre anonymat est bien préservé dans ce processus <a href=\\\"https://ecolyo.com/cloud_statistiques.html\\\">ici</a>).\",\"part2-4\":\"La Métropole réalise également des mesures d’audience à l’aide de la solution Matomo. Afin de vous fournir un meilleur service et d’améliorer votre expérience d'utilisateur, nous utilisons des solutions de mesure d’audience qui utilisent la technologie des « cookies », des fichiers texte qui sont enregistrés sur votre ordinateur et qui permettent de générer des informations envoyées aux serveurs de mesure d’audience. Sur ces serveurs, l’adresse IP est anonymisée. Les données recueillies ont uniquement pour finalité de permettre d'analyser la fréquentation de nos pages afin d'en améliorer le contenu. Il s'agit de statistiques agrégées permettant de connaître le nombre de visites et de visiteurs différents, les pages les plus populaires, les chemins préférés, les niveaux d'activité par jour de la semaine et par heure de la journée, les principales erreurs etc. Vous avez cependant le droit de vous opposer à l’utilisation de ces cookies, et donc au traitement de vos données personnelles de navigation, en vous rendant dans la page Options de notre service.\",\"part2-5\":\"L’usager est seul décisionnaire des finalités d’utilisation qu’il souhaite définir pour le traitement de ses données personnelles de consommation, à la suite de leur transmission par les partenaires du service Ecolyo sur son cloud personnel. Ainsi, dans le cadre de l’utilisation d’Ecolyo, l’usager ne recevra les données des partenaires du service : Enedis, GRDF et Eau Publique du Grand Lyon seulement qu’à sa demande expresse après la saisie de ses identifiants.\",\"part2-6\":\"L’utilisateur est donc le seul à accéder :\",\"part2-6-1\":\"À ses données de consommation d’électricité horaires, journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-6-2\":\"À ses données de consommation de gaz journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-6-3\":\"À ses données de consommation eau journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-7\":\"Les engagements et responsabilités de la Métropole de Lyon concernant la protection des données et la confidentialité des données Ecolyo sont précisés dans les Mentions légales et les conditions d’utilisation du cloud personnel Grand Lyon qui accueille aujourd’hui le service Ecolyo et sans lequel le service ne peut pas fonctionner. Pour plus d’informations sur les engagements et responsabilités de la Métropole de Lyon concernant la protection et la confidentialité dans le cloud personnel, nous vous invitons à vous référer <a href=\\\"https://manager.cozygrandlyon.cloud/tos/266b4226-8417-42fb-b911-41e86dae8581.pdf?locale=fr\\\">aux mentions légales et CGU du cloud personnel métropolitain.</a> \",\"part2-8\":\"Conformément à la loi 78-17 du 6 janvier 1978 modifiée relative à l’information, aux fichiers et aux libertés, vous disposez d’un droit d’accès, de rectification et d’opposition au traitement de vos données à caractère personnel. Votre cloud personnel vous permet d’exercer ces droits directement dans cet espace sur vos données de compte. S’agissant des données de consommations d’électricité et de gaz, l’utilisateur peut supprimer son consentement à partager ses données en supprimant son connecteur dans la page Consos.\",\"part2-9\":\"Vous pouvez également exercer vos droits d’accès, de rectification, de limitation, d’opposition et d’effacement de vos données personnelles en contactant directement le Délégué à la Protection des Données par courrier en écrivant à l’adresse :\",\"part2-10\":\"Métropole de Lyon – Délégué à la Protection des Données - Direction des Assemblées, des Affaires Juridiques et des Assurances - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 ou en ligne, au moyen du formulaire disponible à l'adresse suivante : <a href=\\\"https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/\\\">https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/.</a>\",\"part2-11\":\"L’exercice de ces droits sur vos données personnelles auprès de la Métropole de Lyon concerne exclusivement les données traitées dans le cadre du service  « Ecolyo ».\",\"title3\":\"Dispositions légales\",\"part3-1\":\"Les divers éléments du site web (la forme, la mise en page, le fonds, la structure …) sont protégés par le droit des dessins et modèles, le droit d’auteur, le droit des marques ainsi que le droit à l’image et ils ne peuvent être copiés ou imités en tout ou partie sauf autorisation expresse de la Métropole de Lyon.\",\"part3-2\":\"Toute personne ne respectant pas les dispositions légales applicables se rend coupable du délit de contrefaçon et est passible des sanctions pénales prévues par la loi.\",\"title4\":\"Droits d’auteurs\",\"part4-1\":\"Les photographies, textes, logos, pictogrammes, ainsi que toutes œuvres intégrées dans le site sont la propriété de la \\\"Métropole de Lyon\\\" ou de tiers ayant autorisé la \\\"Métropole de Lyon\\\" à les utiliser.\",\"part4-2\":\"Les reproductions, les transmissions, les modifications, les réutilisations, sur un support papier ou informatique, dudit site et des œuvres qui y sont reproduites ne sont autorisées que pour un usage personnel et privé conforme aux dispositions de l’article L 122-5 du Code de la Propriété Intellectuelle. Ces reproductions devront ainsi notamment indiquer clairement la source et l’auteur du site et/ou de ces œuvres multimédias. En aucun cas ces reproductions ne sauraient porter préjudice aux droits des tiers. Les reproductions, les transmissions, les modifications, les réutilisations à des fins publicitaires, commerciales ou d’information, de tout ou partie du site, sont totalement interdites.\",\"title5\":\"Logo de la Métropole de Lyon et d’Ecolyo\",\"part5\":\"Les logos de la Métropole de Lyon et d’Ecolyo ne peuvent pas être modifiés – proportions, couleurs, éléments, constituants – et ne peuvent pas être sujet à aucune transformation, animation ou tout autre processus. Les logos de la Métropole de Lyon et d’Ecolyo ne peuvent être utilisés et associés qu’aux seules informations vérifiables. Ils ne peuvent être notamment utilisés que pour illustrer des relations avec la Métropole de Lyon ou des actions de sponsorings dûment établies. Quel que soit le cas d’espèce, la Métropole de Lyon se réserve le droit d’approuver ou de désapprouver toute utilisation des logos de la Métropole de Lyon et d’Ecolyo, pour assurer son utilisation correcte, conformément à l’éthique, la morale et aux intérêts de la Métropole de Lyon. Les conditions susmentionnées s’appliquent dans le cadre de pages web, elles ne font pas référence à l’utilisation des logos dans tout autre document. La Métropole de Lyon se réserve le droit de modifier les conditions d’utilisation des logos de la Métropole de Lyon et d’Ecolyo à tout moment et sans préavis.\",\"title6\":\"Droit des bases de données\",\"part6\":\"Les bases de données sont protégées par la loi du 1er juillet 1998 et le régime français du droit d’auteur.\",\"title7\":\"Établissements de liens vers le site Ecolyo\",\"part7-1\":\"La Métropole de Lyon autorise la mise en place d’un lien hypertexte vers son service Ecolyo pour tous les sites internet, à l’exclusion de ceux diffusant des informations à caractère polémique, pornographique, xénophobe ou pouvant, dans une plus large mesure porter atteinte à la sensibilité du plus grand nombre.\",\"part7-2\":\"Le lien doit aboutir à la page d’accueil du service (<a href=\\\"https://ecolyo.com\\\">https://ecolyo.com</a>), cette page devant apparaître dans une nouvelle fenêtre. Les pages du service Ecolyo ne doivent en aucun cas être intégrées à l’intérieur des pages d’un autre site (iframe).\",\"part7-3\":\"Dans tous les cas d’espèce, La Métropole de Lyon se réserve le droit de demander la suppression d’un lien si elle estime que le site cible ne respecte pas les règles ainsi définies.\",\"title8\":\"Liens vers des sites tiers depuis le site Ecolyo\",\"part8\":\"Les liens hypertextes mis en œuvre au sein du site en direction d’autres sites et/ou de pages personnelles et d’une manière générale vers toutes ressources existantes sur internet ne sauraient engager la responsabilité de la Métropole de Lyon quant aux liens qu’ils contiennent ou aux changements ou mises à jour qui leur sont apportés.\",\"title9\":\"Mise en garde générale\",\"part9-1\":\"Nos services mettent tout en œuvre pour offrir aux visiteurs de ce site web des informations fiables et vérifiées. Cependant, malgré tous les soins apportés, le site peut comporter des inexactitudes, des défauts de mise à jour ou des erreurs.\",\"part9-2\":\"Nous remercions les utilisateurs du site de nous faire part d’éventuelles omissions, erreurs ou corrections par mail sur la boite aux lettres du webmestre ou directement via le formulaire proposé dans le service.\",\"accessibility\":{\"button_close\":\"Fermer la fenêtre\"}},\"oauth\":{\"window\":{\"title\":\"OAuth\"}},\"onboarding\":{\"welcomeModal\":{\"title\":\"Vous êtes à mi-chemin !\",\"part1\":\"Votre cloud personnel a bien été créé.\",\"part2\":\"Il vous faut maintenant donner votre accord pour connecter vos compteurs au service.\",\"button_valid\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre de bienvenue\",\"button_valid\":\"Valider\"}}},\"old_fluid_data_modal\":{\"errorTxt\":\"Aïe !\",\"oldData\":\"Vos données semblent anciennes\",\"verify\":\"Veuillez vérifier l’état de vos connecteurs : \",\"problem\":\"Vos connecteurs semblent bien connectés, il se peut qu’il y ait un problème au niveau du ou des fournisseurs de données :\",\"problem_electricity\":\"pour l'électricité.\",\"problem_water\":\"pour l'eau.\",\"problem_gas\":\"pour le gaz.\",\"contact\":\"Veuillez prendre contact directement avec eux.\",\"accessButton\":\"Accéder aux connecteurs\",\"later\":\"Plus tard\",\"ok\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre d'information\",\"button_ok\":\"Fermer la fenêtre\",\"button_later\":\"Fermer la fenêtre\",\"button_goto_konnector\":\"Aller aux connecteurs\"}},\"performance_indicator\":{\"bilan\":{\"text1\":\"Par rapport à \",\"text2\":\"soit une différence de : \"},\"error_no_compare\":\"comparaison impossible\",\"error_no_compare_reason\":\"(manque de données)\",\"error_no_compare_no_data\":\"Vos consommations pour cette période sont incomplètes à cause d’un problème technique concernant :\",\"fpi\":{\"no_data\":\"Données non disponibles\",\"no_comparison\":\"Pas de comparaison possible\"}},\"profile\":{\"report\":{\"title_alert\":\"Alerte Consommation Excessive d'Eau\",\"title_bilan\":\"Notification par mail\",\"switch_label_bilan\":\"Je reçois la lettre mensuelle contenant un bilan et des conseils sur ma consommation.\",\"switch_label_alert\":\"Être prévenu d’un dépassement anormal de ma consommation d’eau\",\"input_label_alert\":\"Si ma consommation d’eau quotidienne dépasse :\",\"input_label_subtext_alert\":\"Votre consommation quotidienne maximum sur les 6 derniers mois : \",\"activate\":\"Activer\",\"deactivate\":\"Désactiver\"},\"accessibility\":{\"button_toggle_mail_report\":\"Recevoir mon bilan mensuel par mail\",\"button_toggle_consumption_alert\":\"Recevoir des alertes sur mes consommations journalières\",\"input_water_alert_report\":\"Indiquer une limite de consommation d'eau journalière\"}},\"profile_type\":{\"title_profile\":\"Mes données\",\"read_profile\":\"Ajuster mon profil\",\"button_update_profile\":\"J'ajuste mon profil\",\"your_profile\":\"Mon profil\",\"multi_choices\":\"Plusieurs réponses possibles\",\"housing_type\":{\"title\":\"Logement\",\"question\":\"De quel type de logement disposez-vous ?\",\"individual_house\":\"Maison individuelle\",\"apartment\":\"Appartement\"},\"construction_year\":{\"title\":\"Construction\",\"question\":\"Quelle est son année de construction ?\",\"text_before_1948\":\"Construit avant 1948\",\"text_between_1948_and_1974\":\"Construit entre 1948 et 1974\",\"text_between_1975_and_1989\":\"Construit entre 1975 et 1989\",\"text_between_1990_and_1998\":\"Construit entre 1990 et 1998\",\"text_after_1998\":\"Construit après 1998\",\"text_unknown\":\"Construit après 1998\",\"before_1948\":\"Avant 1948\",\"between_1948_and_1974\":\"Entre 1948 et 1974\",\"between_1975_and_1989\":\"Entre 1975 et 1989\",\"between_1990_and_1998\":\"Entre 1990 et 1998\",\"after_1998\":\"Après 1998\",\"unknown\":\"Je ne sais pas\"},\"occupantsNumber\":{\"single\":\" occupant\",\"multi\":\" occupants\"},\"area\":{\"title\":\"Surface\",\"question\":\"Quelle est sa surface en m² ?\",\"name\":\" m²\"},\"occupants_number\":{\"title\":\"Nombre d'occupants\",\"question\":\"Combien il y a-t-il d'occupants ?\"},\"outside_facing_walls\":{\"1\":\"1 façade\",\"2\":\"2 façades\",\"3\":\"3 façades\",\"4\":\"4 façades\",\"title\":\"Murs extérieurs\",\"question\":\"Combien de façades donnent sur l'extérieur ?\",\"text\":{\"single\":\" façade donne sur l'extérieur\",\"multi\":\" façades donnent sur l'extérieur\"}},\"floor\":{\"title\":\"Étage\",\"question\":\"À quel étage est votre appartement ?\",\"ground_floor\":\"Au rez-de-chaussée\",\"intermediate_floor\":\"Étage intermédiaire\",\"last_floor\":\"Dernier étage\",\"not_applicable\":\"Sans objet\"},\"heating\":{\"title\":\"Chauffage\",\"question\":\"Quel est votre type de chauffage ?\",\"individual\":\"Individuel\",\"collective\":\"Collectif\"},\"individual_insulation_work\":{\"title\":\"Travaux de rénovation\",\"question\":\"Quels travaux de rénovation avez-vous réalisés ces 10 dernières années ?\",\"none\":\"Aucun\",\"roof_insulation\":\"Isolation toiture\",\"window_replacement\":\"Remplacement fenêtres\",\"wall_insulation\":\"Isolation des murs\",\"window_replacement_and_wall_insulation\":\"Remplacement fenêtres et isolation des murs\",\"window_replacement_and_roof_insulation\":\"Remplacement fenêtres et isolation toiture\",\"roof_and_wall_insulation\":\"Isolation toiture et murs\",\"window_replacement_and_roof_and_wall_insulation\":\"Remplacement fenêtre et isolation des murs et isolation toiture\",\"built_after_1998\":\"construit après 1998\"},\"facilities_installation\":{\"title\":\"Équipement\"},\"ventilation\":{\"title\":\"Ventilation double flux\",\"question\":\"Êtes-vous équipé d'une ventilation double flux ?\",\"yes\":\"Oui\",\"no\":\"Non\",\"unknown\":\"Je ne sais pas\",\"text\":\"Équipé d'une ventilation double flux\"},\"heater_replacement\":{\"title\":\"Pompe à chaleur ou poêle à bois\",\"question\":\"Au cours de ces 10 dernières années, avez-vous remplacé votre chaudière ou vous êtes-vous équipé d'une pompe à chaleur ou d'un poêle à bois ?\",\"yes\":\"Oui\",\"no\":\"Non\",\"unknown\":\"Je ne sais pas\",\"text\":\"Équipé d'une pompe à chaleur ou poêle à bois\"},\"cold_water\":{\"title\":\"Eau\",\"question\":\"Votre eau est-elle comprise dans vos charges collectives ?\",\"individual\":\"Non\",\"collective\":\"Oui\",\"individual_text\":\"Individuelle\",\"collective_text\":\"Collective\"},\"hot_water\":{\"title\":\"Eau chaude\",\"question\":\"Quel est votre type de production d’eau chaude ?\",\"individual\":\"Individuelle\",\"collective\":\"Collective\"},\"hot_water_equipment\":{\"title\":\"Eau chaude\",\"question\":\"Utilisez-vous l’un de ces équipements pour produire votre eau chaude ?\",\"solar\":\"Chauffe-eau solaire\",\"thermodynamic\":\"Chauffe-eau thermodynamique\",\"other\":\"Aucun des deux\"},\"warming_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Bois\",\"4\":\"Fioul\",\"5\":\"Autre\",\"title\":\"Source chauffage\",\"question\":\"Quelle source d’énergie principale utilisez-vous pour vous chauffer ?\",\"no_fluid_text\":\"Produit ni par de l'électricité, ni par du gaz, ni par du bois ou du fuel\",\"0_text\":\"Produit grâce à de l'électricité\",\"2_text\":\"Produit grâce au gaz\",\"3_text\":\"Produit grâce au bois\",\"4_text\":\"Produit grâce au fioul\",\"5_text\":\"Produit grâce à un autre moyen\"},\"hot_water_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Autre (Fioul, Bois)\",\"title\":\"Source eau chaude\",\"question\":\"Avec quelle source d’énergie votre eau chaude est-elle produite ?\",\"no_fluid_text\":\"Produite ni par de l'électricité, ni par du gaz\",\"0_text\":\"Produite grâce à de l'électricité\",\"2_text\":\"Produite grâce au gaz\",\"3_text\":\"Produite à partir d'un autre moyen que l'électricité ou le gaz\"},\"cooking_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"title\":\"Source cuisson\",\"question\":\"Quel mode de cuisson principal utilisez-vous ?\"},\"update_date\":{\"title\":\"Date de prise d'effet\",\"question\":\"A partir de quelle date souhaitez-vous que ce nouveau profil soit pris en compte dans l'analyse de vos données ?\"},\"fluidType\":{\"0\":\"Électricité\",\"1\":\"Eau\",\"2\":\"Gaz\"},\"form\":{\"button_previous\":\"Précédent\",\"button_next\":\"Suivant\",\"button_end\":\"Terminer\",\"button_loading\":\"Chargement...\"},\"finished\":{\"title\":\"Terminé !\",\"label1\":\"Grâce à ces informations, vous pourrez comparer votre consommation avec celle d'un foyer vous ressemblant davantage !\",\"label2\":\"Nous pourrons aussi vous proposer des astuces pour maîtriser vos consommations adaptées à votre profil.\",\"button_validate\":\"OK\"},\"accessibility\":{\"button_end\":\"Terminer la mise à jour du profil\",\"button_next\":\"Aller à la section suivante\",\"button_previous\":\"Retour à la section précédente\",\"button_update_profile\":\"Ouvrir la page de mise à jour du profil\",\"button_toggle_detail_profile\":\"Afficher ou masquer le détail du profil\",\"button_toggle_export\":\"Afficher ou masquer l'export des données'\",\"button_toggle_average_home\":\"Afficher ou masquer les informations sur le comparatif'\",\"button_validate\":\"Valider\"}},\"export\":{\"title_export\":\"Télécharger mes données\",\"text1\":\"Vous allez télécharger l'historique mensuel de vos fluides sélectionnés\",\"fluid_select\":\"Pour quel(s) fluide(s) souhaitez vous exporter vos données ?\",\"no_data\":\"Vous n'avez aucune donnée de fluide...\",\"button_download\":\"Télécharger\",\"month\":\"Mois\",\"year\":\"Année\",\"consumption\":\"Consommation\",\"button_close\":\"Fermer la fenêtre\",\"modal_start\":{\"accessibility_title\":\"Commencer le téléchargement\",\"text1\":\"Vous allez télécharger des données personnelles, Ecolyo n’est plus responsable de celles-ci une fois téléchargées\",\"text2\":\"Les données seront téléchargées sous forme de document excel (.xls)\",\"text3\":\"Lancer le téléchargement ?\",\"button_cancel\":\"Annuler\"},\"modal_loading\":{\"accessibility_title\":\"Téléchargement en cours\",\"text1\":\"Données en cours de téléchargement\",\"text2\":\"Veuillez ne pas quitter l’application pendant la récupération et le téléchargement de vos données\",\"button_cancel\":\"Annuler le téléchargement\"},\"modal_done\":{\"accessibility_title\":\"Téléchargement terminé\",\"text1\":\"Vos données ont bien été téléchargées !\",\"text2\":\"Vous pouvez maintenant retrouver l’historique de vos données sur votre appareil\",\"error1\":\"Aïe !\",\"error2\":\"Il semblerait qu’une erreur se soit produite lors du téléchargement de vos données.\",\"button_close\":\"Fermer\",\"button_close_error\":\"Revenir plus tard\"}},\"quiz\":{\"explanation\":\"Répondez correctement aux 5 questions et remportez 5 des 15 étoiles nécessaires pour débloquer le duel final\",\"score_final\":\"SCORE FINAL\",\"correct\":\"Bravo !\",\"wrong\":\"Raté !\",\"rightAnswer\":\"Bonne réponse :\",\"earn\":\"Vous remportez\",\"button_go_back\":\"Retour\",\"button_end_quiz\":\"Youpi !\",\"button_try_again\":\"Réessayer\",\"button_validate\":\"Valider\",\"next\":\"Suivant\",\"consumption_question\":\"Question sur votre consommation\",\"accessibility\":{\"window_title\":\"Fenêtre de résultat\",\"button_end_quiz\":\"Terminer le quiz\",\"button_go_back\":\"Retour\",\"button_go_next\":\"Suivant\",\"button_try_again\":\"Relancer le quiz\",\"button_validate\":\"Valider\"}},\"splashscreen\":{\"error_loading\":\"Une erreur est survenue\",\"button_reload\":\"Réessayer\",\"accessibility\":{\"button_reload\":\"Recharger la page\"},\"migration_error\":\"Mise à jour de l'application\",\"consent_error\":\"Vérification de vos consentements pour partager vos données avec Ecolyo\",\"profile_error\":\"Chargement de votre profil utilisateur\",\"profileType_error\":\"Chargement de votre profil de consommation.\",\"challenges_error\":\"Actualisation de votre progression dans les défis\",\"analysis_error\":\"Chargement de votre analyse mensuelle\",\"index_error\":\"Chargement des index\",\"prices_error\":\"Mise à jour des prix\",\"consos_error\":\"Connexion à vos données de consommation\",\"partners_error\":\"Récupération de l'état des services partenaires\",\"unknown_error\":\"Veuillez vérifier votre connexion internet\",\"network_error\":\"Erreur de réseau\",\"step\":{\"0\":\"Mise à jour de l'application\",\"1\":\"Vérification de vos consentements pour partager vos données avec Ecolyo\",\"2\":\"Chargement de votre profil\",\"3\":\"Actualisation de votre progression dans les défis\",\"4\":\"Mise à jour des prix\",\"5\":\"Connexion à vos données de consommation\"}},\"timestep\":{\"today\":\"Aujourd'hui\",\"year\":{\"period\":\"5 ans\",\"comparelabel\":\"Comparer à l'année précédente\"},\"month\":{\"period\":\"Année\",\"comparelabel\":\"Comparer à l'année précédente\",\"current\":\"année actuelle\",\"last\":\"année précédente\"},\"day\":{\"period\":\"Mois\",\"comparelabel\":\"Comparer au mois précédent\",\"current\":\"mois actuel\",\"last\":\"mois précédent\"},\"week\":{\"period\":\"Semaine\",\"comparelabel\":\"Comparer à la semaine précédente\",\"current\":\"semaine actuelle\",\"last\":\"semaine précédente\"},\"half_an_hour\":{\"period\":\"Jour\",\"comparelabel\":\"Comparer à la journée précédente\",\"gather_data_title\":\"La récupération de vos données demi-horaires prend environ 24h.\",\"current\":\"jour actuel\",\"last\":\"jour précédent\",\"gather_data_subtitle\":\"Votre connexion a bien été prise en compte mais un délai de 24h est en général nécessaire à l’obtention de vos données.\\nÀ demain !\",\"analysis_waiting_data\":\"Pour bénéficier d'une analyse approfondie de votre consommation électrique, il nous faut récupérer vos données de consommation horaires. La récupération de ces données prend environ 24h. A bientôt !\"},\"accessibility\":{\"button_zoom_in\":\"Sélectionner le pas de temps précédent\",\"button_zoom_out\":\"Sélectionner le pas de temps suivant\"}},\"unsubscribe\":{\"title\":\"Êtes-vous sûr de ne plus vouloir recevoir notre email mensuel ?\",\"content\":\"Dans ce cas, vous ne recevrez plus la notification de votre bilan ainsi que les conseils associés au mois en cours.\",\"button_text\":\"Oui, je me désabonne\",\"button_accessibility\":\"Bouton de désinscription\"},\"welcome_modal\":{\"title\":\"Félicitations\",\"perso\":\"Votre espace personnel a bien été créé.\",\"connect\":\"Vous pouvez maintenant connecter vos compteurs d’énergie à Ecolyo en toute sécurité.\",\"button_valid\":\"Ok\",\"accessibility\":{\"title\":\"Fenêtre de félicitations\",\"button_valid\":\"Valider\"}}}");
+module.exports = JSON.parse("{\"common\":{\"title_app\":\"Ecolyo\",\"title_consumption\":\"Conso\",\"title_challenge\":\"Défis\",\"title_quiz\":\"Quiz\",\"title_exploration\":\"Exploration\",\"title_action\":\"Action\",\"title_duel\":\"Duel final\",\"title_ecogesture\":\"Astuce\",\"title_ecogestures\":\"Astuces\",\"title_ecogestures_choice\":\"Sélection des astuces\",\"title_options\":\"Options\",\"title_analysis\":\"Analyse\",\"title_profiletype\":\"Ajuster mon profil\",\"title_legal_notice\":\"Mentions légales\",\"title_gcu\":\"Conditions générales d’utilisation\",\"title_accessibility\":\"Accessibilité : non conforme\",\"title_sge_connect\":\"Connexion à l'électricité\",\"accessibility\":{\"loading\":\"Chargement\"}},\"navigation\":{\"consumption\":\"Conso\",\"challenges\":\"Défis\",\"ecogestures\":\"Astuces\",\"options\":\"Options\",\"analysis\":\"Analyse\"},\"FLUID\":{\"ELECTRICITY\":{\"NAME\":\"Électricité\",\"LABEL\":\"Électricité\",\"UNIT\":\"kWh\",\"ADD\":\"Ajouter l'électricité\",\"MEGAUNIT\":\"MWh\",\"provider\":\"Enedis\"},\"WATER\":{\"NAME\":\"Eau\",\"LABEL\":\"Eau\",\"ADD\":\"Ajouter l'eau\",\"UNIT\":\"L\",\"MEGAUNIT\":\"m³\",\"provider\":\"Eau Publique du Grand Lyon\"},\"GAS\":{\"NAME\":\"Gaz\",\"LABEL\":\"Gaz\",\"ADD\":\"Ajouter le gaz\",\"UNIT\":\"kWh\",\"MEGAUNIT\":\"MWh\",\"provider\":\"GRDF\"},\"MULTIFLUID\":{\"NAME\":\"Multi fluide\",\"LABEL\":\"Multi\",\"UNIT\":\"€\"}},\"action\":{\"duration\":\"Durée : %{smart_count} jours\",\"result\":\"Résultat\",\"finished\":\"Défi terminé !\",\"details\":\"Détail de l'astuce\",\"apply\":\"J'applique cette action\",\"other\":\"Je choisis une autre action\",\"resultText1\":\"Cela n'a pas été trop difficile ?\",\"resultText2\":\"Jetez un coup d'œil dans la page conso dans 1 à 3 jours, le temps que vos données arrivent, pour voir l'impact de votre action.\",\"resultText3\":\"Pas de baisse de significative ? Pas de panique, en maintenant cette pratique dans le temps, les économies d'énergies et d'eau seront davantage visibles.\",\"resultText4\":\"Dans tous les cas, bravo, vous remportez...\",\"ok\":\"Ok\"},\"action_modal\":{\"accept\":\"Je relève le défi\",\"refuse\":\"Je me défile\",\"accessibility\":{\"window_title\":\"Fenêtre de confirmation\",\"button_accept\":\"Accepter\",\"button_refuse\":\"Refuser\"}},\"analysis\":{\"viewTitle\":\"Analyse\",\"comparison\":\"Comparatif\",\"analysis_date\":\"Conso totale\",\"challenge\":\"Défis terminés en\",\"user_consumption\":\"Votre conso\",\"average_home\":\"Conso moyenne d'un profil similaire\",\"average_home_description\":\"Le comparatif ici présenté est calculé sur la base d'un profil similaire au vôtre. Il s'agit d'un calcul et non d'une comparaison avec les autres utilisateurs de l'application. Sont pris en compte l'ensemble des informations entrées dans votre profil : mode de chauffage, âge du logement et éventuels travaux de rénovation, etc. Ce modèle a été créé avec l'Agence Locale de l'Energie sur la base de chiffres issues du Schéma Directeur des Energies de la Métropole de Lyon et de Chiffres-clé publiés par l'ADEME (l'Agence de l'Environnement et de la Maîtrise de l'Energie).\",\"approximative_description\":\"Pour comparer votre consommation avec un foyer similaire ou avec une conso idéale, veuillez détailler votre profil\",\"not_connected\":\"Non connecté\",\"no_data_2\":\"Données non disponibles\",\"accessibility\":{\"button_go_to_profil\":\"Détailler mon profil\"},\"max_day\":\"Jour où vous avez le plus consommé\",\"compare\":{\"title\":\"Comparateur\",\"month_tab\":\"Comparer au mois dernier\",\"year_tab\":\"Comparer à l'année dernière\"},\"no_data\":\"Pas de données\"},\"analysis_error_modal\":{\"title\":\"Aucune analyse\",\"message\":\"Pour profiter d’une analyse de vos consommations, connectez au moins un de vos compteurs.\",\"go_to_options\":\"Je connecte mes compteurs\",\"go_back\":\"Retour\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_go_back\":\"Retour\",\"button_goto_konnector\":\"Aller aux connecteurs\"}},\"analysis_pie\":{\"total\":\"Conso totale\",\"month\":\"Au mois de \",\"estimation\":\"Comment sont estimés\",\"estimation2\":\"les prix ?\"},\"special_elec\":{\"title\":\"Spécial Électricité\",\"average\":\"Conso moyenne\",\"weektype\":\"un jour de \",\"week\":\"semaine\",\"weekend\":\"week-end\",\"min\":\"Conso minimum\",\"percentage\":\"Part dans la facture\",\"price\":\"Soit\",\"maxPower\":\"Puissance maximum atteinte\",\"showModal\":\"Plus d'infos\"},\"elec_info_modal\":{\"accessibility\":{\"window_title\":\"electricity-info-modal\",\"button_close\":\"close-modal\"},\"title1\":\"Qu’est-ce que la consommation minimum ?\",\"title2\":\"Qu’est-ce que la puissance maximum ?\",\"text1\":\"Elle correspond à votre plus petite consommation du mois sur un créneau d'une demi-heure.\",\"text2\":\"Nous extrapolons cette consommation sur 1 mois afin vous donner un aperçu de la consommation de vos consommations électriques en veille (box, télé, chargeurs, ...) ou encore de celle, incompressible, de vos appareils de froid (frigo, congélateur).\",\"text3\":\"C’est la puissance maximum délivrée par tous les appareils fonctionnant au même moment dans votre logement.\",\"text4\":\"Vous avez choisi une puissance maximum dans votre offre d’électricité (3, 6 ou 9 kVA...) que vous ne devez pas dépasser pour ne pas faire sauter votre compteur. \",\"text5\":\"Cette puissance varie d'un mois à l'autre, regardez cette valeur sur l'ensemble de l'année pour vérifier si votre puissance souscrite correspond bien à votre usage.\"},\"auth\":{\"enedissgegrandlyon\":{\"title\":\"Ecolyo doit se connecter à l’électricité\",\"bill\":\"Munissez-vous d’une <span>facture d’électricité</span> pour valider la connexion\",\"connect\":\"Je me connecte à l'électricité\",\"accessibility\":{\"connect\":\"Se connecter\"},\"identityTitle\":\"Nom inscrit sur la facture\",\"firstName\":\"Prénom\",\"lastName\":\"Nom\",\"pdlTitle\":\"Numéro de votre compteur électrique (PDL)\",\"pdlLabel\":\"N° (14 chiffres)\",\"pdlHint\":\"Où trouver le n° de PDL ?\",\"pdlModal\":{\"txt1\":\"Où trouver le n° de PDL ou PRM ?\",\"txt2\":\"Le numéro de PDL ou PRM se compose de 14 chiffres.\",\"txt3\":\"Votre numéro de PDL ou PRM se trouve sur votre facture d’électricité.\",\"txt4\":\"Si vous avez un compteur Linky, appuyez sur le bouton “+” et faites défiler l’affichage jusqu’à obtenir l’affichage suivant :\"},\"addressTitle\":\"Adresse du titulaire\",\"address\":\"Numéro et voie\",\"zipCode\":\"Code postal\",\"city\":\"Ville\",\"headConsent\":\"Vous allez partager vos données à la Métropole de Lyon. Elles seront directement transférées à Ecolyo à l'intérieur de votre cloud personnel, sans que la Métropole n'y accède ni ne les visualise.\",\"textConsent\":\"Afin  de vous offrir des fonctionnalités de visualisation et d'analyse, Ecolyo a besoin des données suivantes : \",\"consentLi1\":\"L'historique et le relevé de vos consommations quotidiennes en kWh\",\"consentLi2\":\"L'historique et le relevé de vos consommations au pas de temps 30 minutes\",\"consentLi3\":\"Les puissances maximales atteintes quotidiennement\",\"consentLi4\":\"Les données contractuelles (début de contrat et puissance souscrite)\",\"consentCheck1\":\"Je consens à partager les données personnelles ci-dessus pour une durée d'<span>un an</span>\",\"consentCheck2\":\"J’atteste être le titulaire du point de livraison (PDL) renseigné à l’étape précédente\",\"modalHint\":{\"accessibility\":\"Titre de la modale\",\"title\":\"Où trouver le n° de PDL ?\",\"button\":\"J'ai compris\",\"button-accessibility\":\"Bouton valider\"}},\"grdfgrandlyon\":{\"bill\":\"Munissez-vous d’une <span>facture de gaz</span> pour valider la connexion\",\"connect\":\"Je me connecte au gaz\",\"accessibility\":{\"connect\":\"Se connecter\"},\"connect_form\":{\"label\":\"Je donne mon accord via mon compte GRDF\"},\"no_account\":{\"title\":\"Ecolyo doit se connecter au gaz\"},\"with_account\":{\"title\":\"Votre compte GRDF a bien été créé ?\",\"subtitle1\":\"Plus qu’à donner votre accord pour connecter votre compteur de gaz et Ecolyo !\"},\"step1\":{\"info1\":\"Un <span>compte chez GRDF</span> est nécessaire pour vous connecter au gaz\",\"info2\":\" <span>quelque soit votre fournisseur de gaz</span>.\",\"info3\":\"<p>GRDF est le gestionnaire de réseau. C'est lui qui est responsable de votre compteur Gazpar et de la collecte des données de consommation.</p>\",\"info4\":\"Possédez-vous un <span>compte GRDF</span> ?\"},\"step2\":{\"info1\":\"Une fois votre compte créé, <span>n'oubliez pas de revenir sur Ecolyo</span> pour finaliser la connexion.\"},\"step3\":{\"info1\":\"La visualisation de vos données sur Ecolyo demande l'activation du <span>partage de toutes les données.</span>\",\"info2\":\"Pour une expérience optimale, <span>une période de consentement de 1 an</span> est recommandée à partir d’aujourd’hui.\",\"info3\":\"<p>Veillez également à indiquer une date antérieure pour l'historique (1er calendrier) afin de pouvoir récupérer jusqu'à 3 ans d'historique.</p>\"},\"button_go_to_partner_site\":\"Aller sur GRDF\"},\"eglgrandlyon\":{\"bill\":\"Munissez-vous d’une <span>facture d'eau</span> pour valider la connexion\",\"connect\":\"Je me connecte à l'eau\",\"accessibility\":{\"connect\":\"Se connecter\"},\"connect_form\":{\"login\":\"Identifiant (7 chiffres)\",\"password\":\"Mot de passe\",\"label\":\"Je connecte Ecolyo à mon compte Eau Publique du Grand Lyon\"},\"no_account\":{\"title\":\"Ecolyo doit se connecter à l'eau\"},\"with_account\":{\"title\":\"Votre compte Eau Publique du Grand Lyon a bien été créé ?\",\"subtitle1\":\"Plus qu’à donner votre accord pour connecter votre compteur d'eau et Ecolyo !\"},\"step1\":{\"info1\":\"La connexion se fait via <span>votre compte Eau Publique du Grand Lyon</span>.\",\"info2\":\"Possédez-vous un <span>compte Eau Publique du Grand Lyon</span> ?\"},\"step2\":{\"info1\":\"Une fois votre compte créé, <span>n'oubliez pas de revenir sur Ecolyo</span> pour finaliser la connexion.\"},\"button_go_to_partner_site\":\"Aller sur EPGL\"},\"connect_oauth\":{\"loading\":\"Chargement...\"},\"accessibility\":{\"button_reveal_password\":\"Afficher le mot de passe\",\"button_connect\":\"Se connecter\",\"button_create_account\":\"Se créer un compte\",\"window_title\":\"Fenêtre d'information sur la création de compte.\",\"button_close\":\"Fermer la fenêtre.\"},\"button_previous\":\"Précédent\",\"button_connect\":\"Se connecter\",\"button_create_account\":\"Se créer un compte\",\"button_has_account\":\"J'ai déjà un compte\",\"button_validate\":\"J'ai compris\",\"button_showOfflineData\":\"Voir mes anciennes données\",\"warningOfflineData\":\"Attention, vous visualisez d’anciennes données. Pour actualiser vos données, connectez votre compteur\"},\"challenge\":{\"card\":{\"ongoing\":{\"quiz\":\"Quiz\",\"exploration\":\"Explorations\",\"action\":\"Actions\",\"duel\":\"Duel Final\",\"result\":\"Résultat\",\"duelDone\":\"du duel final\"},\"locked\":{\"desc\":\"À débloquer en terminant le défi précédent\"}},\"card_done\":{\"saving\":\"Économie de\",\"depense\":\"Dépense de\",\"win\":\"Gagné\",\"lost\":\"Perdu\",\"final_defi\":\"sur le duel final\",\"final_defi_view\":\"Revoir le duel final\"},\"card_last\":{\"title\":\"Tous les défis sont terminés\",\"message1\":\"Nous travaillons actuellement à vous proposer de nouveaux défis.\",\"button\":\"Suggérer une idée de défi\"},\"card_unlocked\":{\"button_launch\":\"Lancer le défi\"},\"accessibility\":{\"button_launch\":\"Lancer le défi\",\"button_goto_konnector\":\"Aller aux connecteurs\",\"button_slider_previous\":\"Précédent\",\"button_slider_next\":\"Suivant\"}},\"challenge_no_fluid_modal\":{\"title\":\"Oups !\",\"content\":\"Connectez au moins 1 fluide pour pouvoir jouer\",\"button_validate\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_validate\":\"Valider\"}},\"consumption\":{\"display_last_data\":\"Voir mes dernières consos\",\"accessibility\":{\"button_previous_period\":\"Afficher la période précédente\",\"button_next_period\":\"Afficher la période suivante\",\"button_previous_value\":\"Sélectionner la valeur précédente\",\"button_next_value\":\"Sélectionner la valeur suivante\",\"checkbox_compare\":\"Afficher ou cacher la comparaison\"},\"partner_issue_modal\":{\"title\":\"Attention !\",\"error_connect_gaz\":\"La connexion à vos données de <span class='gaz'>gaz</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='gaz'>GRDF</span> ou dans notre service)\",\"error_connect_elec\":\"La connexion à vos données d'<span class='elec'>électricité</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='elec'>Enedis</span> ou dans notre service)\",\"error_connect_water\":\"La connexion à vos données d'<span class='water'>eau</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='water'>Eau Publique du Grand Lyon</span> ou dans notre service)\",\"additional_text\":\"La visualisation et/ou la connexion à vos données de consommation peut s'en trouver affectée.<br /><br /><i>Merci pour votre patience en attendant un retour à la normale :)</i>\",\"ok\":\"Ok\"},\"compared\":\"Comparé\"},\"consumption_details\":{\"detail\":\"Détail par fluide\",\"connect\":\"Connecter d'autres fluides\",\"mini_cards_label\":\"AUTRES ENERGIES\"},\"consumption_visualizer\":{\"missing_data\":\"Données manquantes\",\"no_data\":\"Pas de données\",\"why_no_data\":\"Pourquoi n'ai-je pas de données ?\",\"last_data\":\"Dernières données\",\"last_valid_data\":\"Dernières données valides\",\"last_available_data\":\"Dernières données disponibles\",\"last_valid_data_multi\":\"Dernières données complètes\",\"data_to_come\":\"à venir\",\"aie\":\"Aïe !\",\"data_empty\":\"Vide\",\"estimated\":\"estimés\",\"dataModal\":{\"list_title\":\"3 raisons possibles :\",\"item1\":\"le lien entre Ecolyo et le fournisseur de données est rompu : une mise à jour de ce lien (en bas de la page) peut résoudre ce problème.\",\"item2\":\"un problème technique chez votre gestionnaire : se connecter directement chez ce gestionnaire pour vérifier que cette donnée apparaît.\",\"item3\":\"pour le gaz : vous n'avez pas autorisé Ecolyo à accéder aux données de consommation de cette période.\",\"item4\":\"vous n'aviez tout simplement pas de compteur communicant à l'époque !\"},\"modal\":{\"window_title\":\"info estimation des prix\",\"title\":\"Comment sont estimés les prix ?\",\"close\":\"Fermer la fenêtre\",\"part1\":\"Le prix de votre électricité ou de votre gaz dépend de l'offre choisie auprès de votre fournisseur. N’ayant pas accès à cette information, Ecolyo affiche un prix moyen par fluide. \",\"part2\":\"Tarifs moyens retenus :\",\"list1\":\" : 1 kWh = %{elecPrice} €TTC (il correspond au tarif réglementé d’EDF au %{elecPriceStartDate} pour une puissance souscrite de 3 ou 6 kVA et hors offre heure pleine/heure creuse)\",\"list2\":\" : 1 kWh = %{gasPrice} €TTC (tarif réglementé de vente au %{gasPriceStartDate} pour un consommateur soutirant moins de 6 MWh par an)\",\"list3\":\" : 1 litre d’eau = %{waterPrice} € TTC (prix constaté au %{waterPriceStartDate} pour un abonnement et une consommation de 120 m3/an sur la Métropole de Lyon)\",\"part3\":\"Le coût de votre abonnement n'est pas pris en compte dans Ecolyo.\"},\"release_notes_modal\":{\"title\":\"Du nouveau sur Ecolyo !\",\"message\":\"Les mises à jour suivantes ont été effectuées sur votre application :\",\"go_back\":\"J'ai compris\",\"accessibility\":{\"window_title\":\"Fenêtre de notifications\",\"button_go_back\":\"J'ai compris\"}}},\"ecogestures\":{\"loading\":\"Chargement des astuces\"},\"duel\":{\"global_error\":\"Oups. Une erreur est survenue. Veuillez retourner à l'écran d’accueil des défis\",\"button_go_back\":\"Retour\",\"average_info\":\"%{average} euros étant votre moyenne actuelle, relevez-vous le défi ?\",\"button_start\":\"Allons-y !\",\"goal1\":\"Faites moins que votre moyenne actuelle sur %{durationInDays} jours\",\"goal2\":\"pour gagner le badge %{title}\",\"goal_done\":\"Duel remporté\",\"goal_failed\":\"Duel perdu\",\"caption_average\":\"Votre moyenne à titre indicatif\",\"caption_consumption\":\"Votre consommation\",\"caption_incoming\":\"Données à venir\",\"accessibility\":{\"button_go_back\":\"Retour\",\"button_start_duel\":\"Lancer le duel\",\"button_start_quiz\":\"Lancer le quiz\"}},\"duel_result_modal\":{\"sucess\":{\"title\":\"Félicitations !\",\"message1\":\"Vous avez économisé \",\"message2\":\"et gagné le badge \",\"button_validate\":\"Youpi !\"},\"lost\":{\"title\":\"Presque !\",\"message1\":\"Vous avez dépassé de \",\"message2\":\"et manqué le badge \",\"button_validate\":\"Zut alors !\"},\"accessibility\":{\"window_title\":\"Fenêtre de résultat\",\"button_validate\":\"Valider\"}},\"last_duel_modal\":{\"title\":\"Félicitations !\",\"subtitle\":\"Vous avez terminé tous les défis !\",\"message1\":\"Nous travaillons actuellement à vous proposer de nouveaux défis.\",\"message2\":\"Vous pouvez donner votre avis sur ce que vous aimeriez en cliquant sur la bulle d'aide.\"},\"duel_empty_value_modal\":{\"title\":\"Oups !\",\"message\":\"Impossible de lancer le duel. Il nous manque en effet certaines de vos données de consommation pour vous proposer un duel à votre hauteur.\",\"button\":\"Je retourne au menu des défis\",\"accessibility\":{\"window_title\":\"Fenêtre d'erreur\",\"button_validate\":\"Retourner au menu des défis\"}},\"ecogesture\":{\"title_tab_0\":\"Objectifs\",\"title_tab_1\":\"Je fais déjà\",\"title_tab_2\":\"Toutes\",\"MENU_TITLE\":\"Filtrer\",\"ALL\":\"Tous les usages\",\"HEATING\":\"Chauffage\",\"AIR_CONDITIONING\":\"Climatisation\",\"ECS\":\"Eau chaude\",\"COLD_WATER\":\"Eau froide\",\"ELECTRICITY_SPECIFIC\":\"Électricité courante\",\"COOKING\":\"Cuisson\",\"selection\":\"Sélectionner les astuces les plus adaptées à votre consommation\",\"selection_2\":\"vues sur\",\"button_selection\":\"Continuer ma sélection\",\"no_ecogesture\":\"Aucune astuce ne correspond à votre filtrage\",\"no_ecogesture_filter\":{\"text1\":\"Nous n'avons pas trouvé d'astuces adaptées à votre profil dans cette catégorie.\",\"text2\":\"En effet, de par votre profil et vos modes de chauffage, d'eau ou d'eau chaude sanitaire, nous n'avons pas identifié d’astuces vous permettant de diminuer vos factures à titre individuel. Toutefois, vous pouvez toujours agir pour préserver les ressources en appliquant et diffusant autour de vous les autres bonnes pratiques présentées dans la partie \\\"Toutes les astuces\\\".\"},\"adjust_profil\":{\"description\":\"Pour une sélection d’astuces adaptée à votre consommation, vous pouvez ajuster votre profil.\",\"button_go_to_profil\":\"Ajuster mon profil\"},\"accessibility\":{\"window_title\":\"Fenêtre d'information'\",\"button_close\":\"Fermer la fenêtre\",\"button_selection\":\"Aller à la page de sélection\"},\"doing\":\"Je fais déjà\",\"objective\":\"Objectif\",\"emptyList\":{\"obj1\":\"Les astuces présentées sont des actions qui vous permettent de réduire vos consommations et donc vos factures. On parle parfois d’écogestes.\",\"obj1_done\":\"Aucune astuce n’a été sélectionnée comme objectif actuellement.\",\"obj2\":\"Vous pouvez sélectionner ceux à mettre en objectifs et ceux que vous appliquez déjà.\",\"obj2_done\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous souhaitez garder en objectif dans cette section.\",\"doing1\":\"Aucune astuce n’a été sélectionnée dans la catégorie appliquée actuellement.\",\"doing1_done\":\"Aucune astuce n’est indiquée comme déjà appliquée actuellement.\",\"doing2\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous mettez déjà en pratique dans cette section.\",\"doing2_done\":\"Vous pouvez consulter toutes les astuces et ajouter celles que vous mettez déjà en pratique dans cette section.\",\"btn1\":\"Voir toutes les astuces\",\"btn2\":\"Sélectionner\"},\"initModal\":{\"title\":\"Sélectionner mes astuces\",\"text1\":\"Les astuces présentées sont des actions qui vous permettent de réduire vos consommations et donc vos factures. On parle parfois d’écogestes \",\"text2\":\"Vous pouvez sélectionner celles à mettre en objectifs et celles que vous appliquez déjà.\",\"text3\":\"Afin de pré-sélectionner les astuces correspondant à votre consommation, merci de répondre à quelques rapides questions.\",\"btn1\":\"Plus tard\",\"btn2\":\"C'est parti !\"},\"reinit\":\"Réinitialiser ma sélection\",\"reinitModal\":{\"title_part1\":\"Cette action\",\"title_part2\":\"supprimera votre liste d’astuces\",\"title_part3\":\"sélectionnées dans\",\"title_part4\":\"“Objectifs”\",\"title_part5\":\"et\",\"title_part6\":\"“Je fais déjà”\",\"text1\":\"Vous pourrez ensuite faire une nouvelle sélection adaptée à votre consommation.\",\"text2\":\"Souhaitez-vous réinitialiser votre sélection d’astuces ?\",\"btn1\":\"Non\",\"btn2\":\"Réinitialiser\"}},\"ecogesture_modal\":{\"title_ecogesture\":\"Astuce\",\"title_action\":\"Action\",\"efficiency\":\"Efficacité\",\"show_less\":\"Voir moins d’infos\",\"show_more\":\"Voir plus d’infos\",\"select_action\":\"Je choisis cette action\",\"accessibility\":{\"window_title_ecogesture\":\"Fenêtre astuce\",\"window_title_action\":\"Fenêtre action\",\"button_close\":\"Fermer la fenêtre\",\"button_select_action\":\"Sélectionner cette action\",\"button_see_more_detail\":\"Afficher plus de détails\"}},\"ecogesture_info_modal\":{\"header\":\"Comment sont choisis les astuces adaptées à mon profil ?\",\"text\":\"Les astuces adaptés à votre profil sont aujourd’hui choisies en fonction des compteurs individuels que vous possédez (communicants ou non). Ceux présentés ici vous permettent d'agir sur vos consommations individuelles. Des modes de tri plus personnalisables seront proposés à l'avenir.\",\"button_close\":\"J'ai compris\",\"accessibility\":{\"window_title\":\"Fenêtre d'information\",\"button_close\":\"Fermer la fenêtre\"}},\"ecogesture_form\":{\"heating_type\":{\"title\":\"Chauffage\",\"question\":\"Quel est votre type de chauffage ?\",\"individual\":\"Individuel\",\"collective\":\"Collectif\"},\"warming_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Bois\",\"4\":\"Fioul\",\"title\":\"Source chauffage\",\"question\":\"Quelle source d’énergie principale utilisez-vous pour votre chauffage ?\"},\"hot_water_type\":{\"title\":\"Eau chaude\",\"question\":\"Quel est votre type de production d’eau chaude ?\",\"individual\":\"Individuelle\",\"collective\":\"Collective\"}},\"ecogesture_profile\":{\"equipments\":{\"question\":\"Quels équipements possédez-vous ?\",\"hint\":\"Plusieurs réponses possibles\",\"air_conditioning\":\"Climatisation\",\"computer\":\"Ordinateur\",\"microwave\":\"Micro-ondes\",\"oven\":\"Four\",\"washing_machine\":\"Lave-linge\",\"dishwasher\":\"Lave-vaisselle\",\"cooking_plates\":\"Plaques électriques\",\"garden\":\"Jardin\",\"dryer\":\"Sèche-linge\",\"refregirator\":\"Réfrigérateur\",\"fan\":\"Ventilateur\",\"water_heater\":\"Chauffe-eau\",\"curtain\":\"Rideaux\",\"internet_box\":\"Box internet\",\"ventilation\":\"VMC\",\"freezer\":\"Congélateur\",\"boiler\":\"Chaudière\",\"hydraulic_heating\":\"Chauffage hydraulique\"}},\"ecogesture_selection\":{\"header\":\"Sélection des astuces\",\"title\":\"Vous avez parcouru un groupe de %{smart_count} astuces\",\"text\":\"Voulez-vous continuer sur votre lancée ou remettre cette sélection à plus tard ?\",\"title_final\":\"Félicitations !\",\"text_final_1\":\"Vous avez terminé la sélection des astuces adaptées à votre consommation.\",\"text_final_2\":\"Vous pouvez les retrouver dans les sections “Objectifs” et “Je fais déjà” selon que vous les pratiquiez déjà ou non.\",\"button_go_to_ecogesture\":\"Plus tard\",\"button_ok\":\"J'ai compris\",\"button_continue\":\"Poursuivre\",\"button_objective\":\"Objectif\",\"button_doing\":\"Je fais déjà\",\"button_skip\":\"Pas intéressé\",\"accessibility\":{\"window_title\":\"Fenêtre d'information'\",\"button_close\":\"Fermer la fenêtre\",\"button_go_to_ecogesture\":\"Retourner aux astuces\",\"button_continue\":\"Poursuivre\",\"button_ok\":\"Fermer la sélection\"},\"selectionModal\":{\"title\":\"Des astuces correspondant à votre profil ont été trouvées !\",\"text\":\"À vous de choisir celles que vous souhaitez mettre en objectif et celles que vous faites déjà.\",\"button_close\":\"C'est parti !\"}},\"exploration\":{\"global_error\":\"Oups. Une erreur est survenue. Veuillez retourner à l'écran d’accueil des défis\",\"button_go_back\":\"Retour\",\"button_already_done\":\"C’est déjà fait !\",\"button_come_back\":\"Je reviens quand cela sera fait\",\"button_start\":\"C'est parti !\",\"watch_consumption\":\"Je fonce\",\"congratulation\":\"Bravo !\",\"earn\":\"Vous remportez\",\"button_confirm\":\"Ok\",\"interval\":{\"explanation\":\"Vous pouvez vérifier cette informations sur l'écran Conso.\"},\"accessibility\":{\"button_already_done\":\"Marquer l'exploration comme déjà réalisée\",\"button_confirm\":\"Valider\",\"button_come_back\":\"Fermer l'exploration\",\"button_go_back\":\"Retour\",\"button_start\":\"Lancer l'exploration\"}},\"error_page\":{\"main\":\"Erreur\",\"back\":\"Retour\",\"no_ecogesture\":\"Oups ! Nous n'avons pas trouvé l'astuce demandée.\"},\"help\":{\"title_help\":\"une question ? un problème ? une suggestion ?\",\"read_help\":\"Nous écrire via le Service d'Assistance Utilisateur\"},\"feedback\":{\"title\":\"Vous allez contacter le Service Assistance Utilisateur du Grand Lyon.\",\"text1\":\"Vous pourrez nous remonter un problème, chercher de l'aide pour vous connecter plus facilement, ou encore nous partager une bonne idée d'évolution.\",\"text2\":\"N'hésitez pas à nous écrire ! L'équipe Ecolyo vous répondra avec plaisir :)\",\"later\":\"Plus tard\",\"lets_go\":\"J'y vais\",\"accessibility\":{\"window_title\":\"Fenêtre de partage de retours\",\"button_close\":\"Fermer la fenêtre de partage de retours\"}},\"dataShare\":{\"title1\":\"Bienvenue !\",\"title1Update\":\"Ecolyo évolue !\",\"title2Update\":\"Pour continuer à utiliser Ecolyo, merci d’accepter les modalités de traitement des données ci-dessous.\",\"part1\":\"Pour le bon fonctionnement du service, nous avons besoin de l’adresse email utilisée lors la création de votre cloud personnel Grand Lyon.\",\"part2\":\"Cette donnée de compte est conservée dans Ecolyo le temps de l’utilisation de ce service.\",\"part3\":\"La Métropole de Lyon utilisera cet email afin de vous tenir informé·e :\",\"item1\":\"En réponse à vos demandes, si vous avez pris l’initiative de nous contacter.\",\"item2\":\"En cas de problème majeur avec la gestion de votre compte.\",\"item3\":\"De l’évolution de vos consommations, des nouveautés et  de la qualité du service via une lettre mensuelle. Vous pouvez à tout moment vous désinscrire de cette lettre via la page Options du service.\",\"part4\":\"Vos données privées de consommation d’énergie et d’eau sont récupérées, sauvegardées et stockées dans votre cloud personnel à votre initiative sans visibilité de la Métropole  de Lyon sur leur contenu.\",\"part5\":\"Il en est de même pour les données privées de composition du logement et du foyer, fournies par vos soins. Elles restent également sans visibilité de la Métropole de Lyon sur leur contenu.\\nLes données d’identification entrées lors de la connexion aux données de consommations d’électricité sont quant à elles conservées dans un espace sécurisé de la Métropole de Lyon et sont utilisées uniquement à des fins de contrôle du consentement par des organismes extérieurs.\",\"part6\":\"Dans le cadre de l’évaluation et de l’amélioration du service, des données d’utilisation anonymisées et pseudonymisées seront remontées à des fins d’exploitation statistiques. La récupération de ces statistiques nous permettra de s’assurer du bon fonctionnement technique de la connexion à vos données de consommation, d’évaluer globalement l’usage de l’application via des mesures d’audience ainsi que d’évaluer à terme l’impact global en termes de baisse des consommations énergétiques de notre service.\",\"part7\":\"Au sein de votre cloud personnel, vous pouvez à tout moment exercer vos droits d’accès, de rectification, de portabilité, de limitation et d’opposition en consultant notamment la page Options.\",\"part8\":\"Vous pouvez également exercer vos droits d’accès, de rectification, de limitation, d’opposition et d’effacement de vos données personnelles en contactant directement le Délégué à la Protection des Données par courrier en écrivant à l’adresse :\",\"part9\":\"Métropole de Lyon – Délégué à la Protection des Données - Direction des Assemblées, des Affaires Juridiques et des Assurances - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 \",\"part10\":\"ou en ligne, au moyen du formulaire disponible à l'adresse suivante : \",\"link1\":\"<a href=\\\"https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/\\\">https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/</a>\",\"validDataConsent\":\"Je consens au traitement de mes données tel que décrit ci-dessus.\",\"validCGU\":\"Je valide les <span class=\\\"action\\\">Conditions Générales d’Utilisation</span> \",\"validLegal\":\" du service et ai pris connaissance des <span class=\\\"action\\\"> Mentions Légales </span> de celui-ci.\",\"button_accept\":\"C'est parti !\",\"accessibility\":{\"button_accept\":\"Accepter les conditions générales d'utilisation\"}},\"minorUpdate\":{\"title\":\"Ecolyo évolue !\",\"button\":\"J'ai compris\"},\"gcu\":{\"title\":\"Conditions générales d’utilisation du service\",\"version\":\"Version du 12.12.2022\",\"content\":{\"title1\":\"Ecolyo, késako ?\",\"part1_1\":\"Ecolyo est un service proposé par la Métropole de Lyon vous permettant de suivre au même endroit vos consommations d’électricité, de gaz et d’eau, en kWh, en litres, en euros et à différentes échelles de temps. Ce service vous permet également de participer à des défis individuels et vous offre une analyse de vos consommations. Des astuces vous sont aussi proposées afin de vous permettre de réduire vos consommations.\",\"part1_2\":\"C’est un service gratuit qui prend la forme d’un site web dit « responsive », c’est-à-dire qu’il peut être consulté sur ordinateur ou sur mobile. Sur mobile, c’est une application que l’on a souhaitée ergonomique, réactive et esthétique pour votre plaisir de navigation et d’utilisation au quotidien.\",\"part1_3\":\"Tous les termes « techniques » sont définis en bas de page.\",\"title2\":\"Quelles fonctionnalités le service propose-t-il ?\",\"part2_1\":\"La fonctionnalité principale d’Ecolyo est la visualisation, au même endroit, de vos consommations d’électricité, de gaz et d’eau et ce, à différents pas de temps (de la demi-heure – uniquement pour l’électricité, à plusieurs années, en passant par les pas de temps journaliers et mensuels). La visualisation des consommations se fait en kWh pour l’énergie et en L pour l’eau ainsi qu’en euros (euros résultant d’un prix moyenné).\",\"part2_2\":\"Au-delà de la visualisation de vos consommations et parce que nous souhaitons vous aider à diminuer ces consommations vous retrouverez plusieurs autres pages : \",\"part2_2_list1\":\"Défis : Des quiz, et actions à mettre en place vous seront proposés pour vous pousser à réduire vos consommations.\",\"part2_2_list2\":\"Astuces : Une liste d’astuces pour maîtriser ses consommations d’énergie et d’eau à trier par usage, et avec une possibilité de les adapter plus précisément à votre profil.\",\"part2_2_list3\":\"Analyse : Une analyse de vos consommations réelles en comparaison à celle d’un foyer étant proche d’une vôtre.\",\"part2_3\":\"Pour la page Analyse ainsi que pour la partie personnalisation des astuces, des éléments supplémentaires sur votre profil vous seront demandés. L’ensemble de ces informations récoltées à l’aide du formulaire peuvent être modifiées par la suite.\",\"part2_4\":\"Dernière page : la page Options dans laquelle vous pourrez vous abonner à un service d’alerte sur vos consommations d’eau, de quoi ajuster votre profil ou encore vous désabonner de la lettre mensuelle.\",\"title3\":\"Comment ai-je accès à mes données d’électricité, de gaz et d’eau ?\",\"part3_1\":\"Pour visualiser vos consommations réelles et profiter pleinement du potentiel de notre service, il vous faut au minimum un des trois compteurs communicants suivants : Linky (pour l’électricité), Gazpar (pour le gaz), Téléo (pour l’eau).\",\"part3_2\":\"Ces compteurs sont opérés par les gestionnaires de réseaux. Pour Linky, c’est Enedis, le gestionnaire de réseau de distribution d’électricité. Pour Gazpar, GRDF est responsable de cette gestion. Et pour Téléo, c’est Eau Publique du Grand Lyon.\",\"part3_3\":\"Ces acteurs sont responsables de la relève de vos données. Ces données servent notamment à votre fournisseur d’électricité, de gaz ou d’eau pour permettre la facturation de vos consommations d’énergie. Des fournisseurs d’électricité ou de gaz il y en a des dizaines. Les gestionnaires de réseaux (… et de votre compteur) ne sont qu’au nombre de trois. Nous avons donc décidé de travailler avec eux, au plus près de la donnée brute issue de vos compteurs.\",\"part3_4\":\"Il vous faudra donc avoir un compte chez GRDF et Eau Publique du Grand Lyon pour accéder à vos données. Si vous n’en avez pas, il suffira de vous en créer un. Ceci ne sera à faire qu’une fois, au début.\",\"title4\":\"Ecolyo se trouve dans un cloud personnel Grand Lyon, qu’est-ce que cela signifie ?\",\"part4_1\":\"Comme vous avez dû le remarquer, lors de votre première connexion à Ecolyo vous avez dû vous créer un compte Cloud Personnel Grand Lyon. Ce cloud personnel est un espace sécurisé porté par l’ambition de vous apporter visibilité, transparence et maîtrise sur l’usage de vos données personnelles, et dont les fonctionnalités vous permettant de récupérer, synchroniser, stocker et partager vos données avec les destinataires de votre choix.  Le service Ecolyo se déploie  à l’intérieur de cet espace protégé. Dans ce cloud personnel, vous pourrez accéder également à d’autres services. Toutes les données traitées par Ecolyo, mais aussi les autres services que vous seriez amenés à utiliser dans ce cloud personnel restent dans ce Cloud Personnel Grand Lyon et n’en sortent pas, sauf si vous décidez vous-même de partager vos données avec des tiers.\",\"part4_2\":\"Pour en savoir plus sur ce cloud et son utilisation, ainsi que la durée de conservation de vos données, vous pouvez lire les conditions générales d’utilisation du service <a href=\\\"https://manager.cozygrandlyon.cloud/tos/266b4226-8417-42fb-b911-41e86dae8581.pdf?locale=fr\\\">ici</a>.\",\"title5\":\"Et donc concrètement pour Ecolyo, quelles données sont collectées et qui y a accès ?\",\"part5_1\":\"Pour qu’Ecolyo ait accès à vos données de consommations, vous devrez activer vos différents connecteurs. À ce moment-là, pour la connexion aux données de gaz et d’eau à travers un parcours qui vous conduira de manière intuitive sur le site de chacun des gestionnaires de réseaux concerné, vous pourrez donner votre consentement à partager ces données avec le Service Ecolyo, et ce pour une durée limitée dans le temps. Pour l’électricité, le don du consentement et la connexion aux données se fait directement dans notre service. Quid de la durée de ce consentement ? Pour les données électriques, elle est par défaut d'un an. Pour les données gaz, cela sera à vous de la définir (nous vous recommandons 1 an pour une expérience optimale). Les données utilisées pour vérifier la bonne connexion de vos données d’électricité sont stockées du côté de la Métropole de Lyon sur des serveurs sécurisés.\",\"part5_2\":\"Vos connecteurs, une fois configurés, permettent le transfert de vos données de consommations au service Ecolyo. Le transfert de ces données de consommation se fait sans que personne n’accède à leur contenu, pas même la Métropole de Lyon. En effet, ces données sont stockées et traitées directement dans votre cloud personnel qui en assure la protection. Tous les calculs, analyses et traitements sur ces données sont faites DANS votre espace personnel sans visibilité sur le contenu des données par la Métropole de Lyon.\",\"part5_3\":\"Vous pouvez bien sûr mettre fin à la récupération/ au transfert de vos données de consommation sur votre espace cloud personnel à tout moment et  à plusieurs niveaux : \",\"part5_3_list1\":\"Vous pouvez supprimer le transfert quotidien de vos données en supprimant tout simplement le connecteur dans la page Consos (en bas).\",\"part5_3_list2\":\"Pour supprimer l’ensemble de vos données ainsi que votre espace personnel Grand Lyon, vous devez demander la suppression de votre cloud. Pour faire cela, rendez-vous dans les paramètres de votre cloud personnel via la barre blanche en haut d’Ecolyo et appuyez sur le bouton « Supprimer mon compte » dans la partie paramètres.\",\"part5_4\":\"Des données sur le profil de votre foyer peuvent être également remplies au sein de l’application. Ces données s’enrichiront au fur et à mesure de votre utilisation du service avec d’autres informations : défis réalisés, étoiles gagnées, etc. L’ensemble de ces données restent à l’intérieur de votre cloud personnel, sans que personne n’y ait accès.\",\"part5_5\":\"Enfin, afin de permettre une mise à jour quotidienne de vos données de consommations, vos identifiants Eau Publique du Grand Lyon, un jeton d’identification GRDF ainsi que vos numéros de compteurs sont stockés.\",\"title6\":\"Personne n’a donc accès à mes données, pas même la Métropole de Lyon, vraiment ?\",\"part6_1\":\"Conformément aux indications du paragraphe précédent, la Métropole de Lyon n’accède ni à vos données de consommations ni aux données utilisées via certaines fonctionnalités du service comme le formulaire (celui-là même qui permet l’analyse de vos consommations personnalisée ainsi qu’une sélection d’éco-gestes personnalisés). Toutes ces informations sont bien gardées au chaud dans votre cloud personnel Grand Lyon.\",\"part6_2\":\"Seul vous pouvez accepter de partager vos données, documents ou fichiers privés avec la Métropole de Lyon, ses partenaires ou d’autres utilisateurs ou acteurs (publics ou privés) après recueil de votre consentement éclairé et par une action expresse de votre part.\",\"part6_3\":\"La Métropole de Lyon n'a cependant accès qu’à l’adresse email utilisée lors la création de votre cloud personnel Grand Lyon. Elle utilise cet email afin de vous tenir informé·e :\",\"part6_3_list1\":\"En réponse à vos demandes, si vous avez pris l’initiative de nous contacter. \",\"part6_3_list2\":\"En cas de problème majeur avec la gestion de votre compte.\",\"part6_3_list3\":\"De l’évolution de vos consommations, des nouveautés et  de la qualité du service via une lettre mensuelle. Vous pouvez à tout moment vous désinscrire de cette lettre via la page Options du service.\",\"part6_4\":\"Elle stocke également les informations transmises lors de la connexion à l’électricité (nom, adresse postale). Ces informations doivent être stockées car la Métropole de Lyon est régulièrement contrôlée par Enedis et doit prouver détenir le consentement des personnes pour lesquelles elle va chercher la donnée.\",\"part6_5\":\"Par ailleurs, et dans le cadre de l’évaluation et de l’amélioration du service, des données d’utilisation anonymisées seront remontées à des fins d’exploitation statistiques. La récupération de ces statistiques anonymisées nous permettra de s’assurer du bon fonctionnement technique de la connexion à vos données de consommation ainsi que d’évaluer l’impact global en termes de baisse des consommations énergétiques de notre service. Parmi ces statistiques, des mesures d’audience de la fréquentation des différentes pages du service sont réalisées. Vous pouvez, via la page Options, à tout instant, décider de vous opposer à la récupération de ces données d’utilisation.\",\"title8\":\"Encore des questions ?\",\"part8_1\":\"N’hésitez pas à consulter la FAQ ou à nous contacter via le formulaire de contact présente sur l’ensemble des pages.\",\"part8_2\":\"Dernière option, contactez-nous directement à <a href=\\\"mailto:ecolyo@grandlyon.com\\\">ecolyo(at)grandlyon.com</a>.\",\"title9\":\"LEXIQUE\",\"part9_1_title\":\"Cloud personnel Grand Lyon : \",\"part9_1_content\":\"Cloud personnel : appelé aussi le « domicile numérique », le cloud personnel est souvent réduit à un simple espace de stockage de documents mais il est bien plus que ça. C'est un espace individuel et sécurisé où vous pouvez accéder à des services sans exposer aucune donnée à l’extérieur. Vous seul pouvez y accéder, personne d'autre.\",\"part9_2_title\":\"Connecteur : \",\"part9_2_content\":\"Un connecteur est un service, installé dans votre cloud personnel également, qui a pour but uniquement d’aller récupérer les données auprès de différents partenaires/sources de données. Dans le cadre d’Ecolyo, trois connecteurs sont pré-installés dans votre cloud personnel : celui d’Enedis, celui de GRDF et celui d’Eau Publique du Grand Lyon.\",\"part9_3_title\":\"Compteur communicant : \",\"part9_3_content\":\"Un compteur communicant est un compteur qui mesure de manière précise et détaillée vos consommations et peut transmettre ces données  au gestionnaire de réseau via une technologie radio (c'est le cas pour Gazpar et Téléo par exemple) ou via les réseaux électriques (via Courant Porteur en ligne, c'est le cas pour Linky par exemple).\",\"part9_4_title\":\"Fournisseur : \",\"part9_4_content\":\"Votre fournisseur d’électricité, de gaz ou d’eau est l’entreprise qui vous facture votre électricité, gaz ou eau. Côté électricité il en existe <a href=\\\"https://www.enedis.fr/liste-des-fournisseurs-delectricite\\\">aujourd’hui plus de 50</a>, chacun proposant des tarifs différents.\",\"part9_5_title\":\"Gestionnaire de réseau de distribution : \",\"part9_5_content\":\"Appelé aussi parfois distributeur, il est en charge de la livraison de votre électricité, gaz ou eau jusqu’à votre domicile. Il est aussi en charge du compteur qui relève vos consommations. Il transmet vos données de consommations à votre fournisseur afin qu’il effectue la facturation de vos consommations d’énergie. Il peut également les transmettre à tout acteur avec qui vous avez décidé de partager ces données.\"}},\"gcu_modal\":{\"button_accept\":\"J'accepte\",\"accessibility\":{\"window_title\":\"Conditions générales d’utilisation\",\"button_accept\":\"Accepter les conditions générales d'utilisation\"}},\"matomo\":{\"matomo_title\":\"Suivi statistiques d'usage Matomo\"},\"header\":{\"accessibility\":{\"button_back\":\"Retour à la page précédente\",\"button_open_feedbacks\":\"Ouvrir le partage de retours\"}},\"konnector_form\":{\"label_updated_at\":\"Dernière mise-à-jour le\",\"button_update\":\"Mettre à jour\",\"loading\":\"Chargement...\",\"wait_end_issue\":\"Attendre la fin de la maintenance avant de mettre à jour.\",\"button_delete\":\"Supprimer\",\"issue\":\"Le problème semble venir de \",\"resolve\":\"Une mise à jour peut résoudre ce problème.\",\"login_failed\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"not_installed\":\"Le connecteur n'est pas installé. Veuillez l'installer en cliquant sur le bouton ci-dessous.\",\"button_install\":\"Installer\",\"error_account_creation\":\"Une erreur est survenue, veuillez essayer de nouveau.\",\"error_no_login_password\":\"Identifiant et mot de passe requis\",\"error_login_failed\":\"Identifiants invalides\",\"error_update\":\"Un problème est survenu lors du rapatriement de vos données.\",\"error_update_oauth\":\"Votre autorisation pour afficher vos données %{fluid} a expiré.\",\"error_consent_form_gas\":\"Vos données ne peuvent être récupérées car vous n'avez pas coché l'autorisation d'accès aux données informatives lors de votre partage de consentement.\",\"button_oauth_reload\":\"Redonner mon consentement\",\"OK\":\"Ok\",\"konnector_delta\":{\"ELECTRICITY\":\"La donnée de consommation électrique arrive normalement à J+1. Un retard d'un ou deux jours est parfois constaté.\",\"GAS\":\"La donnée de consommation de gaz arrive normalement à J+3. Un retard d'un ou deux jours est parfois constaté.\",\"WATER\":\"La donnée de consommation d'eau arrive normalement à J+3. Un retard d'un ou deux jours est parfois constaté.\"},\"accessibility\":{\"button_install\":\"Installer le connecteur\",\"button_update\":\"Mettre à jour votre connexion\",\"button_delete\":\"Supprimer votre connexion\"}},\"konnector_options\":{\"label_connect_to_electricity\":\"Se connecter à l'électricité\",\"label_connect_to_water\":\"Se connecter à l'eau\",\"label_connect_to_gas\":\"Se connecter au gaz\",\"label_offline_electricity\":\"Électricité déconnectée\",\"label_offline_water\":\"Eau déconnectée\",\"label_offline_gas\":\"Gaz déconnecté\",\"partner_issue\":\"En maintenance\",\"outdated\":\"Données manquantes depuis %{isOutdatedData} jours\",\"accessibility\":{\"label_ko_status\":\"Connecteur en erreur\",\"button_toggle_detail_electricity\":\"Afficher ou masquer le détail de la connexion à l'électricité\",\"button_toggle_detail_water\":\"Afficher ou masquer le détail de la connexion à l'eau\",\"button_toggle_detail_gas\":\"Afficher ou masquer le détail de la connexion au gaz\"}},\"konnector_modal\":{\"loading_data\":\"Veuillez patienter, vos données sont en cours de chargement.\",\"loading_data_update\":\"Veuillez patienter, vos données sont en cours de mise à jour.\",\"logging_txt\":\"Nous vérifions vos informations d'identité\",\"success_txt\":\"Félicitations !\",\"success_data_electricity\":\"Vos données de consommation d'électricité sont maintenant connectées à Ecolyo.\",\"success_data_water\":\"Vos données de consommation d'eau sont maintenant connectées à Ecolyo.\",\"success_data_gas\":\"Vos données de consommation de gaz sont maintenant connectées à Ecolyo.\",\"success_data_additional_electricity\":\"Les données de consommations mettent entre un et deux jours pour arriver.\",\"success_data_additional_water\":\"Les données de consommations mettent entre trois et cinq jours pour arriver.\",\"success_data_additional_gas\":\"Les données de consommations mettent entre trois et cinq jours pour arriver.\",\"success_update_txt\":\"Connexion réussie !\",\"success_data_update_electricity\":\"Ecolyo est bien connecté à votre compteur d'électricité.\",\"success_data_update_water\":\"Ecolyo est bien connecté à votre compteur d'eau.\",\"success_data_update_gas\":\"Ecolyo est bien connecté à votre compteur de gaz.\",\"success_data_additional_update_electricity\":\"Sachez que la donnée de consommation d'électricité arrive entre J+1 et J+2.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"success_data_additional_update_water\":\"Sachez que la donnée de consommation d'eau arrive entre J+3 et J+5.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"success_data_additional_update_gas\":\"Sachez que la donnée de consommation de gaz arrive entre J+3 et J+5.<br /><br />S'il vous manque encore des données, c'est qu'elles n'ont pas encore été mises à disposition par le gestionnaire de votre compteur. Merci pour votre patience !\",\"error_txt\":\"Aïe !\",\"mismatch\":{\"title\":\"Vos données n'ont pas pu être récupérées.\",\"text1\":\"Vos nom et numéro de compteur ne correspondent plus. Merci de reconfigurer votre connecteur.\",\"text2\":\"Reconfigurer mon connecteur ?\",\"text3\":\"La reconfiguration de votre connecteur passe par sa suppression et sa nouvelle installation. Vos données seront conservées.\"},\"error_data_electricity\":\"Un problème est survenu. Vos données de consommation d’électricité ne seront pas chargées.\",\"error_data_water\":\"Un problème est survenu. Vos données de consommation d’eau ne seront pas chargées.\",\"error_credentials_water\":\"Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter. L'identifiant est un numéro à 7 chiffres (différent de votre numéro de contrat).\",\"error_credentials_electricity\":\"Il semblerait que les nom(s) et adresse ne concordent pas avec le numéro de votre compteur.\",\"error_credentials_electricity_2\":\"Nous ne pouvons vous donner accès aux données de consommation.\",\"error_credentials_update_water\":\"Une erreur s'est glissée dans vos identifiants de connexion. Veuillez vérifier ces éléments et tenter de vous reconnecter.\",\"error_credentials_update_electricity\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"error_credentials_update_gas\":\"Un problème a lieu lors de la récupération de vos données. Merci de supprimer votre connecteur et vous reconnecter.\",\"error_data_gas\":\"Un problème est survenu. Vos données de consommation de gaz ne seront pas chargées.\",\"error_consent_form_gas_title\":\"Nous n'avons pas pu connecter vos données de consommation de gaz à Ecolyo.\",\"error_consent_form_gas_content\":\"En effet, le partage de vos données de consommation de gaz \\\"informatives\\\" doit être accepté.\",\"error_consent_form_gas_content_2\":\"Merci de cocher \\\"OUI\\\" au partage de vos données de consommation de gaz, et à \\\"Autoriser l'accès à mes données informatives\\\".\",\"error_data_update_electricity\":\"Un problème est survenu. Vos données de consommation d’électricité n’ont pas été mises à jour.\",\"error_data_update_water\":\"Un problème est survenu. Vos données de consommation d’eau n’ont pas été mises à jour.\",\"error_data_update_gas\":\"Un problème est survenu. Vos données de consommation de gaz n’ont pas été mises à jour.\",\"error_data_2\":\"Merci de réessayer plus tard.\",\"button_validate\":\"Ok\",\"button_understood\":\"J'ai compris\",\"button_try_again\":\"Réessayer\",\"show_common_error\":\"Voir les erreurs récurrentes\",\"show_common_error_list\":\"<span style=\\\"text-align:left; font-weight:700;\\\">Le problème peut provenir des cas suivants :</span> <ul style=\\\"text-align:left;\\\"><li>Vous avez un co-titulaire sur votre contrat. Veillez à bien entrer le nom du <span style=\\\"color:#E3B82A; font-weight:700;\\\">titulaire du contrat</span> et non le co-titulaire.</li><li>  Votre nom comporte un tiret ? Tentez sans le tiret.</li><li>  Entrez bien le nom de votre commune de résidence en entier (tirets et accents inclus)</li><li>  Avez-vous bien entré le <span style=\\\"color:#E3B82A; font-weight:700;\\\">numéro de votre compteur</span> (PDL) ? Tout autre numéro (de contrat, de client) ne fonctionne pas.</li></ul><p style=\\\"text-align:center; font-style: italic; font-weight:400; font-size: 0.9rem;\\\">Si vous rencontrez toujours des difficultés, contactez notre service d'aide </p><div style=\\\"text-align:center; font-weight:700;\\\">Avez-vous pensez à vérifier ces informations ?</div>\",\"accessibility\":{\"window_title\":\"Fenêtre d'attente de connexion\",\"button_close\":\"Fermer la fenêtre\"}},\"consent_outdated\":{\"title\":{\"0\":\"Votre autorisation pour afficher vos données d’électricité a expiré\",\"2\":\"Votre autorisation pour afficher vos données de gaz a expiré\"},\"text1\":{\"0\":\"Veuillez re-donner votre consentement pour la transmission et la reconnexion de vos données ENEDIS à Ecolyo.\",\"2\":\"Veuillez re-donner votre accord pour que GRDF nous transmette vos données de consommation.\"},\"text2\":{\"0\":\"Souhaitez-vous renouveler votre accord dès maintenant pour un an ?\",\"2\":\"Voulez-vous  donner votre accord sur votre compte GRDF maintenant ?\"},\"later\":\"Plus tard\",\"go\":\"J'y vais\",\"no\":\"Non\",\"yes\":\"Oui\"},\"delete_grdf_modal\":{\"text1\":\"La suppression de la connexion avec GRDF s’accompagne de la suppression de votre consentement à partager vos données gaz avec Ecolyo.\",\"text2\":\"Si vous souhaitez vous reconnecter, il vous faudra re-donner votre accord pour que GRDF nous transmette vos données de consommation.\",\"text3\":\"Voulez-vous  supprimer votre connexion et votre consentement à GRDF ?\",\"cancel\":\"Plus tard\",\"go\":\"Oui\"},\"legal\":{\"read_legal\":\"Lire les mentions légales\",\"title_legal\":\"Mentions légales & CGU\",\"version\":\"Version du 12.12.2022\",\"site\":\"Site du service Ecolyo : <a href=\\\"https://ecolyo.com/\\\"> https://ecolyo.com/</a>\",\"adress\":\"Métropole de Lyon - 20, rue du Lac – CS 33569 - 69505 Lyon cedex 03\",\"phone\":\"Tél : (33) 4 78 63 40 40\",\"mail\":\"<a href=\\\"mailto:ecolyo@grandlyon.com\\\"> ecolyo(at)grandlyon.com</a>\",\"p1b\":\"Directrice de publication : \",\"p1\":\"Blandine MELAY, Responsable du Service Transition Énergétique\",\"p2b\":\"Animation éditoriale, gestion et mise à jour : \",\"p2\":\"Marion BERTHOLON,  Chargée de services numériques pour la transition énergétique\",\"p3b\":\"Photographies : \",\"p3\":\"sauf mention contraire, les photos sont la propriété de la Métropole de Lyon\",\"p4b\":\"Conception et Charte graphique : \",\"p4\":\"Florent Dufier\",\"p5b\":\"Réalisation technique : \",\"p5\":\"Métropole de Lyon, Sopra Steria\",\"p6b\":\"Maintenance technique : \",\"p6\":\"Délégation Développement économique, emploi & savoirs - Innovation numérique & systèmes d’information - Usages et services numériques - Développement des services numériques\",\"title1\":\"Crédits\",\"part1\":\"Ce site est le résultat de développements spécifiques réalisés dans les langages Go, TypeScript, HTML et Sass. Les développements s’appuient sur plusieurs bibliothèques et frameworks libres : axios, cozy-bar, cozy-client, cozy-harvest-lib, cozy-scripts, cozy-ui, d3, detect-browser, global, lodash, luxon, moment, moment-timezone, node-sass, object-hash, react, react-dom, react-redux, react-router-dom, react-swipeable-views, redux-devtools-extension, sass-loader. Les tests de l’application s’appuient sur les bibliothèques et frameworks libres suivants: enzyme, enzyme-adapter-react-16, jest-junit, react-test-renderer, redux-mock-store. La pile technique intègre également les applications Cozy stack, Yarn, Docker, ACH. Les déploiements sont réalisés sur le registre hébergé chez Cozy. L’équipe de réalisation utilise au quotidien les applications GitLab, IceScrum, RocketChat, SonarQube.\",\"title2\":\"Traitement des données personnelles et droit d’accès, de modification et de suppression\",\"part2\":\"Conformément à la réglementation en vigueur en matière de protection des données personnelles, le service Ecolyo a fait l’objet d’une inscription au registre des traitements de la Métropole de Lyon. Ecolyo fait partie de l’écosystème de services orientés « self data » déployés par la Métropole de Lyon avec l’ambition d’offrir aux usagers métropolitains les outils et les services leur permettant d’exercer directement leur droit à la portabilité, dans un cadre apte à garantir aussi bien la transparence et le contrôle sur l’usage de leurs données personnelles que l’exploitation directe du contenu de ces données selon leurs libres choix. Le self data est en effet selon la Fondation Internet Nouvelle Génération (FING) « la production, l’exploitation et le partage de données personnelles par les individus, sous leur contrôle et à leurs propres fins ». Au sein de cet environnement self data, la gestion des données s’appuie sur l’organisation suivante des rôles et responsabilités associées : \",\"part2-1\":\"Les partenaires du service GRDF et Eau Publique du Grand Lyon sont responsables exclusivement des seuls traitements de Données Personnelles relatifs à la collecte des données de consommation de gaz et d’eau de l’utilisateur et à leur transmission sur la plateforme de cloud personnel, après consentement de l’utilisateur.\",\"part2-2\":\"Enedis est responsable de la collecte des données de consommation d’électricité et de leur mise à disposition à la Métropole de Lyon qui, elle en gère la transmission sur la plateforme du cloud personnel de l’utilisateur, après avoir récupéré le consentement de l’utilisateur.\",\"part2-3\":\"La Métropole de Lyon est responsable de traitement sur le périmètre du service Ecolyo qu’elle propose à l’usager, ainsi que des traitements nécessaires à la fourniture de la plateforme de cloud personnel qu’elle met à disposition de l’usager pour accéder au service Ecolyo. En sa qualité de responsable de ces traitements, elle collecte et traite : \",\"part2-3-1\":\"Les données de compte de l’usager renseignées par l’usager au sein de son espace de cloud personnel Grand Lyon à des fins de gestion du compte et de communication avec l’usager ;\",\"part2-3-2\":\"Les données de compte de l’utilisateur lui permettant de connecter ses données d’électricité à Ecolyo ;\",\"part2-3-3\":\"Les données privées de consommation d’énergie et d’eau dont la récupération, la sauvegarde, le stockage, la synchronisation et le partage sur la plateforme de cloud personnel sont initiés par l’usager sans visibilité de la Métropole de Lyon sur leur contenu.\",\"part2-3-4\":\"Les données privées sur la composition du logement et du foyer de l’utilisateur, fournies par l’utilisateur lui-même au sein du service, sont traitées par le service sans visibilité de la Métropole de Lyon sur leur contenu.\",\"part2-3-5\":\"Des métriques d’usage du service anonymisées et remontées périodiquement afin d’améliorer la qualité du service et d’évaluer son impact (Plus d’informations sur la manière dont votre anonymat est bien préservé dans ce processus <a href=\\\"https://ecolyo.com/cloud_statistiques.html\\\">ici</a>).\",\"part2-4\":\"La Métropole réalise également des mesures d’audience à l’aide de la solution Matomo. Afin de vous fournir un meilleur service et d’améliorer votre expérience d'utilisateur, nous utilisons des solutions de mesure d’audience qui utilisent la technologie des « cookies », des fichiers texte qui sont enregistrés sur votre ordinateur et qui permettent de générer des informations envoyées aux serveurs de mesure d’audience. Sur ces serveurs, l’adresse IP est anonymisée. Les données recueillies ont uniquement pour finalité de permettre d'analyser la fréquentation de nos pages afin d'en améliorer le contenu. Il s'agit de statistiques agrégées permettant de connaître le nombre de visites et de visiteurs différents, les pages les plus populaires, les chemins préférés, les niveaux d'activité par jour de la semaine et par heure de la journée, les principales erreurs etc. Vous avez cependant le droit de vous opposer à l’utilisation de ces cookies, et donc au traitement de vos données personnelles de navigation, en vous rendant dans la page Options de notre service.\",\"part2-5\":\"L’usager est seul décisionnaire des finalités d’utilisation qu’il souhaite définir pour le traitement de ses données personnelles de consommation, à la suite de leur transmission par les partenaires du service Ecolyo sur son cloud personnel. Ainsi, dans le cadre de l’utilisation d’Ecolyo, l’usager ne recevra les données des partenaires du service : Enedis, GRDF et Eau Publique du Grand Lyon seulement qu’à sa demande expresse après la saisie de ses identifiants.\",\"part2-6\":\"L’utilisateur est donc le seul à accéder :\",\"part2-6-1\":\"À ses données de consommation d’électricité horaires, journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-6-2\":\"À ses données de consommation de gaz journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-6-3\":\"À ses données de consommation eau journalières, hebdomadaires, mensuelles et annuelles.\",\"part2-7\":\"Les engagements et responsabilités de la Métropole de Lyon concernant la protection des données et la confidentialité des données Ecolyo sont précisés dans les Mentions légales et les conditions d’utilisation du cloud personnel Grand Lyon qui accueille aujourd’hui le service Ecolyo et sans lequel le service ne peut pas fonctionner. Pour plus d’informations sur les engagements et responsabilités de la Métropole de Lyon concernant la protection et la confidentialité dans le cloud personnel, nous vous invitons à vous référer <a href=\\\"https://manager.cozygrandlyon.cloud/tos/266b4226-8417-42fb-b911-41e86dae8581.pdf?locale=fr\\\">aux mentions légales et CGU du cloud personnel métropolitain.</a> \",\"part2-8\":\"Conformément à la loi 78-17 du 6 janvier 1978 modifiée relative à l’information, aux fichiers et aux libertés, vous disposez d’un droit d’accès, de rectification et d’opposition au traitement de vos données à caractère personnel. Votre cloud personnel vous permet d’exercer ces droits directement dans cet espace sur vos données de compte. S’agissant des données de consommations d’électricité et de gaz, l’utilisateur peut supprimer son consentement à partager ses données en supprimant son connecteur dans la page Consos.\",\"part2-9\":\"Vous pouvez également exercer vos droits d’accès, de rectification, de limitation, d’opposition et d’effacement de vos données personnelles en contactant directement le Délégué à la Protection des Données par courrier en écrivant à l’adresse :\",\"part2-10\":\"Métropole de Lyon – Délégué à la Protection des Données - Direction des Assemblées, des Affaires Juridiques et des Assurances - 20, rue du Lac - BP 33569 - 69505 Lyon Cedex 03 ou en ligne, au moyen du formulaire disponible à l'adresse suivante : <a href=\\\"https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/\\\">https://demarches.toodego.com/sve/proteger-mes-donnees-personnelles/.</a>\",\"part2-11\":\"L’exercice de ces droits sur vos données personnelles auprès de la Métropole de Lyon concerne exclusivement les données traitées dans le cadre du service  « Ecolyo ».\",\"title3\":\"Dispositions légales\",\"part3-1\":\"Les divers éléments du site web (la forme, la mise en page, le fonds, la structure …) sont protégés par le droit des dessins et modèles, le droit d’auteur, le droit des marques ainsi que le droit à l’image et ils ne peuvent être copiés ou imités en tout ou partie sauf autorisation expresse de la Métropole de Lyon.\",\"part3-2\":\"Toute personne ne respectant pas les dispositions légales applicables se rend coupable du délit de contrefaçon et est passible des sanctions pénales prévues par la loi.\",\"title4\":\"Droits d’auteurs\",\"part4-1\":\"Les photographies, textes, logos, pictogrammes, ainsi que toutes œuvres intégrées dans le site sont la propriété de la \\\"Métropole de Lyon\\\" ou de tiers ayant autorisé la \\\"Métropole de Lyon\\\" à les utiliser.\",\"part4-2\":\"Les reproductions, les transmissions, les modifications, les réutilisations, sur un support papier ou informatique, dudit site et des œuvres qui y sont reproduites ne sont autorisées que pour un usage personnel et privé conforme aux dispositions de l’article L 122-5 du Code de la Propriété Intellectuelle. Ces reproductions devront ainsi notamment indiquer clairement la source et l’auteur du site et/ou de ces œuvres multimédias. En aucun cas ces reproductions ne sauraient porter préjudice aux droits des tiers. Les reproductions, les transmissions, les modifications, les réutilisations à des fins publicitaires, commerciales ou d’information, de tout ou partie du site, sont totalement interdites.\",\"title5\":\"Logo de la Métropole de Lyon et d’Ecolyo\",\"part5\":\"Les logos de la Métropole de Lyon et d’Ecolyo ne peuvent pas être modifiés – proportions, couleurs, éléments, constituants – et ne peuvent pas être sujet à aucune transformation, animation ou tout autre processus. Les logos de la Métropole de Lyon et d’Ecolyo ne peuvent être utilisés et associés qu’aux seules informations vérifiables. Ils ne peuvent être notamment utilisés que pour illustrer des relations avec la Métropole de Lyon ou des actions de sponsorings dûment établies. Quel que soit le cas d’espèce, la Métropole de Lyon se réserve le droit d’approuver ou de désapprouver toute utilisation des logos de la Métropole de Lyon et d’Ecolyo, pour assurer son utilisation correcte, conformément à l’éthique, la morale et aux intérêts de la Métropole de Lyon. Les conditions susmentionnées s’appliquent dans le cadre de pages web, elles ne font pas référence à l’utilisation des logos dans tout autre document. La Métropole de Lyon se réserve le droit de modifier les conditions d’utilisation des logos de la Métropole de Lyon et d’Ecolyo à tout moment et sans préavis.\",\"title6\":\"Droit des bases de données\",\"part6\":\"Les bases de données sont protégées par la loi du 1er juillet 1998 et le régime français du droit d’auteur.\",\"title7\":\"Établissements de liens vers le site Ecolyo\",\"part7-1\":\"La Métropole de Lyon autorise la mise en place d’un lien hypertexte vers son service Ecolyo pour tous les sites internet, à l’exclusion de ceux diffusant des informations à caractère polémique, pornographique, xénophobe ou pouvant, dans une plus large mesure porter atteinte à la sensibilité du plus grand nombre.\",\"part7-2\":\"Le lien doit aboutir à la page d’accueil du service (<a href=\\\"https://ecolyo.com\\\">https://ecolyo.com</a>), cette page devant apparaître dans une nouvelle fenêtre. Les pages du service Ecolyo ne doivent en aucun cas être intégrées à l’intérieur des pages d’un autre site (iframe).\",\"part7-3\":\"Dans tous les cas d’espèce, La Métropole de Lyon se réserve le droit de demander la suppression d’un lien si elle estime que le site cible ne respecte pas les règles ainsi définies.\",\"title8\":\"Liens vers des sites tiers depuis le site Ecolyo\",\"part8\":\"Les liens hypertextes mis en œuvre au sein du site en direction d’autres sites et/ou de pages personnelles et d’une manière générale vers toutes ressources existantes sur internet ne sauraient engager la responsabilité de la Métropole de Lyon quant aux liens qu’ils contiennent ou aux changements ou mises à jour qui leur sont apportés.\",\"title9\":\"Mise en garde générale\",\"part9-1\":\"Nos services mettent tout en œuvre pour offrir aux visiteurs de ce site web des informations fiables et vérifiées. Cependant, malgré tous les soins apportés, le site peut comporter des inexactitudes, des défauts de mise à jour ou des erreurs.\",\"part9-2\":\"Nous remercions les utilisateurs du site de nous faire part d’éventuelles omissions, erreurs ou corrections par mail sur la boite aux lettres du webmestre ou directement via le formulaire proposé dans le service.\",\"accessibility\":{\"button_close\":\"Fermer la fenêtre\"}},\"oauth\":{\"window\":{\"title\":\"OAuth\"}},\"onboarding\":{\"welcomeModal\":{\"title\":\"Vous êtes à mi-chemin !\",\"part1\":\"Votre cloud personnel a bien été créé.\",\"part2\":\"Il vous faut maintenant donner votre accord pour connecter vos compteurs au service.\",\"button_valid\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre de bienvenue\",\"button_valid\":\"Valider\"}}},\"old_fluid_data_modal\":{\"errorTxt\":\"Aïe !\",\"oldData\":\"Vos données semblent anciennes\",\"verify\":\"Veuillez vérifier l’état de vos connecteurs : \",\"problem\":\"Vos connecteurs semblent bien connectés, il se peut qu’il y ait un problème au niveau du ou des fournisseurs de données :\",\"problem_electricity\":\"pour l'électricité.\",\"problem_water\":\"pour l'eau.\",\"problem_gas\":\"pour le gaz.\",\"contact\":\"Veuillez prendre contact directement avec eux.\",\"accessButton\":\"Accéder aux connecteurs\",\"later\":\"Plus tard\",\"ok\":\"Ok\",\"accessibility\":{\"window_title\":\"Fenêtre d'information\",\"button_ok\":\"Fermer la fenêtre\",\"button_later\":\"Fermer la fenêtre\",\"button_goto_konnector\":\"Aller aux connecteurs\"}},\"performance_indicator\":{\"bilan\":{\"text1\":\"Par rapport à \",\"text2\":\"soit une différence de : \"},\"error_no_compare\":\"comparaison impossible\",\"error_no_compare_reason\":\"(manque de données)\",\"error_no_compare_no_data\":\"Vos consommations pour cette période sont incomplètes à cause d’un problème technique concernant :\",\"fpi\":{\"no_data\":\"Données non disponibles\",\"no_comparison\":\"Pas de comparaison possible\"}},\"profile\":{\"report\":{\"title_alert\":\"Alerte Consommation Excessive d'Eau\",\"title_bilan\":\"Notification par mail\",\"switch_label_bilan\":\"Je reçois la lettre mensuelle contenant un bilan et des conseils sur ma consommation.\",\"switch_label_alert\":\"Être prévenu d’un dépassement anormal de ma consommation d’eau\",\"input_label_alert\":\"Si ma consommation d’eau quotidienne dépasse :\",\"input_label_subtext_alert\":\"Votre consommation quotidienne maximum sur les 6 derniers mois : \",\"activate\":\"Activer\",\"deactivate\":\"Désactiver\"},\"accessibility\":{\"button_toggle_mail_report\":\"Recevoir mon bilan mensuel par mail\",\"button_toggle_consumption_alert\":\"Recevoir des alertes sur mes consommations journalières\",\"input_water_alert_report\":\"Indiquer une limite de consommation d'eau journalière\"}},\"profile_type\":{\"title_profile\":\"Mes données\",\"read_profile\":\"Ajuster mon profil\",\"button_update_profile\":\"J'ajuste mon profil\",\"your_profile\":\"Mon profil\",\"multi_choices\":\"Plusieurs réponses possibles\",\"housing_type\":{\"title\":\"Logement\",\"question\":\"De quel type de logement disposez-vous ?\",\"individual_house\":\"Maison individuelle\",\"apartment\":\"Appartement\"},\"construction_year\":{\"title\":\"Construction\",\"question\":\"Quelle est son année de construction ?\",\"text_before_1948\":\"Construit avant 1948\",\"text_between_1948_and_1974\":\"Construit entre 1948 et 1974\",\"text_between_1975_and_1989\":\"Construit entre 1975 et 1989\",\"text_between_1990_and_1998\":\"Construit entre 1990 et 1998\",\"text_after_1998\":\"Construit après 1998\",\"text_unknown\":\"Construit après 1998\",\"before_1948\":\"Avant 1948\",\"between_1948_and_1974\":\"Entre 1948 et 1974\",\"between_1975_and_1989\":\"Entre 1975 et 1989\",\"between_1990_and_1998\":\"Entre 1990 et 1998\",\"after_1998\":\"Après 1998\",\"unknown\":\"Je ne sais pas\"},\"occupantsNumber\":{\"single\":\" occupant\",\"multi\":\" occupants\"},\"area\":{\"title\":\"Surface\",\"question\":\"Quelle est sa surface en m² ?\",\"name\":\" m²\"},\"occupants_number\":{\"title\":\"Nombre d'occupants\",\"question\":\"Combien il y a-t-il d'occupants ?\"},\"outside_facing_walls\":{\"1\":\"1 façade\",\"2\":\"2 façades\",\"3\":\"3 façades\",\"4\":\"4 façades\",\"title\":\"Murs extérieurs\",\"question\":\"Combien de façades donnent sur l'extérieur ?\",\"text\":{\"single\":\" façade donne sur l'extérieur\",\"multi\":\" façades donnent sur l'extérieur\"}},\"floor\":{\"title\":\"Étage\",\"question\":\"À quel étage est votre appartement ?\",\"ground_floor\":\"Au rez-de-chaussée\",\"intermediate_floor\":\"Étage intermédiaire\",\"last_floor\":\"Dernier étage\",\"not_applicable\":\"Sans objet\"},\"heating\":{\"title\":\"Chauffage\",\"question\":\"Quel est votre type de chauffage ?\",\"individual\":\"Individuel\",\"collective\":\"Collectif\"},\"individual_insulation_work\":{\"title\":\"Travaux de rénovation\",\"question\":\"Quels travaux de rénovation avez-vous réalisés ces 10 dernières années ?\",\"none\":\"Aucun\",\"roof_insulation\":\"Isolation toiture\",\"window_replacement\":\"Remplacement fenêtres\",\"wall_insulation\":\"Isolation des murs\",\"window_replacement_and_wall_insulation\":\"Remplacement fenêtres et isolation des murs\",\"window_replacement_and_roof_insulation\":\"Remplacement fenêtres et isolation toiture\",\"roof_and_wall_insulation\":\"Isolation toiture et murs\",\"window_replacement_and_roof_and_wall_insulation\":\"Remplacement fenêtre et isolation des murs et isolation toiture\",\"built_after_1998\":\"construit après 1998\"},\"facilities_installation\":{\"title\":\"Équipement\"},\"ventilation\":{\"title\":\"Ventilation double flux\",\"question\":\"Êtes-vous équipé d'une ventilation double flux ?\",\"yes\":\"Oui\",\"no\":\"Non\",\"unknown\":\"Je ne sais pas\",\"text\":\"Équipé d'une ventilation double flux\"},\"heater_replacement\":{\"title\":\"Pompe à chaleur ou poêle à bois\",\"question\":\"Au cours de ces 10 dernières années, avez-vous remplacé votre chaudière ou vous êtes-vous équipé d'une pompe à chaleur ou d'un poêle à bois ?\",\"yes\":\"Oui\",\"no\":\"Non\",\"unknown\":\"Je ne sais pas\",\"text\":\"Équipé d'une pompe à chaleur ou poêle à bois\"},\"cold_water\":{\"title\":\"Eau\",\"question\":\"Votre eau est-elle comprise dans vos charges collectives ?\",\"individual\":\"Non\",\"collective\":\"Oui\",\"individual_text\":\"Individuelle\",\"collective_text\":\"Collective\"},\"hot_water\":{\"title\":\"Eau chaude\",\"question\":\"Quel est votre type de production d’eau chaude ?\",\"individual\":\"Individuelle\",\"collective\":\"Collective\"},\"hot_water_equipment\":{\"title\":\"Eau chaude\",\"question\":\"Utilisez-vous l’un de ces équipements pour produire votre eau chaude ?\",\"solar\":\"Chauffe-eau solaire\",\"thermodynamic\":\"Chauffe-eau thermodynamique\",\"other\":\"Aucun des deux\"},\"warming_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Bois\",\"4\":\"Fioul\",\"5\":\"Autre\",\"title\":\"Source chauffage\",\"question\":\"Quelle source d’énergie principale utilisez-vous pour vous chauffer ?\",\"no_fluid_text\":\"Produit ni par de l'électricité, ni par du gaz, ni par du bois ou du fuel\",\"0_text\":\"Produit grâce à de l'électricité\",\"2_text\":\"Produit grâce au gaz\",\"3_text\":\"Produit grâce au bois\",\"4_text\":\"Produit grâce au fioul\",\"5_text\":\"Produit grâce à un autre moyen\"},\"hot_water_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"3\":\"Autre (Fioul, Bois)\",\"title\":\"Source eau chaude\",\"question\":\"Avec quelle source d’énergie votre eau chaude est-elle produite ?\",\"no_fluid_text\":\"Produite ni par de l'électricité, ni par du gaz\",\"0_text\":\"Produite grâce à de l'électricité\",\"2_text\":\"Produite grâce au gaz\",\"3_text\":\"Produite à partir d'un autre moyen que l'électricité ou le gaz\"},\"cooking_fluid\":{\"0\":\"Électricité\",\"2\":\"Gaz\",\"title\":\"Source cuisson\",\"question\":\"Quel mode de cuisson principal utilisez-vous ?\"},\"update_date\":{\"title\":\"Date de prise d'effet\",\"question\":\"A partir de quelle date souhaitez-vous que ce nouveau profil soit pris en compte dans l'analyse de vos données ?\"},\"fluidType\":{\"0\":\"Électricité\",\"1\":\"Eau\",\"2\":\"Gaz\"},\"form\":{\"button_previous\":\"Précédent\",\"button_next\":\"Suivant\",\"button_end\":\"Terminer\",\"button_loading\":\"Chargement...\"},\"finished\":{\"title\":\"Terminé !\",\"label1\":\"Grâce à ces informations, vous pourrez comparer votre consommation avec celle d'un foyer vous ressemblant davantage !\",\"label2\":\"Nous pourrons aussi vous proposer des astuces pour maîtriser vos consommations adaptées à votre profil.\",\"button_validate\":\"OK\"},\"accessibility\":{\"button_end\":\"Terminer la mise à jour du profil\",\"button_next\":\"Aller à la section suivante\",\"button_previous\":\"Retour à la section précédente\",\"button_update_profile\":\"Ouvrir la page de mise à jour du profil\",\"button_toggle_detail_profile\":\"Afficher ou masquer le détail du profil\",\"button_toggle_export\":\"Afficher ou masquer l'export des données'\",\"button_toggle_average_home\":\"Afficher ou masquer les informations sur le comparatif'\",\"button_validate\":\"Valider\"}},\"export\":{\"title_export\":\"Télécharger mes données\",\"text1\":\"Vous allez télécharger l'historique mensuel de vos fluides sélectionnés\",\"fluid_select\":\"Pour quel(s) fluide(s) souhaitez vous exporter vos données ?\",\"no_data\":\"Vous n'avez aucune donnée de fluide...\",\"button_download\":\"Télécharger\",\"month\":\"Mois\",\"year\":\"Année\",\"consumption\":\"Consommation\",\"button_close\":\"Fermer la fenêtre\",\"modal_start\":{\"accessibility_title\":\"Commencer le téléchargement\",\"text1\":\"Vous allez télécharger des données personnelles, Ecolyo n’est plus responsable de celles-ci une fois téléchargées\",\"text2\":\"Les données seront téléchargées sous forme de document excel (.xls)\",\"text3\":\"Lancer le téléchargement ?\",\"button_cancel\":\"Annuler\"},\"modal_loading\":{\"accessibility_title\":\"Téléchargement en cours\",\"text1\":\"Données en cours de téléchargement\",\"text2\":\"Veuillez ne pas quitter l’application pendant la récupération et le téléchargement de vos données\",\"button_cancel\":\"Annuler le téléchargement\"},\"modal_done\":{\"accessibility_title\":\"Téléchargement terminé\",\"text1\":\"Vos données ont bien été téléchargées !\",\"text2\":\"Vous pouvez maintenant retrouver l’historique de vos données sur votre appareil\",\"error1\":\"Aïe !\",\"error2\":\"Il semblerait qu’une erreur se soit produite lors du téléchargement de vos données.\",\"button_close\":\"Fermer\",\"button_close_error\":\"Revenir plus tard\"}},\"quiz\":{\"explanation\":\"Répondez correctement aux 5 questions et remportez 5 des 15 étoiles nécessaires pour débloquer le duel final\",\"score_final\":\"SCORE FINAL\",\"correct\":\"Bravo !\",\"wrong\":\"Raté !\",\"rightAnswer\":\"Bonne réponse :\",\"earn\":\"Vous remportez\",\"button_go_back\":\"Retour\",\"button_end_quiz\":\"Youpi !\",\"button_try_again\":\"Réessayer\",\"button_validate\":\"Valider\",\"next\":\"Suivant\",\"consumption_question\":\"Question sur votre consommation\",\"accessibility\":{\"window_title\":\"Fenêtre de résultat\",\"button_end_quiz\":\"Terminer le quiz\",\"button_go_back\":\"Retour\",\"button_go_next\":\"Suivant\",\"button_try_again\":\"Relancer le quiz\",\"button_validate\":\"Valider\"}},\"splashscreen\":{\"error_loading\":\"Une erreur est survenue\",\"button_reload\":\"Réessayer\",\"accessibility\":{\"button_reload\":\"Recharger la page\"},\"migration_error\":\"Mise à jour de l'application\",\"consent_error\":\"Vérification de vos consentements pour partager vos données avec Ecolyo\",\"profile_error\":\"Chargement de votre profil utilisateur\",\"profileType_error\":\"Chargement de votre profil de consommation.\",\"challenges_error\":\"Actualisation de votre progression dans les défis\",\"analysis_error\":\"Chargement de votre analyse mensuelle\",\"index_error\":\"Chargement des index\",\"prices_error\":\"Mise à jour des prix\",\"consos_error\":\"Connexion à vos données de consommation\",\"partners_error\":\"Récupération de l'état des services partenaires\",\"unknown_error\":\"Veuillez vérifier votre connexion internet\",\"network_error\":\"Erreur de réseau\",\"step\":{\"0\":\"Mise à jour de l'application\",\"1\":\"Vérification de vos consentements pour partager vos données avec Ecolyo\",\"2\":\"Chargement de votre profil\",\"3\":\"Actualisation de votre progression dans les défis\",\"4\":\"Mise à jour des prix\",\"5\":\"Connexion à vos données de consommation\"}},\"timestep\":{\"today\":\"Aujourd'hui\",\"year\":{\"period\":\"5 ans\",\"comparelabel\":\"Comparer à l'année précédente\"},\"month\":{\"period\":\"Année\",\"comparelabel\":\"Comparer à l'année précédente\",\"current\":\"année actuelle\",\"last\":\"année précédente\"},\"day\":{\"period\":\"Mois\",\"comparelabel\":\"Comparer au mois précédent\",\"current\":\"mois actuel\",\"last\":\"mois précédent\"},\"week\":{\"period\":\"Semaine\",\"comparelabel\":\"Comparer à la semaine précédente\",\"current\":\"semaine actuelle\",\"last\":\"semaine précédente\"},\"half_an_hour\":{\"period\":\"Jour\",\"comparelabel\":\"Comparer à la journée précédente\",\"gather_data_title\":\"La récupération de vos données demi-horaires prend environ 24h.\",\"current\":\"jour actuel\",\"last\":\"jour précédent\",\"gather_data_subtitle\":\"Votre connexion a bien été prise en compte mais un délai de 24h est en général nécessaire à l’obtention de vos données.\\nÀ demain !\",\"analysis_waiting_data\":\"Pour bénéficier d'une analyse approfondie de votre consommation électrique, il nous faut récupérer vos données de consommation horaires. La récupération de ces données prend environ 24h. A bientôt !\"},\"accessibility\":{\"button_zoom_in\":\"Sélectionner le pas de temps précédent\",\"button_zoom_out\":\"Sélectionner le pas de temps suivant\"}},\"unsubscribe\":{\"title\":\"Êtes-vous sûr de ne plus vouloir recevoir notre email mensuel ?\",\"content\":\"Dans ce cas, vous ne recevrez plus la notification de votre bilan ainsi que les conseils associés au mois en cours.\",\"button_text\":\"Oui, je me désabonne\",\"button_accessibility\":\"Bouton de désinscription\"},\"welcome_modal\":{\"title\":\"Félicitations\",\"perso\":\"Votre espace personnel a bien été créé.\",\"connect\":\"Vous pouvez maintenant connecter vos compteurs d’énergie à Ecolyo en toute sécurité.\",\"button_valid\":\"Ok\",\"accessibility\":{\"title\":\"Fenêtre de félicitations\",\"button_valid\":\"Valider\"}}}");
 
 /***/ }),
 
@@ -10235,7 +10230,7 @@ var _profile = __webpack_require__("QCMq");
 
 var _profileEcogesture = __webpack_require__("L0ad");
 
-var _profileType = __webpack_require__("ZI2v");
+var _profileType = __webpack_require__("Uoe2");
 
 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); }
 
@@ -10254,7 +10249,7 @@ var ecolyoReducer = (0, _redux.combineReducers)({
   modal: _modal.modalSlice.reducer,
   profile: _profile.profileReducer,
   profileEcogesture: _profileEcogesture.profileEcogestureReducer,
-  profileType: _profileType.profileTypeSlice.reducer
+  profileType: _profileType.profileTypeReducer
 });
 var sentryReduxEnhancer = Sentry.createReduxEnhancer({});
 
@@ -15968,10 +15963,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 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; }
 
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
 var ProfileTypeFormMultiChoice = function ProfileTypeFormMultiChoice(_ref) {
   var step = _ref.step,
       viewedStep = _ref.viewedStep,
@@ -16020,7 +16011,8 @@ var ProfileTypeFormMultiChoice = function ProfileTypeFormMultiChoice(_ref) {
     setPreviousStep(profileType);
   }, [profileType, setPreviousStep]);
   var handleNext = (0, _react.useCallback)(function () {
-    setNextStep(_objectSpread(_objectSpread({}, profileType), {}, (0, _defineProperty2.default)({}, answerType.attribute, answer)));
+    profileType[answerType.attribute] = answer;
+    setNextStep(profileType);
   }, [profileType, setNextStep, answer, answerType.attribute]);
   (0, _react.useEffect)(function () {
     var attribute = profileType[answerType.attribute];
@@ -16088,8 +16080,6 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.default = void 0;
 
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
 var _core = __webpack_require__("TTf+");
@@ -16110,10 +16100,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 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; }
 
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
 var ProfileTypeFormNumberSelection = function ProfileTypeFormNumberSelection(_ref) {
   var step = _ref.step,
       viewedStep = _ref.viewedStep,
@@ -16154,7 +16140,8 @@ var ProfileTypeFormNumberSelection = function ProfileTypeFormNumberSelection(_re
     setPreviousStep(profileType);
   }, [profileType, setPreviousStep]);
   var handleNext = (0, _react.useCallback)(function () {
-    setNextStep(_objectSpread(_objectSpread({}, profileType), {}, (0, _defineProperty2.default)({}, answerType.attribute, answer)));
+    profileType[answerType.attribute] = answer;
+    setNextStep(profileType);
   }, [profileType, setNextStep, answer, answerType.attribute]);
   (0, _react.useEffect)(function () {
     if (step < viewedStep || isProfileTypeComplete) {
@@ -16622,10 +16609,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 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; }
 
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
 var ProfileTypeFormSingleChoice = function ProfileTypeFormSingleChoice(_ref) {
   var step = _ref.step,
       viewedStep = _ref.viewedStep,
@@ -16647,7 +16630,8 @@ var ProfileTypeFormSingleChoice = function ProfileTypeFormSingleChoice(_ref) {
     setPreviousStep(profileType);
   }, [profileType, setPreviousStep]);
   var handleNext = (0, _react.useCallback)(function () {
-    setNextStep(_objectSpread(_objectSpread({}, profileType), {}, (0, _defineProperty2.default)({}, answerType.attribute, answer)));
+    profileType[answerType.attribute] = answer;
+    setNextStep(profileType);
   }, [profileType, setNextStep, answer, answerType.attribute]);
   (0, _react.useEffect)(function () {
     if (step < viewedStep || isProfileTypeComplete) {
@@ -19246,8 +19230,10 @@ var _interopRequireDefault = __webpack_require__("TqRt");
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
+exports.UPDATE_PROFILETYPE = exports.CREATE_NEW_PROFILETYPE = void 0;
 exports.newProfileTypeEntry = newProfileTypeEntry;
 exports.updateProfileType = updateProfileType;
+exports.updateProfileTypeSuccess = updateProfileTypeSuccess;
 
 var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
 
@@ -19257,7 +19243,17 @@ var _doctypes = __webpack_require__("D2hQ");
 
 var _profileTypeEntity = _interopRequireDefault(__webpack_require__("aypK"));
 
-var _profileType = __webpack_require__("ZI2v");
+var UPDATE_PROFILETYPE = 'UPDATE_PROFILETYPE';
+exports.UPDATE_PROFILETYPE = UPDATE_PROFILETYPE;
+var CREATE_NEW_PROFILETYPE = 'CREATE_NEW_PROFILETYPE';
+exports.CREATE_NEW_PROFILETYPE = CREATE_NEW_PROFILETYPE;
+
+function updateProfileTypeSuccess(updatedProfileType) {
+  return {
+    type: UPDATE_PROFILETYPE,
+    payload: updatedProfileType
+  };
+}
 
 function updateProfileType(updates) {
   return /*#__PURE__*/function () {
@@ -19276,7 +19272,7 @@ function updateProfileType(updates) {
               updatedProfileType = _context.sent;
 
               if (updatedProfileType) {
-                dispatch((0, _profileType.setProfileType)(updatedProfileType));
+                dispatch(updateProfileTypeSuccess(updatedProfileType));
               }
 
             case 6:
@@ -19311,7 +19307,7 @@ function newProfileTypeEntry(updates) {
               newProfileType = _yield$client$create.data;
 
               if (newProfileType) {
-                dispatch((0, _profileType.setProfileType)(newProfileType));
+                dispatch(updateProfileTypeSuccess(newProfileType));
               }
 
             case 6:
@@ -20082,6 +20078,72 @@ module.exports = (Handlebars["default"] || Handlebars).template({"compiler":[8,"
 
 /***/ }),
 
+/***/ "Uoe2":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.profileTypeReducer = void 0;
+
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
+
+var _fluid = __webpack_require__("5Wkc");
+
+var _profileType = __webpack_require__("D9qV");
+
+var _luxon = __webpack_require__("ExVU");
+
+var _profileType2 = __webpack_require__("TeAr");
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+
+var initialState = {
+  housingType: _profileType.HousingType.INDIVIDUAL_HOUSE,
+  constructionYear: _profileType.ConstructionYear.BETWEEN_1975_AND_1989,
+  area: '100',
+  occupantsNumber: 4,
+  outsideFacingWalls: _profileType.OutsideFacingWalls.TWO,
+  floor: _profileType.Floor.NOT_APPLICABLE,
+  heating: _profileType.IndividualOrCollective.INDIVIDUAL,
+  coldWater: _profileType.IndividualOrCollective.INDIVIDUAL,
+  hotWater: _profileType.IndividualOrCollective.INDIVIDUAL,
+  individualInsulationWork: [_profileType.IndividualInsulationWork.WINDOW_REPLACEMENT, _profileType.IndividualInsulationWork.WALL_INSULATION],
+  hasInstalledVentilation: _profileType.ThreeChoicesAnswer.UNKNOWN,
+  hasReplacedHeater: _profileType.ThreeChoicesAnswer.UNKNOWN,
+  hotWaterEquipment: _profileType.HotWaterEquipment.SOLAR,
+  warmingFluid: _profileType.WarmingType.ELECTRICITY,
+  hotWaterFluid: _profileType.HotWaterFluid.ELECTRICITY,
+  cookingFluid: _fluid.FluidType.ELECTRICITY,
+  updateDate: _luxon.DateTime.fromISO('0000-01-01T00:00:00.000Z'),
+  equipments: []
+};
+
+var profileTypeReducer = function profileTypeReducer() {
+  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
+  var action = arguments.length > 1 ? arguments[1] : undefined;
+
+  switch (action.type) {
+    case _profileType2.UPDATE_PROFILETYPE:
+    case _profileType2.CREATE_NEW_PROFILETYPE:
+      return _objectSpread(_objectSpread({}, state), action.payload);
+
+    default:
+      return state;
+  }
+};
+
+exports.profileTypeReducer = profileTypeReducer;
+
+/***/ }),
+
 /***/ "Ush/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -22516,8 +22578,6 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.default = void 0;
 
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
 var _FormNavigation = _interopRequireDefault(__webpack_require__("Pnfk"));
@@ -22536,10 +22596,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 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; }
 
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
 var ProfileTypeFormNumber = function ProfileTypeFormNumber(_ref) {
   var step = _ref.step,
       viewedStep = _ref.viewedStep,
@@ -22561,7 +22617,8 @@ var ProfileTypeFormNumber = function ProfileTypeFormNumber(_ref) {
     setPreviousStep(profileType);
   }, [profileType, setPreviousStep]);
   var handleNext = (0, _react.useCallback)(function () {
-    setNextStep(_objectSpread(_objectSpread({}, profileType), {}, (0, _defineProperty2.default)({}, answerType.attribute, answer)));
+    profileType[answerType.attribute] = answer;
+    setNextStep(profileType);
   }, [profileType, setNextStep, answer, answerType.attribute]);
   (0, _react.useEffect)(function () {
     if (step < viewedStep || isProfileTypeComplete) {
@@ -23061,62 +23118,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 
 /***/ }),
 
-/***/ "ZI2v":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.setProfileType = exports.profileTypeSlice = exports.default = void 0;
-
-var _toolkit = __webpack_require__("i7Pf");
-
-var _fluid = __webpack_require__("5Wkc");
-
-var _profileType = __webpack_require__("D9qV");
-
-var _luxon = __webpack_require__("ExVU");
-
-var initialState = {
-  housingType: _profileType.HousingType.INDIVIDUAL_HOUSE,
-  constructionYear: _profileType.ConstructionYear.BETWEEN_1975_AND_1989,
-  area: '100',
-  occupantsNumber: 4,
-  outsideFacingWalls: _profileType.OutsideFacingWalls.TWO,
-  floor: _profileType.Floor.NOT_APPLICABLE,
-  heating: _profileType.IndividualOrCollective.INDIVIDUAL,
-  coldWater: _profileType.IndividualOrCollective.INDIVIDUAL,
-  hotWater: _profileType.IndividualOrCollective.INDIVIDUAL,
-  individualInsulationWork: [_profileType.IndividualInsulationWork.WINDOW_REPLACEMENT, _profileType.IndividualInsulationWork.WALL_INSULATION],
-  hasInstalledVentilation: _profileType.ThreeChoicesAnswer.UNKNOWN,
-  hasReplacedHeater: _profileType.ThreeChoicesAnswer.UNKNOWN,
-  hotWaterEquipment: _profileType.HotWaterEquipment.SOLAR,
-  warmingFluid: _profileType.WarmingType.ELECTRICITY,
-  hotWaterFluid: _profileType.HotWaterFluid.ELECTRICITY,
-  cookingFluid: _fluid.FluidType.ELECTRICITY,
-  updateDate: _luxon.DateTime.fromISO('0000-01-01T00:00:00.000Z'),
-  equipments: []
-};
-var profileTypeSlice = (0, _toolkit.createSlice)({
-  name: 'profileType',
-  initialState: initialState,
-  reducers: {
-    setProfileType: function setProfileType(state, action) {
-      Object.assign(state, action.payload);
-    }
-  }
-});
-exports.profileTypeSlice = profileTypeSlice;
-var setProfileType = profileTypeSlice.actions.setProfileType;
-exports.setProfileType = setProfileType;
-var _default = profileTypeSlice.reducer;
-exports.default = _default;
-
-/***/ }),
-
 /***/ "ZOOY":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -24602,6 +24603,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -24618,6 +24620,8 @@ var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
 
 var _ecogesture = __webpack_require__("SpsK");
 
+var _fluidSlug = __webpack_require__("jFN3");
+
 var _get = _interopRequireDefault(__webpack_require__("mwIZ"));
 
 var _luxon = __webpack_require__("ExVU");
@@ -24650,6 +24654,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
@@ -26462,6 +26482,7 @@ var map = {
 	"./indicator/red.svg": "rc9j",
 	"./multi-grey.svg": "Z2Hs",
 	"./multi.svg": "KBDK",
+	"./offline-param.svg": "lLz+",
 	"./onboarding/browser_egl.svg": "ZOOY",
 	"./onboarding/browser_grdf.svg": "+VqI",
 	"./onboarding/egl.svg": "P/PX",
@@ -27672,7 +27693,7 @@ exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.setShowCompare = exports.setSelectedDate = exports.setLoading = exports.setCurrentTimeStep = exports.setCurrentIndex = exports.setCurrentDataChartIndex = exports.setCurrentDataChart = exports.chartSlice = void 0;
+exports.setShowOfflineData = exports.setShowCompare = exports.setSelectedDate = exports.setLoading = exports.setCurrentTimeStep = exports.setCurrentIndex = exports.setCurrentDataChartIndex = exports.setCurrentDataChart = exports.chartSlice = void 0;
 
 var _toolkit = __webpack_require__("i7Pf");
 
@@ -27692,7 +27713,8 @@ var initialState = {
   },
   currentDatachartIndex: 0,
   loading: true,
-  showCompare: false
+  showCompare: false,
+  showOfflineData: false
 };
 var chartSlice = (0, _toolkit.createSlice)({
   name: 'chart',
@@ -27722,6 +27744,9 @@ var chartSlice = (0, _toolkit.createSlice)({
     },
     setShowCompare: function setShowCompare(state, action) {
       state.showCompare = action.payload;
+    },
+    setShowOfflineData: function setShowOfflineData(state, action) {
+      state.showOfflineData = action.payload;
     }
   }
 });
@@ -27733,7 +27758,9 @@ var _chartSlice$actions = chartSlice.actions,
     setCurrentTimeStep = _chartSlice$actions.setCurrentTimeStep,
     setLoading = _chartSlice$actions.setLoading,
     setSelectedDate = _chartSlice$actions.setSelectedDate,
-    setShowCompare = _chartSlice$actions.setShowCompare;
+    setShowCompare = _chartSlice$actions.setShowCompare,
+    setShowOfflineData = _chartSlice$actions.setShowOfflineData;
+exports.setShowOfflineData = setShowOfflineData;
 exports.setShowCompare = setShowCompare;
 exports.setSelectedDate = setSelectedDate;
 exports.setLoading = setLoading;
@@ -30815,6 +30842,28 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 
 /***/ }),
 
+/***/ "lLz+":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4BeY");
+/* harmony import */ var _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("IaFt");
+/* harmony import */ var _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1__);
+
+
+var symbol = new _node_modules_svg_baker_runtime_browser_symbol_js__WEBPACK_IMPORTED_MODULE_0___default.a({
+  "id": "offline-param_a148befbf5aefaa529ca266c71306cf6",
+  "use": "offline-param_a148befbf5aefaa529ca266c71306cf6-usage",
+  "viewBox": "0 0 51 52",
+  "content": "<symbol viewBox=\"0 0 51 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" id=\"offline-param_a148befbf5aefaa529ca266c71306cf6\">\n<circle cx=\"25.5\" cy=\"26.25\" r=\"25\" fill=\"#121212\" stroke=\"#7B7B7B\" />\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M34.0044 49.2337C31.3552 50.2143 28.4902 50.75 25.5 50.75C15.1546 50.75 6.3069 44.3379 2.71426 35.2711H4.09929L4.4043 34.0316C5.01421 32.4823 5.62412 30.9331 6.23404 29.6937L6.84396 28.7641L3.18439 25.0458C2.57446 24.7359 2.57446 24.4261 2.57446 24.4261C2.57446 24.4261 2.57446 24.1162 2.87943 23.8063L5.62411 21.0176C5.92907 20.7077 6.23404 20.7077 6.23404 20.7077L10.1986 24.7359L11.1135 24.1162C12.6383 23.1866 14.1631 22.257 15.9929 21.9472L17.2128 21.6373V15.75H22.3972V21.3275L23.617 21.6373C25.4468 22.257 26.9716 22.8768 28.4964 23.8063L29.4113 24.4261L32.7659 21.0176C33.0709 20.3979 33.3759 20.3979 33.3759 20.3979C33.3759 20.3979 33.6808 20.3979 33.9858 20.7077L36.7305 23.4965C37.0355 23.8063 37.0355 24.1162 37.0355 24.1162L32.7659 28.4542L33.3759 29.3838C34.2908 30.9331 34.9007 32.1725 35.2057 33.7218L35.5106 34.9613H41V40.5387H35.5106L35.2057 41.7782C34.5957 43.6373 33.9858 45.1866 33.0709 46.7359L32.461 47.6655L34.0044 49.2337ZM14 37.0643C14 33.7214 16.9714 30.75 20.6857 30.75C24.4 30.75 27 33.7214 27 37.0643C27 40.7786 24.4 43.75 20.6857 43.75C16.9714 43.75 14 40.7786 14 37.0643Z\" fill=\"#7B7B7B\" />\n<path d=\"M40.5886 19.75H45.4113V14.2641L46.5461 13.9754C46.5945 13.9655 46.6425 13.9553 46.6903 13.9448C42.4463 6.65218 34.5457 1.75 25.5 1.75C24.656 1.75 23.822 1.79268 23 1.87599V2.13732H28.1064L28.3901 3.29225C28.6738 5.02464 29.5248 6.4683 30.3759 7.91195L30.9433 8.77816L26.9716 12.8204C26.9716 12.8204 26.9716 13.1091 27.2553 13.3979L29.8085 15.9965C30.0922 16.2852 30.3759 16.2852 30.3759 16.2852C30.3759 16.2852 30.6596 16.2852 30.9433 15.7077L34.3475 12.243L35.1986 12.8204C35.9936 13.4273 36.9279 13.7507 37.9038 14.0885C38.3209 14.2329 38.7455 14.3799 39.1702 14.5528L40.305 14.8415V19.4613C40.5887 19.4613 40.5886 19.4613 40.5886 19.75Z\" fill=\"#7B7B7B\" fill-opacity=\"0.5\" />\n</symbol>"
+});
+var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WEBPACK_IMPORTED_MODULE_1___default.a.add(symbol);
+/* harmony default export */ __webpack_exports__["default"] = (symbol);
+
+/***/ }),
+
 /***/ "lMfa":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -32151,7 +32200,6 @@ var ProfileTypeView = function ProfileTypeView() {
     if (_profileType) {
       setProfileType(_profileType);
       profileTypeFormService = new _profileTypeForm.default(_profileType);
-      console.log(profileTypeFormService);
       curProfileEcogesture.heating = _profileType.heating;
       curProfileEcogesture.hotWater = _profileType.hotWater;
       curProfileEcogesture.warmingFluid = _profileType.warmingFluid;
@@ -32169,13 +32217,13 @@ var ProfileTypeView = function ProfileTypeView() {
 
     setStep(nextStep);
   }, [curProfileEcogesture, profile.isProfileTypeCompleted, profileType, step, viewedStep]);
-  var setPreviousStep = (0, _react.useCallback)(function () {
-    console.log(profileType);
-    var profileTypeFormService = new _profileTypeForm.default(profileType);
+  var setPreviousStep = (0, _react.useCallback)(function (_profileType) {
+    setProfileType(_profileType);
+    var profileTypeFormService = new _profileTypeForm.default(_profileType);
     var previousStep = profileTypeFormService.getPreviousFormStep(step);
     setIsLoading(true);
     setStep(previousStep);
-  }, [profileType, step]);
+  }, [step]);
 
   var selectForm = function selectForm() {
     if (answerType.type === _profileType2.ProfileTypeFormType.SINGLE_CHOICE) {
@@ -32239,16 +32287,15 @@ var ProfileTypeView = function ProfileTypeView() {
   };
 
   (0, _react.useEffect)(function () {
+    if (profile.isProfileTypeCompleted) {
+      setProfileType(curProfileType);
+    }
+
     var _answerType = _profileTypeForm.default.getAnswerForStep(step);
 
     setAnswerType(_answerType);
     setIsLoading(false);
-  }, [step]);
-  (0, _react.useEffect)(function () {
-    if (profile.isProfileTypeCompleted) {
-      setProfileType(_objectSpread({}, curProfileType));
-    }
-  }, [curProfileType, profile]);
+  }, [step, profile, curProfileType]);
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CozyBar.default, {
     titleKey: 'common.title_profiletype',
     displayBackArrow: true
@@ -32553,11 +32600,12 @@ if(false) {}
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.openPartnersModal = exports.openFeedbackModal = exports.modalSlice = void 0;
+exports.openPartnersModal = exports.openFeedbackModal = exports.openConnectionModal = exports.modalSlice = void 0;
 
 var _toolkit = __webpack_require__("i7Pf");
 
 var initialState = {
+  isConnectionModalOpen: false,
   isFeedbacksOpen: false,
   partnersIssueModal: {
     enedis: false,
@@ -32574,13 +32622,18 @@ var modalSlice = (0, _toolkit.createSlice)({
     },
     openPartnersModal: function openPartnersModal(state, action) {
       state.partnersIssueModal = action.payload;
+    },
+    openConnectionModal: function openConnectionModal(state, action) {
+      state.isConnectionModalOpen = action.payload;
     }
   }
 });
 exports.modalSlice = modalSlice;
 var _modalSlice$actions = modalSlice.actions,
     openFeedbackModal = _modalSlice$actions.openFeedbackModal,
-    openPartnersModal = _modalSlice$actions.openPartnersModal;
+    openPartnersModal = _modalSlice$actions.openPartnersModal,
+    openConnectionModal = _modalSlice$actions.openConnectionModal;
+exports.openConnectionModal = openConnectionModal;
 exports.openPartnersModal = openPartnersModal;
 exports.openFeedbackModal = openFeedbackModal;
 
@@ -32682,7 +32735,7 @@ exports.i(__webpack_require__("tgIe"), "");
 exports.push([module.i, "@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap);", ""]);
 
 // Module
-exports.push([module.i, "/* Cozy UI utilities classes */\n/* Cozy UI React components styles */\n/* App styles */\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nhtml {\n  background: #121212;\n}\n\nbody {\n  background: #121212;\n  overflow: unset !important;\n}\n\n.column {\n  display: flex;\n  flex-direction: column;\n}\n\n.row {\n  display: flex;\n  flex-direction: row;\n}\n\n.cozy-bar {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-left: 0;\n}\n\n[role=banner] .coz-bar-container {\n  background-color: #ffffff;\n}\n@media only screen and (max-width : 768px) {\n  [role=banner] .coz-bar-container {\n    padding: 0.6rem 0 0 0;\n    background-color: unset;\n  }\n}\n\n.coz-bar-wrapper {\n  box-shadow: unset !important;\n  background: unset !important;\n}\n\n.coz-label {\n  color: #32363f;\n}\n\n.content-view-loading {\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  color: #e0e0e0;\n}\n.content-view-loading .content-view-loading-text {\n  padding-top: 1rem;\n  margin: 0 2rem;\n  text-align: center;\n}\n.content-view-loading .content-view-loading-button {\n  max-width: 50vw;\n  margin-top: 1rem;\n}\n\n[role=main] {\n  /* width */\n  /* Track */\n  /* Handle */\n}\n[role=main]::-webkit-scrollbar {\n  width: 10px;\n}\n[role=main]::-webkit-scrollbar-track {\n  background: #3e4045;\n}\n[role=main]::-webkit-scrollbar-thumb {\n  background: #6f7074;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n* {\n  font-family: Lato, sans-serif;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np {\n  color: #a0a0a0;\n  font-family: Lato, sans-serif;\n}\n\n.home-title {\n  font-size: 1rem;\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 120%;\n  text-transform: uppercase;\n}\n\n.app-title {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 21px;\n  line-height: 24px;\n  text-align: center;\n  letter-spacing: 0.15px;\n  color: #e0e0e0;\n  text-shadow: 0px -1px 0px #060609, 0px 1px 0px rgba(255, 255, 255, 0.07);\n}\n\n.text-10, .text-10-italic, .text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase, .text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-style: normal;\n  font-size: 0.625rem;\n  line-height: 120%;\n}\n.text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-weight: normal;\n}\n.text-10-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-10-normal-150 {\n  line-height: 150%;\n}\n.text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase {\n  font-weight: 700;\n}\n.text-10-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-10-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-10-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-14, .text-14-italic, .text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase, .text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-style: normal;\n  font-size: 0.875rem;\n  line-height: 120%;\n}\n.text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-weight: normal;\n}\n.text-14-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-14-normal-150 {\n  line-height: 150%;\n}\n.text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase {\n  font-weight: 700;\n}\n.text-14-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-14-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-14-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-15, .text-15-italic, .text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase, .text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-style: normal;\n  font-size: 0.938rem;\n  line-height: 120%;\n}\n.text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-weight: normal;\n}\n.text-15-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-15-normal-150 {\n  line-height: 150%;\n}\n.text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase {\n  font-weight: 700;\n}\n.text-15-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-15-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-15-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-16, .text-16-italic, .text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase, .text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-style: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n.text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-weight: normal;\n}\n.text-16-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-16-normal-150 {\n  line-height: 150%;\n}\n.text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase {\n  font-weight: 700;\n}\n.text-16-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-16-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-16-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-18, .text-18-italic, .text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase, .text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-style: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n}\n.text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-weight: normal;\n}\n.text-18-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-18-normal-150 {\n  line-height: 150%;\n}\n.text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase {\n  font-weight: 700;\n}\n.text-18-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-18-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-18-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-19, .text-19-italic, .text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase, .text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-style: normal;\n  font-size: 1.188rem;\n  line-height: 120%;\n}\n.text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-weight: normal;\n}\n.text-19-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-19-normal-150 {\n  line-height: 150%;\n}\n.text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase {\n  font-weight: 700;\n}\n.text-19-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-19-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-19-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-20, .text-20-italic, .text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase, .text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-style: normal;\n  font-size: 1.25rem;\n  line-height: 120%;\n}\n.text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-weight: normal;\n}\n.text-20-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-20-normal-150 {\n  line-height: 150%;\n}\n.text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase {\n  font-weight: 700;\n}\n.text-20-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-20-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-20-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-21, .text-21-italic, .text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase, .text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-style: normal;\n  font-size: 1.313rem;\n  line-height: 120%;\n}\n.text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-weight: normal;\n}\n.text-21-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-21-normal-150 {\n  line-height: 150%;\n}\n.text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase {\n  font-weight: 700;\n}\n.text-21-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-21-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-21-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-22, .text-22-italic, .text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase, .text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-style: normal;\n  font-size: 1.375rem;\n  line-height: 120%;\n}\n.text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-weight: normal;\n}\n.text-22-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-22-normal-150 {\n  line-height: 150%;\n}\n.text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase {\n  font-weight: 700;\n}\n.text-22-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-22-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-22-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-24, .text-24-italic, .text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase, .text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-style: normal;\n  font-size: 1.5rem;\n  line-height: 120%;\n}\n.text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-weight: normal;\n}\n.text-24-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-24-normal-150 {\n  line-height: 150%;\n}\n.text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase {\n  font-weight: 700;\n}\n.text-24-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-24-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-24-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-26, .text-26-italic, .text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase, .text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-style: normal;\n  font-size: 1.625rem;\n  line-height: 120%;\n}\n.text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-weight: normal;\n}\n.text-26-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-26-normal-150 {\n  line-height: 150%;\n}\n.text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase {\n  font-weight: 700;\n}\n.text-26-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-26-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-26-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-28, .text-28-italic, .text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase, .text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-style: normal;\n  font-size: 1.75rem;\n  line-height: 120%;\n}\n.text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-weight: normal;\n}\n.text-28-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-28-normal-150 {\n  line-height: 150%;\n}\n.text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase {\n  font-weight: 700;\n}\n.text-28-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-28-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-28-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-36, .text-36-italic, .text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase, .text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-style: normal;\n  font-size: 2.25rem;\n  line-height: 120%;\n}\n.text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-weight: normal;\n}\n.text-36-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-36-normal-150 {\n  line-height: 150%;\n}\n.text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase {\n  font-weight: 700;\n}\n.text-36-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-36-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-36-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n/* Card */\n.card-title-on {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text-bold {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-indicator {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/* Chart */\n.chart-ticks-x-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-x-text {\n    font-size: 0.685rem;\n  }\n}\n\n.chart-ticks-y-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 0.9rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-y-text {\n    font-size: 0.75rem;\n  }\n}\n\n/* Cozy bar */\n.cozybar {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1.3125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.axis {\n  color: #7b7b7b;\n}\n.axis .tick-text {\n  fill: #7b7b7b;\n}\n.axis .tick-text.tick-text-selected {\n  fill: #e0e0e0;\n}\n.axis .separator {\n  text-align: center;\n  margin: 0 2px;\n  font-size: 1rem !important;\n}\n\n.value-text {\n  fill: #7b7b7b;\n}\n.value-text.selected {\n  fill: #e0e0e0;\n}\n\n.barContainer:hover,\n.barFill:hover {\n  cursor: pointer;\n}\n\n.background-true {\n  opacity: 0.1;\n}\n.background-true:hover {\n  cursor: pointer;\n}\n\n.background-false {\n  opacity: 0;\n}\n\n.bar-compare-ELECTRICITY:hover,\n.bar-compare-GAS:hover,\n.bar-compare-WATER:hover,\n.bar-compare-MULTIFLUID:hover,\n.bar-MULTIFLUID:hover,\n.bar-WATER:hover,\n.bar-GAS:hover,\n.bar-ELECTRICITY:hover {\n  cursor: pointer;\n}\n\n.bar-ELECTRICITY {\n  fill: #5d3d2a;\n}\n.bar-ELECTRICITY.selected {\n  fill: #d87b39;\n  filter: drop-shadow(0 -0.1rem 0.2rem #d87b39);\n}\n\n.bar-compare-ELECTRICITY {\n  fill: #795c47;\n}\n.bar-compare-ELECTRICITY.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.bar-WATER {\n  fill: #20415e;\n}\n.bar-WATER.selected {\n  fill: #3a98ec;\n  filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec);\n}\n\n.bar-compare-WATER {\n  fill: #4d5c6e;\n}\n.bar-compare-WATER.selected {\n  fill: #abd4fa;\n  filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa);\n}\n\n.bar-GAS {\n  fill: #184940;\n}\n.bar-GAS.selected {\n  fill: #45d1b8;\n  filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8);\n}\n\n.bar-compare-GAS {\n  fill: #597773;\n}\n.bar-compare-GAS.selected {\n  fill: #a8f7e9;\n  filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9);\n}\n\n.bar-MULTIFLUID {\n  fill: #705d1d;\n}\n.bar-MULTIFLUID.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-MULTIFLUID.disabled:hover {\n  cursor: default;\n}\n\n.bar-duel {\n  fill: #61f0f2;\n}\n.bar-duel.selected {\n  fill: #61f0f2;\n  filter: drop-shadow(0 -0.1rem 0.2rem #61f0f2);\n}\n.bar-duel.disabled:hover {\n  cursor: default;\n}\n\n.bar-UNCOMING {\n  fill: #242633;\n  opacity: 0.6;\n}\n.bar-UNCOMING.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-UNCOMING.disabled:hover {\n  cursor: default;\n}\n\n.bar-compare-MULTIFLUID {\n  fill: #7d6a4e;\n}\n.bar-compare-MULTIFLUID.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n.bar-average {\n  stroke-width: 2;\n  stroke: #e3b82a;\n}\n\n.week {\n  fill: #e2bca1;\n}\n.week.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.weekend {\n  fill: #ffd597;\n}\n.weekend.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n/** Animation **/\n.bounce-1 {\n  animation-name: bounce-1;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-1 {\n  0% {\n    transform: scale(0.1, 0.1);\n  }\n  28% {\n    transform: scale(0.1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-2 {\n  animation-name: bounce-2;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-2 {\n  0% {\n    transform: scale(1, 1);\n  }\n  28% {\n    transform: scale(1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-3 {\n  animation-name: bounce-3;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n}\n\n@keyframes bounce-3 {\n  0% {\n    opacity: 0.6;\n    transform: scaleY(1);\n  }\n  50% {\n    transform: scaleY(1.1);\n    opacity: 0.8;\n  }\n  100% {\n    transform: scaleY(1);\n    opacity: 1;\n  }\n}\n/** Animatio ndelay **/\n.delay {\n  animation-duration: 0.4s;\n}\n\n.delay--0 {\n  animation-duration: 0.6s;\n}\n\n.delay--1 {\n  animation-duration: 0.7s;\n}\n\n.delay--2 {\n  animation-duration: 0.8s;\n}\n\n.delay--3 {\n  animation-duration: 0.9s;\n}\n\n.delay--4 {\n  animation-duration: 1s;\n}\n\n.delay--5 {\n  animation-duration: 1.1s;\n}\n\n.delay--6 {\n  animation-duration: 1.2s;\n}\n\n.delay--7 {\n  animation-duration: 1.3s;\n}\n\n.delay--8 {\n  animation-duration: 1.4s;\n}\n\n.delay--9 {\n  animation-duration: 1.5s;\n}\n\n.delay--10 {\n  animation-duration: 1.6s;\n}\n\n.delay--11 {\n  animation-duration: 1.8s;\n}\n\n.delay--12 {\n  animation-duration: 1.9s;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nbutton.btn-highlight {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  background-color: #e3b82a;\n  border: none;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-highlight span:first-child {\n  color: #000000;\n}\nbutton.btn-highlight:hover, button.btn-highlight:focus, button.btn-highlight.active, button.btn-highlight:disabled {\n  background-color: #b89318;\n}\nbutton.btn-highlight:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-primary-positive {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #121212;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-primary-positive span:first-child {\n  color: #e3b82a;\n}\nbutton.btn-primary-positive:hover, button.btn-primary-positive:focus, button.btn-primary-positive.active, button.btn-primary-positive:disabled {\n  background-color: rgba(18, 18, 18, 0.2);\n}\nbutton.btn-primary-positive:hover span:first-child, button.btn-primary-positive:focus span:first-child, button.btn-primary-positive.active span:first-child, button.btn-primary-positive:disabled span:first-child {\n  color: rgba(227, 184, 42, 0.7);\n}\nbutton.btn-primary-positive:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-primary-negative {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #7b7b7b;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-primary-negative span:first-child {\n  color: #e3b82a;\n}\nbutton.btn-primary-negative:hover, button.btn-primary-negative:focus, button.btn-primary-negative.active, button.btn-primary-negative:disabled {\n  background-color: rgba(123, 123, 123, 0.2);\n}\nbutton.btn-primary-negative:hover span:first-child, button.btn-primary-negative:focus span:first-child, button.btn-primary-negative.active span:first-child, button.btn-primary-negative:disabled span:first-child {\n  color: rgba(227, 184, 42, 0.7);\n}\nbutton.btn-primary-negative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-secondary-positive {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #121212;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-secondary-positive span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-secondary-positive:hover, button.btn-secondary-positive:focus, button.btn-secondary-positive.active, button.btn-secondary-positive:disabled {\n  background-color: rgba(18, 18, 18, 0.2);\n}\nbutton.btn-secondary-positive:hover span:first-child, button.btn-secondary-positive:focus span:first-child, button.btn-secondary-positive.active span:first-child, button.btn-secondary-positive:disabled span:first-child {\n  color: rgba(224, 224, 224, 0.7);\n}\nbutton.btn-secondary-positive:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-secondary-negative {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #7b7b7b;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-secondary-negative span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-secondary-negative:hover, button.btn-secondary-negative:focus, button.btn-secondary-negative.active, button.btn-secondary-negative:disabled {\n  background-color: rgba(123, 123, 123, 0.2);\n}\nbutton.btn-secondary-negative:hover span:first-child, button.btn-secondary-negative:focus span:first-child, button.btn-secondary-negative.active span:first-child, button.btn-secondary-negative:disabled span:first-child {\n  color: rgba(224, 224, 224, 0.7);\n}\nbutton.btn-secondary-negative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-off {\n  background: #121212;\n  background-color: #121212;\n  border: 1px solid rgba(97, 240, 242, 0.5);\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-off span:first-child {\n  color: #ffffff;\n}\nbutton.btn-duel-off:hover, button.btn-duel-off:focus, button.btn-duel-off.active, button.btn-duel-off:disabled {\n  background-color: black;\n}\nbutton.btn-duel-off:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-active {\n  border-radius: 4px !important;\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  background-color: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  border: none;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-active span:first-child {\n  color: #121212;\n}\nbutton.btn-duel-active:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-on {\n  background: radial-gradient(60.65% 30.62% at 50% 3.13%, #2a2b30 0%, #1b1c22 100%);\n  background-color: #121212;\n  border: 1px solid #58ffff;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-on span:first-child {\n  color: #ffffff;\n}\nbutton.btn-duel-on:hover, button.btn-duel-on:focus, button.btn-duel-on.active, button.btn-duel-on:disabled {\n  background-color: black;\n}\nbutton.btn-duel-on:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-profile-next {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  background-color: #e3b82a;\n  border: 1px solid #e3b82a;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-profile-next span:first-child {\n  color: #000000;\n}\nbutton.btn-profile-next:hover, button.btn-profile-next:focus, button.btn-profile-next.active, button.btn-profile-next:disabled {\n  background-color: #b89318;\n}\nbutton.btn-profile-next:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-profile-back {\n  background: none;\n  background-color: none;\n  border: 1px solid #e0e0e0;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-profile-back span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-profile-back:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.card {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  box-sizing: border-box;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  border-radius: 4px;\n  padding: 16px;\n}\n.card:hover {\n  background: linear-gradient(180deg, rgba(70, 71, 77, 0.7) 0%, rgba(57, 58, 63, 0.7) 100%);\n}\n.card.rich-card {\n  padding: 24px 16px;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.modal-root .MuiBackdrop-root {\n  background-color: hsla(231deg, 11%, 12%, 0.85);\n}\n\ndiv.modal-paper {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 36rem;\n  max-width: 100%;\n  max-height: 90vh;\n  padding: 2rem;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  margin: 0 0 0 13.75rem;\n  align-items: center;\n  color: #ffffff;\n}\n@media only screen and (max-width : 1023px) {\n  div.modal-paper {\n    width: 35rem;\n    margin: 0;\n  }\n}\n@media only screen and (max-width : 768px) {\n  div.modal-paper {\n    padding: 1rem 1rem 1.5rem;\n    width: 85%;\n    max-width: 35rem;\n    margin: 0;\n  }\n}\ndiv.modal-paper.no-padding {\n  padding: 0;\n}\ndiv.modal-paper.blue-border {\n  border: 1px solid rgba(88, 255, 255, 0.2509803922);\n}\ndiv.modal-paper.blue-light-border {\n  border: 1px solid #61f0f2;\n}\ndiv.modal-paper.yellow-border {\n  border: 1px solid rgba(227, 184, 42, 0.4);\n}\ndiv.modal-paper .modal-paper-close-button {\n  position: absolute;\n  top: 0.5rem;\n  right: 0.5rem;\n  padding: 5px 5px;\n  z-index: 10;\n}\n\ndiv.modal-paper-full-screen {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 100%;\n  max-width: 100%;\n  height: 100%;\n  max-height: 100%;\n  padding: 0;\n  margin: 0;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  color: #ffffff;\n  display: flex;\n  align-items: center;\n}\ndiv.modal-paper-full-screen.dark-background {\n  background: #121212;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.expansion-panel-root {\n  margin: 1.2rem 0;\n  color: #e0e0e0;\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border-radius: 4px;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  transition: background-color 0.6s ease;\n  box-sizing: border-box;\n}\ndiv.expansion-panel-root.Mui-expanded:first-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.Mui-expanded:last-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.red-border {\n  border: 1px solid #d25959;\n}\n\ndiv.expansion-panel-summary {\n  padding: 0.25rem 1.2rem;\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-focused {\n  border-radius: 4px;\n  background-color: unset;\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\ndiv.expansion-panel-summary.Mui-expanded {\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-expanded.small {\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.small {\n  padding: 0 1.2rem;\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.bold-text {\n  font-weight: bold;\n}\n\ndiv.expansion-panel-content {\n  display: flex;\n  align-items: center;\n}\ndiv.expansion-panel-content.Mui-expanded {\n  margin: 0.75rem 0;\n}\n\ndiv.expansion-panel-details {\n  padding: 0 1.2rem 1.2rem;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\na {\n  color: #deaf0e;\n}\na:visited {\n  color: #deaf0e;\n}\n\na:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 1px #e0e0e0;\n}\na:focus > div:first-child {\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\n\na.MuiLink-underlineHover:hover {\n  text-decoration: none;\n}\n\na.MuiTypography-colorPrimary {\n  color: #e0e0e0;\n}\n\n:root {\n  white-space: pre-line;\n  --blue: #58ffff;\n  --blue40: rgba(88, 255, 255, 0.2509803922);\n  --blueBackground: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradientTrans: radial-gradient(circle, #58ffff 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColor: #d87b39;\n  --elecColor40: rgba(216, 123, 57, 0.4);\n  --elecCompareColor: #e2bca1;\n  --gasColor: #45d1b8;\n  --gasColor40: rgba(69, 209, 184, 0.4);\n  --gasCompareColor: #a8f7e9;\n  --waterColor: #3a98ec;\n  --waterColor40: rgba(58, 152, 236, 0.4);\n  --waterCompareColor: #abd4fa;\n  --multiColor: #e3b82a;\n  --multiCompareColor: #ffd597;\n  --redPrimary: #d25959;\n  --greyBright: #e0e0e0;\n  --greyDark: #7b7b7b;\n  --textWhite: #ffffff;\n  --softGrey: #a0a0a0;\n  --darkLight: #25262b;\n  --darkLight2: #121212;\n  --textFont: Lato, sans-serif;\n  --greyLinearGradientBackground: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  --multiColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColorRadialGradientTrans: radial-gradient(circle, #d87b39 0%, rgba(255, 255, 255, 0) 100%);\n  --waterColorRadialGradientTrans: radial-gradient(circle, #3a98ec 0%, rgba(255, 255, 255, 0) 100%);\n  --gasColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --multiColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  --elecColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(158, 67, 2, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #d87b39;\n  --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8;\n  --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec;\n}\n\n.application {\n  overflow-x: hidden;\n  background-color: #121212;\n}\n\n.accordion-icon {\n  color: #ffffff;\n}\n\n.loaderContainer {\n  height: 80vh;\n  justify-content: center;\n  display: flex;\n}", ""]);
+exports.push([module.i, "/* Cozy UI utilities classes */\n/* Cozy UI React components styles */\n/* App styles */\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nhtml {\n  background: #121212;\n}\n\nbody {\n  background: #121212;\n  overflow: unset !important;\n}\n\n.column {\n  display: flex;\n  flex-direction: column;\n}\n\n.row {\n  display: flex;\n  flex-direction: row;\n}\n\n.cozy-bar {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-left: 0;\n}\n\n[role=banner] .coz-bar-container {\n  background-color: #ffffff;\n}\n@media only screen and (max-width : 768px) {\n  [role=banner] .coz-bar-container {\n    padding: 0.6rem 0 0 0;\n    background-color: unset;\n  }\n}\n\n.coz-bar-wrapper {\n  box-shadow: unset !important;\n  background: unset !important;\n}\n\n.coz-label {\n  color: #32363f;\n}\n\n.content-view-loading {\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  color: #e0e0e0;\n}\n.content-view-loading .content-view-loading-text {\n  padding-top: 1rem;\n  margin: 0 2rem;\n  text-align: center;\n}\n.content-view-loading .content-view-loading-button {\n  max-width: 50vw;\n  margin-top: 1rem;\n}\n\n[role=main] {\n  /* width */\n  /* Track */\n  /* Handle */\n}\n[role=main]::-webkit-scrollbar {\n  width: 10px;\n}\n[role=main]::-webkit-scrollbar-track {\n  background: #3e4045;\n}\n[role=main]::-webkit-scrollbar-thumb {\n  background: #6f7074;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n* {\n  font-family: Lato, sans-serif;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np {\n  color: #a0a0a0;\n  font-family: Lato, sans-serif;\n}\n\n.home-title {\n  font-size: 1rem;\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 120%;\n  text-transform: uppercase;\n}\n\n.app-title {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 21px;\n  line-height: 24px;\n  text-align: center;\n  letter-spacing: 0.15px;\n  color: #e0e0e0;\n  text-shadow: 0px -1px 0px #060609, 0px 1px 0px rgba(255, 255, 255, 0.07);\n}\n\n.text-10, .text-10-italic, .text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase, .text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-style: normal;\n  font-size: 0.625rem;\n  line-height: 120%;\n}\n.text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-weight: normal;\n}\n.text-10-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-10-normal-150 {\n  line-height: 150%;\n}\n.text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase {\n  font-weight: 700;\n}\n.text-10-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-10-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-10-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-14, .text-14-italic, .text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase, .text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-style: normal;\n  font-size: 0.875rem;\n  line-height: 120%;\n}\n.text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-weight: normal;\n}\n.text-14-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-14-normal-150 {\n  line-height: 150%;\n}\n.text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase {\n  font-weight: 700;\n}\n.text-14-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-14-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-14-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-15, .text-15-italic, .text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase, .text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-style: normal;\n  font-size: 0.938rem;\n  line-height: 120%;\n}\n.text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-weight: normal;\n}\n.text-15-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-15-normal-150 {\n  line-height: 150%;\n}\n.text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase {\n  font-weight: 700;\n}\n.text-15-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-15-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-15-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-16, .text-16-italic, .text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase, .text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-style: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n.text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-weight: normal;\n}\n.text-16-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-16-normal-150 {\n  line-height: 150%;\n}\n.text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase {\n  font-weight: 700;\n}\n.text-16-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-16-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-16-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-18, .text-18-italic, .text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase, .text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-style: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n}\n.text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-weight: normal;\n}\n.text-18-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-18-normal-150 {\n  line-height: 150%;\n}\n.text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase {\n  font-weight: 700;\n}\n.text-18-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-18-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-18-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-19, .text-19-italic, .text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase, .text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-style: normal;\n  font-size: 1.188rem;\n  line-height: 120%;\n}\n.text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-weight: normal;\n}\n.text-19-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-19-normal-150 {\n  line-height: 150%;\n}\n.text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase {\n  font-weight: 700;\n}\n.text-19-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-19-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-19-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-20, .text-20-italic, .text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase, .text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-style: normal;\n  font-size: 1.25rem;\n  line-height: 120%;\n}\n.text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-weight: normal;\n}\n.text-20-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-20-normal-150 {\n  line-height: 150%;\n}\n.text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase {\n  font-weight: 700;\n}\n.text-20-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-20-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-20-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-21, .text-21-italic, .text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase, .text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-style: normal;\n  font-size: 1.313rem;\n  line-height: 120%;\n}\n.text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-weight: normal;\n}\n.text-21-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-21-normal-150 {\n  line-height: 150%;\n}\n.text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase {\n  font-weight: 700;\n}\n.text-21-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-21-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-21-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-22, .text-22-italic, .text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase, .text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-style: normal;\n  font-size: 1.375rem;\n  line-height: 120%;\n}\n.text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-weight: normal;\n}\n.text-22-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-22-normal-150 {\n  line-height: 150%;\n}\n.text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase {\n  font-weight: 700;\n}\n.text-22-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-22-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-22-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-24, .text-24-italic, .text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase, .text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-style: normal;\n  font-size: 1.5rem;\n  line-height: 120%;\n}\n.text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-weight: normal;\n}\n.text-24-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-24-normal-150 {\n  line-height: 150%;\n}\n.text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase {\n  font-weight: 700;\n}\n.text-24-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-24-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-24-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-26, .text-26-italic, .text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase, .text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-style: normal;\n  font-size: 1.625rem;\n  line-height: 120%;\n}\n.text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-weight: normal;\n}\n.text-26-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-26-normal-150 {\n  line-height: 150%;\n}\n.text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase {\n  font-weight: 700;\n}\n.text-26-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-26-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-26-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-28, .text-28-italic, .text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase, .text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-style: normal;\n  font-size: 1.75rem;\n  line-height: 120%;\n}\n.text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-weight: normal;\n}\n.text-28-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-28-normal-150 {\n  line-height: 150%;\n}\n.text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase {\n  font-weight: 700;\n}\n.text-28-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-28-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-28-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-36, .text-36-italic, .text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase, .text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-style: normal;\n  font-size: 2.25rem;\n  line-height: 120%;\n}\n.text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-weight: normal;\n}\n.text-36-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-36-normal-150 {\n  line-height: 150%;\n}\n.text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase {\n  font-weight: 700;\n}\n.text-36-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-36-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-36-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n/* Card */\n.card-title-on {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text-bold {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-indicator {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/* Chart */\n.chart-ticks-x-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-x-text {\n    font-size: 0.685rem;\n  }\n}\n\n.chart-ticks-y-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 0.9rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-y-text {\n    font-size: 0.75rem;\n  }\n}\n\n/* Cozy bar */\n.cozybar {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1.3125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.axis {\n  color: #7b7b7b;\n}\n.axis .tick-text {\n  fill: #7b7b7b;\n}\n.axis .tick-text.tick-text-selected {\n  fill: #e0e0e0;\n}\n.axis .separator {\n  text-align: center;\n  margin: 0 2px;\n  font-size: 1rem !important;\n}\n\n.value-text {\n  fill: #7b7b7b;\n}\n.value-text.selected {\n  fill: #e0e0e0;\n}\n\n.barContainer:hover,\n.barFill:hover {\n  cursor: pointer;\n}\n\n.background-true {\n  opacity: 0.1;\n}\n.background-true:hover {\n  cursor: pointer;\n}\n\n.background-false {\n  opacity: 0;\n}\n\n.bar-compare-ELECTRICITY:hover,\n.bar-compare-GAS:hover,\n.bar-compare-WATER:hover,\n.bar-compare-MULTIFLUID:hover,\n.bar-MULTIFLUID:hover,\n.bar-WATER:hover,\n.bar-GAS:hover,\n.bar-ELECTRICITY:hover {\n  cursor: pointer;\n}\n\n.bar-ELECTRICITY {\n  fill: #5d3d2a;\n}\n.bar-ELECTRICITY.selected {\n  fill: #d87b39;\n  filter: drop-shadow(0 -0.1rem 0.2rem #d87b39);\n}\n\n.bar-compare-ELECTRICITY {\n  fill: #795c47;\n}\n.bar-compare-ELECTRICITY.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.bar-WATER {\n  fill: #20415e;\n}\n.bar-WATER.selected {\n  fill: #3a98ec;\n  filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec);\n}\n\n.bar-compare-WATER {\n  fill: #4d5c6e;\n}\n.bar-compare-WATER.selected {\n  fill: #abd4fa;\n  filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa);\n}\n\n.bar-GAS {\n  fill: #184940;\n}\n.bar-GAS.selected {\n  fill: #45d1b8;\n  filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8);\n}\n\n.bar-compare-GAS {\n  fill: #597773;\n}\n.bar-compare-GAS.selected {\n  fill: #a8f7e9;\n  filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9);\n}\n\n.bar-MULTIFLUID {\n  fill: #705d1d;\n}\n.bar-MULTIFLUID.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-MULTIFLUID.disabled:hover {\n  cursor: default;\n}\n\n.bar-duel {\n  fill: #61f0f2;\n}\n.bar-duel.selected {\n  fill: #61f0f2;\n  filter: drop-shadow(0 -0.1rem 0.2rem #61f0f2);\n}\n.bar-duel.disabled:hover {\n  cursor: default;\n}\n\n.bar-UNCOMING {\n  fill: #242633;\n  opacity: 0.6;\n}\n.bar-UNCOMING.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-UNCOMING.disabled:hover {\n  cursor: default;\n}\n\n.bar-compare-MULTIFLUID {\n  fill: #7d6a4e;\n}\n.bar-compare-MULTIFLUID.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n.bar-average {\n  stroke-width: 2;\n  stroke: #e3b82a;\n}\n\n.week {\n  fill: #e2bca1;\n}\n.week.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.weekend {\n  fill: #ffd597;\n}\n.weekend.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n/** Animation **/\n.bounce-1 {\n  animation-name: bounce-1;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-1 {\n  0% {\n    transform: scale(0.1, 0.1);\n  }\n  28% {\n    transform: scale(0.1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-2 {\n  animation-name: bounce-2;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-2 {\n  0% {\n    transform: scale(1, 1);\n  }\n  28% {\n    transform: scale(1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-3 {\n  animation-name: bounce-3;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n}\n\n@keyframes bounce-3 {\n  0% {\n    opacity: 0.6;\n    transform: scaleY(1);\n  }\n  50% {\n    transform: scaleY(1.1);\n    opacity: 0.8;\n  }\n  100% {\n    transform: scaleY(1);\n    opacity: 1;\n  }\n}\n/** Animatio ndelay **/\n.delay {\n  animation-duration: 0.4s;\n}\n\n.delay--0 {\n  animation-duration: 0.6s;\n}\n\n.delay--1 {\n  animation-duration: 0.7s;\n}\n\n.delay--2 {\n  animation-duration: 0.8s;\n}\n\n.delay--3 {\n  animation-duration: 0.9s;\n}\n\n.delay--4 {\n  animation-duration: 1s;\n}\n\n.delay--5 {\n  animation-duration: 1.1s;\n}\n\n.delay--6 {\n  animation-duration: 1.2s;\n}\n\n.delay--7 {\n  animation-duration: 1.3s;\n}\n\n.delay--8 {\n  animation-duration: 1.4s;\n}\n\n.delay--9 {\n  animation-duration: 1.5s;\n}\n\n.delay--10 {\n  animation-duration: 1.6s;\n}\n\n.delay--11 {\n  animation-duration: 1.8s;\n}\n\n.delay--12 {\n  animation-duration: 1.9s;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nbutton.btn-highlight {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  background-color: #e3b82a;\n  border: none;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-highlight span:first-child {\n  color: #000000;\n}\nbutton.btn-highlight:hover, button.btn-highlight:focus, button.btn-highlight.active, button.btn-highlight:disabled {\n  background-color: #b89318;\n}\nbutton.btn-highlight:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-primary-positive {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #121212;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-primary-positive span:first-child {\n  color: #e3b82a;\n}\nbutton.btn-primary-positive:hover, button.btn-primary-positive:focus, button.btn-primary-positive.active, button.btn-primary-positive:disabled {\n  background-color: rgba(18, 18, 18, 0.2);\n}\nbutton.btn-primary-positive:hover span:first-child, button.btn-primary-positive:focus span:first-child, button.btn-primary-positive.active span:first-child, button.btn-primary-positive:disabled span:first-child {\n  color: rgba(227, 184, 42, 0.7);\n}\nbutton.btn-primary-positive:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-primary-negative {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #7b7b7b;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-primary-negative span:first-child {\n  color: #e3b82a;\n}\nbutton.btn-primary-negative:hover, button.btn-primary-negative:focus, button.btn-primary-negative.active, button.btn-primary-negative:disabled {\n  background-color: rgba(123, 123, 123, 0.2);\n}\nbutton.btn-primary-negative:hover span:first-child, button.btn-primary-negative:focus span:first-child, button.btn-primary-negative.active span:first-child, button.btn-primary-negative:disabled span:first-child {\n  color: rgba(227, 184, 42, 0.7);\n}\nbutton.btn-primary-negative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-secondary {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #7b7b7b;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-secondary span:first-child {\n  color: #f1c017;\n}\nbutton.btn-secondary:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-secondary-positive {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #121212;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-secondary-positive span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-secondary-positive:hover, button.btn-secondary-positive:focus, button.btn-secondary-positive.active, button.btn-secondary-positive:disabled {\n  background-color: rgba(18, 18, 18, 0.2);\n}\nbutton.btn-secondary-positive:hover span:first-child, button.btn-secondary-positive:focus span:first-child, button.btn-secondary-positive.active span:first-child, button.btn-secondary-positive:disabled span:first-child {\n  color: rgba(224, 224, 224, 0.7);\n}\nbutton.btn-secondary-positive:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-secondary-negative {\n  background: transparent;\n  background-color: transparent;\n  border: 1px solid #7b7b7b;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-secondary-negative span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-secondary-negative:hover, button.btn-secondary-negative:focus, button.btn-secondary-negative.active, button.btn-secondary-negative:disabled {\n  background-color: rgba(123, 123, 123, 0.2);\n}\nbutton.btn-secondary-negative:hover span:first-child, button.btn-secondary-negative:focus span:first-child, button.btn-secondary-negative.active span:first-child, button.btn-secondary-negative:disabled span:first-child {\n  color: rgba(224, 224, 224, 0.7);\n}\nbutton.btn-secondary-negative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-off {\n  background: #121212;\n  background-color: #121212;\n  border: 1px solid rgba(97, 240, 242, 0.5);\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-off span:first-child {\n  color: #ffffff;\n}\nbutton.btn-duel-off:hover, button.btn-duel-off:focus, button.btn-duel-off.active, button.btn-duel-off:disabled {\n  background-color: black;\n}\nbutton.btn-duel-off:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-active {\n  border-radius: 4px !important;\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  background-color: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  border: none;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-active span:first-child {\n  color: #121212;\n}\nbutton.btn-duel-active:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-duel-on {\n  background: radial-gradient(60.65% 30.62% at 50% 3.13%, #2a2b30 0%, #1b1c22 100%);\n  background-color: #121212;\n  border: 1px solid #58ffff;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-duel-on span:first-child {\n  color: #ffffff;\n}\nbutton.btn-duel-on:hover, button.btn-duel-on:focus, button.btn-duel-on.active, button.btn-duel-on:disabled {\n  background-color: black;\n}\nbutton.btn-duel-on:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-profile-next {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  background-color: #e3b82a;\n  border: 1px solid #e3b82a;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-profile-next span:first-child {\n  color: #000000;\n}\nbutton.btn-profile-next:hover, button.btn-profile-next:focus, button.btn-profile-next.active, button.btn-profile-next:disabled {\n  background-color: #b89318;\n}\nbutton.btn-profile-next:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btn-profile-back {\n  background: none;\n  background-color: none;\n  border: 1px solid #e0e0e0;\n  border-radius: 2px;\n  margin: 1.5rem 0 0;\n  width: 100%;\n  text-transform: initial;\n  cursor: pointer;\n}\nbutton.btn-profile-back span:first-child {\n  color: #e0e0e0;\n}\nbutton.btn-profile-back:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.card {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  box-sizing: border-box;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  border-radius: 4px;\n  padding: 16px;\n}\n.card:hover {\n  background: linear-gradient(180deg, rgba(70, 71, 77, 0.7) 0%, rgba(57, 58, 63, 0.7) 100%);\n}\n.card.rich-card {\n  padding: 24px 16px;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.modal-root .MuiBackdrop-root {\n  background-color: hsla(231deg, 11%, 12%, 0.85);\n}\n\ndiv.modal-paper {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 36rem;\n  max-width: 100%;\n  max-height: 90vh;\n  padding: 2rem;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  margin: 0 0 0 13.75rem;\n  align-items: center;\n  color: #ffffff;\n}\n@media only screen and (max-width : 1023px) {\n  div.modal-paper {\n    width: 35rem;\n    margin: 0;\n  }\n}\n@media only screen and (max-width : 768px) {\n  div.modal-paper {\n    padding: 1rem 1rem 1.5rem;\n    width: 85%;\n    max-width: 35rem;\n    margin: 0;\n  }\n}\ndiv.modal-paper.no-padding {\n  padding: 0;\n}\ndiv.modal-paper.blue-border {\n  border: 1px solid rgba(88, 255, 255, 0.2509803922);\n}\ndiv.modal-paper.blue-light-border {\n  border: 1px solid #61f0f2;\n}\ndiv.modal-paper.yellow-border {\n  border: 1px solid rgba(227, 184, 42, 0.4);\n}\ndiv.modal-paper .modal-paper-close-button {\n  position: absolute;\n  top: 0.5rem;\n  right: 0.5rem;\n  padding: 5px 5px;\n  z-index: 10;\n}\n\ndiv.modal-paper-full-screen {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 100%;\n  max-width: 100%;\n  height: 100%;\n  max-height: 100%;\n  padding: 0;\n  margin: 0;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  color: #ffffff;\n  display: flex;\n  align-items: center;\n}\ndiv.modal-paper-full-screen.dark-background {\n  background: #121212;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.expansion-panel-root {\n  margin: 1.2rem 0;\n  color: #e0e0e0;\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border-radius: 4px;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  transition: background-color 0.6s ease;\n  box-sizing: border-box;\n}\ndiv.expansion-panel-root.Mui-expanded:first-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.Mui-expanded:last-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.red-border {\n  border: 1px solid #d25959;\n}\n\ndiv.expansion-panel-summary {\n  padding: 0.25rem 1.2rem;\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-focused {\n  border-radius: 4px;\n  background-color: unset;\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\ndiv.expansion-panel-summary.Mui-expanded {\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-expanded.small {\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.small {\n  padding: 0 1.2rem;\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.bold-text {\n  font-weight: bold;\n}\n\ndiv.expansion-panel-content {\n  display: flex;\n  align-items: center;\n}\ndiv.expansion-panel-content.Mui-expanded {\n  margin: 0.75rem 0;\n}\n\ndiv.expansion-panel-details {\n  padding: 0 1.2rem 1.2rem;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\na {\n  color: #deaf0e;\n}\na:visited {\n  color: #deaf0e;\n}\n\na:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 1px #e0e0e0;\n}\na:focus > div:first-child {\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\n\na.MuiLink-underlineHover:hover {\n  text-decoration: none;\n}\n\na.MuiTypography-colorPrimary {\n  color: #e0e0e0;\n}\n\n:root {\n  white-space: pre-line;\n  --blue: #58ffff;\n  --blue40: rgba(88, 255, 255, 0.2509803922);\n  --blueBackground: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradientTrans: radial-gradient(circle, #58ffff 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColor: #d87b39;\n  --elecColor40: rgba(216, 123, 57, 0.4);\n  --elecCompareColor: #e2bca1;\n  --gasColor: #45d1b8;\n  --gasColor40: rgba(69, 209, 184, 0.4);\n  --gasCompareColor: #a8f7e9;\n  --waterColor: #3a98ec;\n  --waterColor40: rgba(58, 152, 236, 0.4);\n  --waterCompareColor: #abd4fa;\n  --multiColor: #e3b82a;\n  --multiCompareColor: #ffd597;\n  --redPrimary: #d25959;\n  --greyBright: #e0e0e0;\n  --greyDark: #7b7b7b;\n  --textWhite: #ffffff;\n  --softGrey: #a0a0a0;\n  --darkLight: #25262b;\n  --darkLight2: #121212;\n  --textFont: Lato, sans-serif;\n  --greyLinearGradientBackground: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  --multiColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColorRadialGradientTrans: radial-gradient(circle, #d87b39 0%, rgba(255, 255, 255, 0) 100%);\n  --waterColorRadialGradientTrans: radial-gradient(circle, #3a98ec 0%, rgba(255, 255, 255, 0) 100%);\n  --gasColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --multiColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  --elecColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(158, 67, 2, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #d87b39;\n  --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8;\n  --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec;\n}\n\n.application {\n  overflow-x: hidden;\n  background-color: #121212;\n}\n\n.accordion-icon {\n  color: #ffffff;\n}\n\n.loaderContainer {\n  height: 80vh;\n  justify-content: center;\n  display: flex;\n}", ""]);
 
 
 
diff --git a/index.html b/index.html
index 8d969372edfb625fa303f3d527a75afe7d49198d..b7e0327f0748f70fc76d15df18a38641ef221870 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.77ab24693fc6c3417c89.js"></script><script src="app/ecolyo.1813cb642a5c7380cd4c.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.18c101a0fa585f93c419.js"></script><script src="app/ecolyo.2191be4f765ced62bfce.js"></script></div></body></html>
\ No newline at end of file
diff --git a/services/aggregatorUsageEvents/ecolyo.js b/services/aggregatorUsageEvents/ecolyo.js
index 459e32a186080247574be9dfeb5aaa1dc0c04028..22d6ddec46103a88d321891e9509b7dc9544b4c3 100644
--- a/services/aggregatorUsageEvents/ecolyo.js
+++ b/services/aggregatorUsageEvents/ecolyo.js
@@ -97837,6 +97837,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -97847,6 +97848,8 @@ exports.isKonnectorActive = isKonnectorActive;
 
 var _ecogesture = __webpack_require__(740);
 
+var _fluidSlug = __webpack_require__(121);
+
 var _get = _interopRequireDefault(__webpack_require__(276));
 
 var _luxon = __webpack_require__(128);
@@ -97873,6 +97876,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
diff --git a/services/consumptionAlert/ecolyo.js b/services/consumptionAlert/ecolyo.js
index 651afffac7c3f509f99c9ef8f2cf6b2950991813..ad1ad9043322503c45ab29b3024c5f6c526398e8 100644
--- a/services/consumptionAlert/ecolyo.js
+++ b/services/consumptionAlert/ecolyo.js
@@ -17583,7 +17583,26 @@ exports.FluidState = FluidState;
 })(FluidState || (exports.FluidState = FluidState = {}));
 
 /***/ }),
-/* 121 */,
+/* 121 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.FluidSlugType = void 0;
+let FluidSlugType;
+exports.FluidSlugType = FluidSlugType;
+
+(function (FluidSlugType) {
+  FluidSlugType["ELECTRICITY"] = "enedissgegrandlyon";
+  FluidSlugType["WATER"] = "eglgrandlyon";
+  FluidSlugType["GAS"] = "grdfgrandlyon";
+})(FluidSlugType || (exports.FluidSlugType = FluidSlugType = {}));
+
+/***/ }),
 /* 122 */,
 /* 123 */
 /***/ (function(module, exports, __webpack_require__) {
@@ -95511,6 +95530,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -95521,6 +95541,8 @@ exports.isKonnectorActive = isKonnectorActive;
 
 var _ecogesture = __webpack_require__(740);
 
+var _fluidSlug = __webpack_require__(121);
+
 var _get = _interopRequireDefault(__webpack_require__(276));
 
 var _luxon = __webpack_require__(128);
@@ -95547,6 +95569,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
diff --git a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
index 15bc8ffec7aed8b89c6f70a23a3e2394c739d868..acf943ffad24c5c5b87ce2195ab4a77d6134fe9a 100644
--- a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
+++ b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
@@ -17583,7 +17583,26 @@ exports.FluidState = FluidState;
 })(FluidState || (exports.FluidState = FluidState = {}));
 
 /***/ }),
-/* 121 */,
+/* 121 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.FluidSlugType = void 0;
+let FluidSlugType;
+exports.FluidSlugType = FluidSlugType;
+
+(function (FluidSlugType) {
+  FluidSlugType["ELECTRICITY"] = "enedissgegrandlyon";
+  FluidSlugType["WATER"] = "eglgrandlyon";
+  FluidSlugType["GAS"] = "grdfgrandlyon";
+})(FluidSlugType || (exports.FluidSlugType = FluidSlugType = {}));
+
+/***/ }),
 /* 122 */,
 /* 123 */
 /***/ (function(module, exports, __webpack_require__) {
@@ -95511,6 +95530,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -95521,6 +95541,8 @@ exports.isKonnectorActive = isKonnectorActive;
 
 var _ecogesture = __webpack_require__(740);
 
+var _fluidSlug = __webpack_require__(121);
+
 var _get = _interopRequireDefault(__webpack_require__(276));
 
 var _luxon = __webpack_require__(128);
@@ -95547,6 +95569,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
diff --git a/services/fluidsPrices/ecolyo.js b/services/fluidsPrices/ecolyo.js
index 6694aaf7ad36a142b2fde1800eb7adc6596a5a08..7f816d26f578d50191f09ee4de81ba3dd5257ddf 100644
--- a/services/fluidsPrices/ecolyo.js
+++ b/services/fluidsPrices/ecolyo.js
@@ -17583,7 +17583,26 @@ exports.FluidState = FluidState;
 })(FluidState || (exports.FluidState = FluidState = {}));
 
 /***/ }),
-/* 121 */,
+/* 121 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.FluidSlugType = void 0;
+let FluidSlugType;
+exports.FluidSlugType = FluidSlugType;
+
+(function (FluidSlugType) {
+  FluidSlugType["ELECTRICITY"] = "enedissgegrandlyon";
+  FluidSlugType["WATER"] = "eglgrandlyon";
+  FluidSlugType["GAS"] = "grdfgrandlyon";
+})(FluidSlugType || (exports.FluidSlugType = FluidSlugType = {}));
+
+/***/ }),
 /* 122 */,
 /* 123 */
 /***/ (function(module, exports, __webpack_require__) {
@@ -95511,6 +95530,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -95521,6 +95541,8 @@ exports.isKonnectorActive = isKonnectorActive;
 
 var _ecogesture = __webpack_require__(740);
 
+var _fluidSlug = __webpack_require__(121);
+
 var _get = _interopRequireDefault(__webpack_require__(276));
 
 var _luxon = __webpack_require__(128);
@@ -95547,6 +95569,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
diff --git a/services/monthlyReportNotification/ecolyo.js b/services/monthlyReportNotification/ecolyo.js
index 465c6f8807e98e6ba275c211bcdcc991bc349ab4..38965b37d373547e5c970ba88e7f8ee9a8e428b1 100644
--- a/services/monthlyReportNotification/ecolyo.js
+++ b/services/monthlyReportNotification/ecolyo.js
@@ -17583,7 +17583,26 @@ exports.FluidState = FluidState;
 })(FluidState || (exports.FluidState = FluidState = {}));
 
 /***/ }),
-/* 121 */,
+/* 121 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.FluidSlugType = void 0;
+let FluidSlugType;
+exports.FluidSlugType = FluidSlugType;
+
+(function (FluidSlugType) {
+  FluidSlugType["ELECTRICITY"] = "enedissgegrandlyon";
+  FluidSlugType["WATER"] = "eglgrandlyon";
+  FluidSlugType["GAS"] = "grdfgrandlyon";
+})(FluidSlugType || (exports.FluidSlugType = FluidSlugType = {}));
+
+/***/ }),
 /* 122 */,
 /* 123 */
 /***/ (function(module, exports, __webpack_require__) {
@@ -95511,6 +95530,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.formatNumberValues = formatNumberValues;
 exports.getChallengeTitleWithLineReturn = void 0;
 exports.getFluidType = getFluidType;
+exports.getKonnectorSlug = getKonnectorSlug;
 exports.getKonnectorUpdateError = getKonnectorUpdateError;
 exports.getMonthNameWithPrep = exports.getMonthName = void 0;
 exports.getRelationship = getRelationship;
@@ -95521,6 +95541,8 @@ exports.isKonnectorActive = isKonnectorActive;
 
 var _ecogesture = __webpack_require__(740);
 
+var _fluidSlug = __webpack_require__(121);
+
 var _get = _interopRequireDefault(__webpack_require__(276));
 
 var _luxon = __webpack_require__(128);
@@ -95547,6 +95569,22 @@ function getFluidType(type) {
   }
 }
 
+function getKonnectorSlug(fluidType) {
+  switch (fluidType) {
+    case _fluid.FluidType.ELECTRICITY:
+      return _fluidSlug.FluidSlugType.ELECTRICITY;
+
+    case _fluid.FluidType.WATER:
+      return _fluidSlug.FluidSlugType.WATER;
+
+    case _fluid.FluidType.GAS:
+      return _fluidSlug.FluidSlugType.GAS;
+
+    default:
+      throw new Error('unknown fluidtype');
+  }
+}
+
 function getKonnectorUpdateError(type) {
   switch (type.toUpperCase()) {
     case 'USER_ACTION_NEEDED.OAUTH_OUTDATED':
diff --git a/vendors/ecolyo.77ab24693fc6c3417c89.js b/vendors/ecolyo.18c101a0fa585f93c419.js
similarity index 99%
rename from vendors/ecolyo.77ab24693fc6c3417c89.js
rename to vendors/ecolyo.18c101a0fa585f93c419.js
index 0cd934e54f7b32a8704471d73ecd08729eb9ec5b..dcb69698ca2476cbce7a2c59ccb2796391b33d61 100644
--- a/vendors/ecolyo.77ab24693fc6c3417c89.js
+++ b/vendors/ecolyo.18c101a0fa585f93c419.js
@@ -33609,15 +33609,13 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.WebviewMessenger = exports.DebugWebviewMessenger = void 0;
 
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
 var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
 
 var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
 
 var _postMe = __webpack_require__("c4kq");
 
-var WebviewMessenger = /*#__PURE__*/(0, _createClass2.default)(function WebviewMessenger(windowRef) {
+var WebviewMessenger = function WebviewMessenger(windowRef) {
   var _this = this;
 
   (0, _classCallCheck2.default)(this, WebviewMessenger);
@@ -33645,7 +33643,8 @@ var WebviewMessenger = /*#__PURE__*/(0, _createClass2.default)(function WebviewM
     return removeMessageListener;
   });
   this.windowRef = windowRef;
-});
+};
+
 exports.WebviewMessenger = WebviewMessenger;
 
 var DebugWebviewMessenger = function DebugWebviewMessenger(messenger) {
@@ -198053,13 +198052,11 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.WebviewService = void 0;
 
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
 var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
 
 var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
 
-var WebviewService = /*#__PURE__*/(0, _createClass2.default)(function WebviewService(connection) {
+var WebviewService = function WebviewService(connection) {
   var _this = this;
 
   (0, _classCallCheck2.default)(this, WebviewService);
@@ -198082,7 +198079,8 @@ var WebviewService = /*#__PURE__*/(0, _createClass2.default)(function WebviewSer
   this.close = function () {
     return connection.close();
   };
-});
+};
+
 exports.WebviewService = WebviewService;
 
 /***/ }),
@@ -283275,16 +283273,18 @@ exports.isWebDevMode = exports.isNativeDevMode = exports.interpolate = exports.g
 
 var _construct2 = _interopRequireDefault(__webpack_require__("sXyB"));
 
+var _toConsumableArray2 = _interopRequireDefault(__webpack_require__("RIqP"));
+
 var interpolate = function interpolate(str, params) {
   if (!params) return str;
   var names = Object.keys(params);
   var vals = Object.values(params); // I do not see security risks here, we're not executing user input
   // eslint-disable-next-line @typescript-eslint/no-implied-eval
 
-  var makeInterpolate = (0, _construct2.default)(Function, names.concat(["return `".concat(str, "`;")]));
+  var makeInterpolate = (0, _construct2.default)(Function, (0, _toConsumableArray2.default)(names).concat(["return `".concat(str, "`;")]));
 
   try {
-    return makeInterpolate.apply(void 0, vals);
+    return makeInterpolate.apply(void 0, (0, _toConsumableArray2.default)(vals));
   } catch (error) {
     // String template and params did not match
     return str;
@@ -287905,8 +287905,8 @@ var WebviewIntentProvider = function WebviewIntentProvider(_ref2) {
 
   var setBarWebviewContext = setBarContext || getBarInitAPI();
   (0, _react.useEffect)(function () {
-    !connection && !webviewService && isValidEnv() && getConnection(setConnection, methods).catch(log);
-  }, [connection, webviewService, methods]);
+    !connection && !webviewService && isValidEnv() && getConnection(setConnection, methods);
+  }, [connection, webviewService]);
   (0, _react.useEffect)(function () {
     !service && connection && setService(new _api.WebviewService(connection));
   }, [service, connection]);
@@ -379421,8 +379421,6 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.NativeMessenger = exports.DebugNativeMessenger = void 0;
 
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
 var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
 
 var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
@@ -379432,7 +379430,8 @@ var _postMe = __webpack_require__("c4kq");
 var _api = __webpack_require__("onNx");
 
 var log = (0, _postMe.debug)('NativeMessenger');
-var NativeMessenger = /*#__PURE__*/(0, _createClass2.default)(function NativeMessenger(webviewRef) {
+
+var NativeMessenger = function NativeMessenger(webviewRef) {
   var _this = this;
 
   (0, _classCallCheck2.default)(this, NativeMessenger);
@@ -379465,7 +379464,8 @@ var NativeMessenger = /*#__PURE__*/(0, _createClass2.default)(function NativeMes
     });
   });
   this.injectJavaScript = webviewRef.injectJavaScript;
-});
+};
+
 exports.NativeMessenger = NativeMessenger;
 
 var DebugNativeMessenger = function DebugNativeMessenger(messenger) {