function shortPathWithDistances(graph, start, end) {
  const distances = {};
  const visited = new Set();
  const path = {};
  const edgeWeights = {}; // Новый объект для хранения весов ребер
  for (const key in graph) {
    if (key !== start) {
      distances[key] = Infinity;
    } else {
      distances[start] = 0;
    }
  }
  while (!visited.has(end)) {
    let lowestDistance = Infinity;
    let node = null;
    for (const key in distances) {
      if (lowestDistance > distances[key] && !visited.has(key)) {
        lowestDistance = distances[key];
        node = key;
      }
    }
    const neighbors = graph[node];
    for (const key in neighbors) {
      const newDistance = distances[node] + neighbors[key];
      if (newDistance < distances[key]) {
        distances[key] = newDistance;
        path[key] = node;
        edgeWeights[key] = neighbors[key]; // Сохраняем вес ребра
      }
    }
    visited.add(node);
  }
  const shortPath = [];
  let current = end;
  while (current !== start) {
    const currentWithDistance = { node: current, edgeWeight: edgeWeights[current] };
    shortPath.unshift(currentWithDistance);
    current = path[current];
  }
  shortPath.unshift({ node: start, edgeWeight: 0 });
  return shortPath;
}# Dockerfile
...
# Установка прав доступа в скрипте инициализации
COPY ./set-permissions.sh /usr/local/bin/set-permissions.sh
RUN chmod +x /usr/local/bin/set-permissions.sh
# Запуск скрипта при старте контейнера
ENTRYPOINT ["set-permissions.sh"]
CMD ["apache2-foreground"]# set-permissions.sh
#!/bin/bash
chmod o+w /app/web/uploads
chmod o+w /app/web/uploads/result
exec "$@"function watcher() {
  gulp.watch('./src/style.css', { delay: 500 }, styles);
}
// в данном случае будет задержка в полсекунды после сохранения файла.      LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=но когда доходит до задач, у меня появляются проблемы
где свойства firstName, lastName можно читать и менять.
get firstName() {
   return this._firstName;
  }npx i create-react-appnpx create-react-app my-app      // выберите элемент, который вы хотите отслеживать
const targetNode = document.querySelector('.wpcf7-response-output');
let successText;
// создайте экземпляр MutationObserver
const observer = new MutationObserver(function(mutationsList) {
    for(let mutation of mutationsList) {
        if (mutation.type === 'childList') {
            // если тип мутации является childList (изменение дочерних элементов), то выполните действия
            successText = mutation.target.textContent;
            console.log(successText, 'in Observer');
        }
    }
});
// настройте параметры наблюдения
const config = { attributes: true, childList: true, subtree: true };
// начните отслеживать элемент
observer.observe(targetNode, config);
const submitBtns = document.querySelector('button');
submitBtns.addEventListener('click', function() {
      // изменяем контент через 3 сек после клика
      setTimeout(function() {
          document.querySelector('.wpcf7-response-output').textContent = 'New content';
      }, 3000);
      
  });сильно углубиться + изучать машинное обучение + профильный ЕГЭ по математике