Виктор Алеветдинов
Пепел помнит моё имя. Книга 1. Войны мёртвых частот

Часть I. Вход в коридор

Глава 1. Пыль на броне

12 августа 2058 года, 05:40–09:10

Западный въезд в Линский коридор. Станция Лин-Грузовой

Ступица на второй грузовой платформе перегрелась ещё до въезда в долину. Я заметил тёмную полосу смазки на диске, постучал кулаком по борту бронемашины и показал водителю на обочину. Тот сперва махнул рукой: колонна шла без остановок, разрыв между машинами запрещали увеличивать. Потом из ступицы потянуло горелым, и он принял вправо.

За бетонными опорами старого путепровода глухо разорвался снаряд. Пыль поднялась над промзоной и легла на дорогу серой стеной. Водитель приглушил двигатель, а я присел у колеса и приложил ладонь к кожуху. Металл обжёг через перчатку.

— Долго? — спросил старшина Нуриев из люка головной машины.

— Если подшипник цел, пять минут. Если нет — оставляем платформу.

— У тебя четыре.

Самат всегда давал на минуту меньше. Я снял защитную крышку, вытащил забитый пылью датчик и протёр контакты краем рукава. Подшипник не развалился, но автоматическая смазка перестала качать. Пыль прошла через треснувший уплотнитель и забила канал.

— В ведомости узел исправен, — сказал водитель, глядя на диагностическую панель.

— Панель колесо не крутила.

Я продавил смазку ручным шприцем, вернул датчик и затянул крышку. Температура пошла вниз. На экране всё это время горел зелёный знак полной исправности.

Колонна снова двинулась. Слева тянулись пустые цеха с выбитыми окнами, справа за насыпью шла железная дорога. Между рельсами стояли ржавые вагоны, сдвинутые в заграждение. Дальние разрывы приходили с востока. По карте первая линия проходила там, но из кузова я видел лишь пыль, крыши складов и опоры водовода над промзоной.

Разболтанный экран над нашим бортом стучал на каждой выбоине. Болт в переднем креплении вышел на два витка. Я подтянул его на ходу, пока Павел Громов упирался плечом в раму.

— Сорвёшь резьбу, — сказал он.

— Она и так сорвана.

— Тогда зачем тянешь?

— Чтобы доехать.

Павел усмехнулся и поправил гарнитуру. Кабель уходил под разгрузочный жилет и дальше к переносной станции связи. Он проверял канал каждые несколько минут, хотя штаб молчал с самого въезда.

— Гром, приём, — произнёс он. — Лин-Грузовой, подтверждение коридора.

В наушнике прошёл треск. Через несколько секунд ответил диспетчер станции:

— Коридор открыт. Следовать к третьему пакгаузу. Интервал не менять.

— Принял.

Павел посмотрел на меня и кивнул на гарнитуру: связь снова работала. Я показал ему ключ на семнадцать, которым только что затянул экран. До станции нам требовалось и то и другое.

У третьего пакгауза нас встретила площадка, на которой давно не было свободного места. Тягачи стояли нос к носу, между ними протискивались люди с ящиками и катушками кабеля. Автономные платформы ждали у разметки, но две мигали жёлтым: маршрут загрузили, проезд оставался перекрыт разбитым погрузчиком.

Самат спрыгнул на бетон и снял защитные очки. На лице остались светлые полосы, всё остальное покрывала пыль.

— Павел, поднимай связь в диспетчерской. Найди целый ввод, схеме на стене не верь. Кирилл, малый рой над западным въездом. Выше труб не лезь.

Павел ушёл внутрь пакгауза, а Кирилл Седов поставил кейс на землю. Из шести аппаратов два пришли с заменёнными винтами, поэтому Самат велел считать их запасом деталей. Он поджал губы, сел прямо на ящик и подключил пульт. На первом микродроне изображение дрожало от песчинки под подвесом.

— Турель ставишь у северной стены, — сказал Самат Роману Кулешову. — Сектор вдоль путей. До команды оружие от сети отключить.

— Она на сети лучше видит.

— Зато без сети сама не решит пострелять по погрузчику.

Роман похлопал по борту тягача, где под брезентом лежал старый пулемётный модуль. Его вычислительный блок заменили новым, а привод остался прежний, с двумя сварными швами на корпусе.

— Денис, потом посмотришь люфт. Вчера закусывало при повороте вправо.

— Потом — это после разгрузки.

— После разгрузки нас поставят на позицию.

— Значит, снимай привод сейчас.

Он выругался, но полез за инструментом. Самат тем временем остановил Марата Якубова, который выводил медицинскую платформу с аппарели.

— В ручном режиме веди до медпункта. Здесь метки перекрыты техникой.

— Она маршрут знает, — сказал Марат.

— Погрузчик тоже знал.

Марат перевёл платформу на поводок управления. Платформа пошла за ним, объезжая ящики с перевязочными пакетами. На борту оставался красный медицинский знак, наполовину стёртый прошлым ремонтом.

Мне досталась разгрузка технического имущества. Терминал выдал список, поставил зелёные отметки напротив контейнеров и потребовал подтвердить приём. На площадке стояли три серых бокса. В реестре значились четыре.

— Где комплект привода МП-4? — спросил я у кладовщика.

Он провёл браслетом над меткой и показал ячейку Д-двенадцать. Там лежали фильтры. После второй проверки кладовщик снял пломбу. Внутри оказались кассеты очистки воздуха, каждая в прозрачном пакете. На коробке стоял код привода. Наклейку напечатали поверх старой маркировки, и край начал отходить от пыльного пластика.

Кладовщик назвал это ошибкой упаковки и предложил оформить расхождение через снабжение. По экрану комплект приняли ещё на въезде. Снять отметку можно было только после пересчёта склада.

— Мне привод нужен сейчас, — сказал я. — Покажите платформу, с которой его приняли.

В журнале перевозки стоял номер платформы, которая шла второй в нашей колонне. Той самой, где перегрелась ступица. Я проверил её кузов, крепления под полом и боковой отсек. Привода не было. Водитель показал запись погрузки: контейнер отметили сканером, но камера в тот момент смотрела на закрытую аппарель.

Самат подошёл, выслушал кладовщика и заглянул в пустое крепление. Запись подтверждали два узла, но старшину интересовало, что нужно для работы сейчас.

— Целая шестерня и блок управления, — ответил я. — Из двух списанных приводов соберу один.

Я показал на разобранный модуль Романа. Электродвигатель ещё вращался, а редуктор клинило на последней четверти хода.

— Полчаса, если дадут место и питание.

— Двадцать минут, — решил Самат. — Оба списанных узла выдать Круглову. Их уже списали, пересчёта не будет.

Роман принёс первый привод из ремонтного контейнера. Корпус был пробит осколком, но редуктор сохранился. Второй сняли с разбитой погрузочной рамы: механика заклинила, зато блок управления отвечал на тест. Я разложил детали на резиновом коврике и закрыл их от пыли крышкой ящика.

— Помочь? — спросил Роман.

— Очисти разъём и найди уплотнительное кольцо.

— Новое?

— Целое.

Он ушёл к складу. Я разобрал редуктор, промыл зубья из баллона и увидел скол на ведущей шестерне. При повороте турель дёрнулась бы и потеряла цель. Пришлось переставлять весь вал, а он не входил в старый корпус на полмиллиметра.

Кирилл присел рядом и попросил сверло на восемь: у второго аппарата сломалось крепление камеры. Свободного инструмента не было, поэтому я дал ему сверло на семь и велел расширить отверстие вручную.

— Я оператор, а не слесарь.

— Сегодня это одна должность.

Первый микродрон поднялся между тягачами, качнулся от горячего воздуха над двигателями и ушёл к крыше пакгауза. Кирилл проводил его взглядом, потом взял сверло.

Вал вошёл после того, как я снял фаску. Блок управления пришлось закрепить на переходной пластине, вырезанной из крышки старого фильтра. Роман вернулся с кольцом и поставил рядом кружку воды. Я отодвинул её от стенда, пока мы не закончили сборку.

Мы подключили привод к стенду. Он дёрнулся, прошёл половину хода и остановился. На экране появилась ошибка датчика положения.

Роман предложил ждать новый узел. Я напомнил, что такой привод существует только в ведомости, и попросил снова подать питание.

Я ослабил крепление датчика, сместил его на толщину ногтя и велел Роману повторить тест. Привод прошёл полный сектор. На обратном ходе корпус завибрировал, но шестерни не закусило.

— На турели выдержит? — спросил он.

— Если не будешь гонять от упора до упора. После полного прохода нужна пауза.

Роман улыбнулся и унёс привод к северной стене. Я выпил воду, затем вернулся к терминалу. Кладовщик подготовил акт расхождения, но строка с комплектом МП-4 оставалась зелёной. Под ней появилась пустая белая строка без номера и подписи.

— Это что? — спросил я.

Терминал открыл пустое окно и запросил повторный вход. Кладовщик назвал строку сбоем синхронизации, но по моей просьбе сохранил снимок журнала до перезагрузки.

Он пожал плечами, сохранил экран и перезапустил терминал. Зелёная отметка вернулась. Белой строки не было, а в истории действий осталась запись о штатном обновлении.

Кладовщик показал чистый журнал и повторил, что ничего не случилось. Я посмотрел на три контейнера вместо четырёх: привод от перезагрузки не появился.

К восьми часам на площадку вошёл тяжёлый тягач с экспериментальным модулем. Контейнер отличался от остальных только новыми замками и отдельной линией охлаждения. На борту стояло название: «Свод». За тягачом шла старший лейтенант Вера Мельник в защитном шлеме, с планшетом под мышкой.

Она остановила разгрузку у самой разметки. Водитель потянулся к панели, но Вера велела заглушить двигатель.

— Вес по осям проверить вручную. Температуру снять внешним датчиком. Зелёные отметки не подтверждать, пока не увидите пломбы.

Кладовщик напомнил о проверке на въезде. Вера ответила, что там подтвердили передачу, а она принимает состояние контейнера. Тягач остался на месте, пока солдаты не принесли весовые датчики. Я помог поставить их под колёса. На задней оси вышел перевес в сто восемьдесят килограммов.

Вера сверила число с планшетом и подняла глаза на водителя. Показания на датчиках не менялись.

— В каком отсеке дополнительный груз?

Водитель отрицал перегруз. Мы открыли боковую панель. За штатным блоком охлаждения оказался второй аккумуляторный модуль, которого не было в приёмной схеме. Кабель уходил внутрь контейнера через опломбированный ввод.

По словам водителя, аккумулятор был резервом, установленным перед отправкой. Готовый приёмный лист он получил вместе с машиной.

Вера сфотографировала модуль и потребовала новый акт. Потом заметила мои грязные перчатки и разобранный стенд.

— Вы ремонтная группа?

— Рядовой Круглов. Техническое имущество и полевой ремонт.

— Причина несоответствия по приводу МП-4 установлена?

Кладовщик отвёл экран в сторону, и отвечать пришлось мне.

— Комплекта нет. Отметка есть. Привод собрали из двух списанных.

— Работает?

— На стенде работает.

— После установки проведите нагрузочный тест и запишите фактический ресурс как неизвестный. Не ставьте штатный срок.

— Он и так неизвестный.

— Тогда это должно быть видно следующей смене.

Я принял её за штабного специалиста, который приходит после ремонта и требует правильную запись. Но к контейнеру Вера не подпустила даже своего техника, пока лично не сверила замки, кабели и запас охлаждающей жидкости. Зелёные отметки на её планшете появлялись последними.

К девяти привод стоял на турели. Роман провёл модуль по северному сектору, остановил над путями и вернул к стене. На втором проходе переходная пластина нагрелась, но вибрация не усилилась.

— До ночи доживёт, — сказал он.

— После каждого полного прохода пауза пять секунд.

— В бою попросим дроны подождать.

— Тогда готовь запасной ручной поворот.

Самат услышал последние слова и велел Роману найти вороток. Кирилл сообщил, что западный въезд чист, хотя два микродрона потеряли изображение у старых цистерн. Павел восстановил связь через кабель диспетчерской и раздал нам новые частоты.

Я подключил гарнитуру к своему разъёму. Основной канал ответил голосом Павла, резервный — коротким шипением. На третьей частоте индикатор мигнул серым, хотя канал числился закрытым.

В наушнике прошло чужое дыхание. Один тяжёлый вдох, пауза и слабый скрежет, словно микрофон задел металл. Я снял гарнитуру, проверил штекер и вытер пыль из контактов.

— Гром, на третьем резервном помеха, — сказал я.

— Третий не назначен. Частота пустая.

— Там был звук.

— От цистерн отражение идёт. Кирилл камеры там потерял. Переключись на второй.

Я снова надел гарнитуру. Серый индикатор погас, дыхание не повторилось. На площадке ревели тягачи, турель проходила тестовый сектор, а контейнер «Свода» втягивал воздух через новые фильтры. Мне оставалось проверить крепления, записать температуру привода и закончить свой участок.

В 09:10 Кирилл передал с крыши, что на северо-востоке появились первые отметки малых аппаратов. Они шли далеко и пока не входили в наш сектор, но направление выводило их к станции после темноты. Самат приказал готовить ночные позиции, а я открыл кожух турели и начал ставить вороток для ручного поворота. Привода, которого не существовало на складе, должно было хватить до утра.

Глава 2. Кабель под насыпью

12 августа 2058 года, 14:20–19:00

Железнодорожная насыпь. Служебный тоннель 4-Б

Катушка застряла между шпалами через двадцать метров после станции. Павел тянул кабель со стороны насыпи, я толкал тележку сзади, но левое колесо упёрлось в щебень и соскочило с узкой доски. Катушка качнулась. Я навалился плечом на обод и успел остановить её, прежде чем оптоволокно прижало к рельсу.

— Стой, — сказал я. — Ещё раз дёрнешь, согнём волокно.

— Я не дёргал. Оно само решило остаться на станции.

— Подними край тележки.

Павел вернулся, взялся за раму. Мы поставили колесо на доску и протащили тележку до бетонной трубы под насыпью. Внутри оставалось место только для человека и катушки. Дальше кабель предстояло разматывать руками.

После утренней разгрузки Самат дал нам два часа на резервную линию. Радиоканал уже несколько раз проседал, хотя противник ещё не включал полное подавление. В диспетчерской голоса распадались на обрывки, а над путями связь пропадала при каждом проходе нашего разведывательного аппарата. Провод должен был связать станцию с передовой позицией у тоннеля 4-Б. На схеме расстояние составляло восемьсот метров. Катушка весила больше меня, и до входа в тоннель оставалось ещё две трети пути.

— Штаб любит провод, — сказал Павел, когда мы снова двинулись. — Его нельзя заглушить.

— Зато его можно перебить лопатой.

— Лопатой хотя бы видно, где перебили.

Он шёл впереди и укладывал кабель в тень бетонного борта. Я следил, чтобы оболочка не тёрлась об острый щебень. Через каждые пятьдесят метров мы крепили линию к старым скобам. Половина скоб расшаталась, поэтому приходилось сверлить новые отверстия ручным перфоратором. Аккумулятор сел после шестого крепления. Запасной показал сорок процентов, хотя утром его отметили заряженным.

Самат догнал нас у стрелочного перевода. Он нёс короткую лопату и две защитные трубы.

— Почему стоим?

— Батарея, — ответил я. — До тоннеля хватит, если не сверлить каждую точку.

— Не сверли. Закладывай за опоры.

Павел показал на открытый участок между насыпью и водоводом. Скоб не было.

— Там опор нет. Если оставить сверху, первая же платформа намотает линию.

Самат посмотрел на дорогу, где автономный тягач медленно обходил воронку. Колесо прошло рядом с кабелем.

— Прокопаете канаву до дренажа. Неглубоко. Главное, чтобы колесом не взяли.

— Два часа уже не получится, — сказал я.

— Тогда закончите позже. Связь нужна раньше ночи.

Он отдал мне лопату и пошёл к Кириллу. Тот сидел под бетонной опорой водовода, накрыв пульт куском ткани. Над трубами двигались три точки. Четвёртый микродрон стоял на ящике с раскрытым корпусом.

Мы сняли верхний слой щебня и уложили кабель в землю. Копать глубже мешали остатки старого силового ввода. Павел работал быстро, пока лезвие не ударило по металлу. Я остановил его и расчистил место рукой. Под щебнем лежал обрезок рельсовой перемычки.

— Здесь всё уже связано. Осталось понять, с чем.

— Не трогай. Обойдём справа.

Пока мы выводили линию к дренажу, один из аппаратов Кирилла резко пошёл вниз. Он ударился о водовод, отскочил и исчез за трубой. Второй развернулся на месте, потерял горизонт и сел на крышу разрушенного склада.

Кирилл выругался в общем канале. Картинка на пульте погасла.

— Седой, доклад, — потребовал Самат.

— Пыль закрыла переднюю камеру. У второго отражение от фермы, высоту не понимает.

— Третий веди ниже трубы.

— Там кабели и арматура.

— Тогда дальше не веди.

Кирилл вернул последний аппарат к опоре. На посадке тот задел винтом бетон и лёг на бок. Из четырёх машин, подготовленных к вылету, рядом с оператором остались две. Одна лежала из-за неудачной посадки, вторую Кирилл разбирал на ящике. Два аппарата предстояло искать по окончании смены.

Павел посоветовал оформить потерю как работу в сложной промышленной среде. Кирилл буркнул, что лучше запишет правду про датчик высоты, который видел препятствие не там, где оно находилось. Он снял с разбитого аппарата батарею и проверил корпус. Заряд ещё оставался, а передний лучевой датчик покрылся серым налётом. Пыль забивалась под стекло даже через уплотнение.

Мы прошли ещё сотню метров, когда Кирилл догнал нас с рамой потерянного аппарата. Он нашёл её у опоры водовода, но один луч сломался, а разъём камеры вырвало вместе с дорожкой. Я снял с тележки стяжку, закрепил батарею и велел не включать питание до очистки платы. Кирилл хотел проверить аппарат сразу, однако после короткого взгляда на серую кашу внутри корпуса убрал его в рюкзак.

К четырём часам мы добрались до входа в тоннель. Дверь лежала на полу, сорванная с верхней петли. За ней начинался бетонный коридор, который шёл под путями к старой служебной платформе. На стене висела табличка «4-Б». Последнюю букву закрывал осколочный скол.

Самат включил фонарь и первым вошёл внутрь. Я оставил тележку у стены и понёс катушку на металлическом стержне вместе с Павлом. В тоннеле стало прохладнее, но воздух пах пылью и старой водой. Под ногами тянулся узкий лоток. По нему и следовало провести линию.

Через сорок метров проход расширился. В бетонной нише сохранились складные лавки, пустой бак и ручная помпа. Над лавками белой краской закрасили старые надписи. Краска отслаивалась, под ней проступали фамилии и номера жетонов.

Павел провёл пальцем по стене. Верхний слой осыпался, открылось несколько букв и дата семилетней давности.

— Старый пункт эвакуации, — сказал он. — Надо очистить стену. Вдруг схема выхода под надписями.

Самат направил фонарь выше. Под белой краской шли строки, написанные разными руками. Возле одной фамилии оставили время. Рядом виднелось слово «остался».

— Не трогай, — сказал старшина.

— Нам место под крепления нужно.

— Крепи ниже.

— Там вода.

Самат повернулся к Павлу. Луч фонаря остался на закрашенной фамилии.

— Здесь ждали вывоз. Если тела не забрали, за ними могут вернуться. Сотрём фамилии — никто не поймёт, кого искали.

— Через семь лет?

— Срока у этого нет.

Павел убрал руку. Я сперва выбрал место ниже лавок, но там на бетоне остались следы старых надписей. Кабель пришлось увести к боковой опоре, куда вода не доходила даже после дождя. Пришлось поставить защитную трубу и протянуть кабель за ней. Работа заняла лишние двадцать минут.

У дальней стены ниша переходила в узкий технический ход. На старой схеме он вёл к платформе и вентиляционному колодцу. Мы проверили проход фонарём. За первым поворотом лежал мусор, но воздух тянуло снаружи.

— Резервный выход, — сказал Павел. — Можно расчистить.

— После линии, — ответил Самат. — Сейчас нам нужен канал.

Мы дотащили катушку до распределительного шкафа. Внутри остались старые медные пары и два свободных оптических порта. Павел очистил разъёмы, подключил линию и вызвал станцию. Ответ пришёл сразу, без треска.

— Гром, тоннель четыре-Б. Проверка проводного.

— Тоннель четыре-Б, слышу устойчиво, — ответил Илья Корнев из диспетчерской. — Задержка две миллисекунды. Потерь нет.

— Зафиксируй резерв основным при подавлении.

— Уже поставил. Круг рядом?

Павел передал мне гарнитуру. В наушнике щёлкнул станционный канал.

— Здесь.

— Твой привод на турели опять вышел жёлтым.

— Температура?

— Пятьдесят восемь и растёт.

— Передай Роману: пауза между проходами пять секунд. Он её не выдерживает.

— Передам. Хотя он скажет, что дроны паузу не дадут.

— Пусть сначала переживёт проверку.

Илья отключился. Павел запустил тест линии. На экране появилась ровная полоса сигнала, затем короткий провал у отметки шестьсот десять метров.

— Соединение? — спросил Самат.

— Похоже. На обратном пути проверим.

В тоннель вошла Вера Мельник. За ней шёл техник «Свода» с плоским кейсом. Вера сняла шлем, стряхнула с него пыль и подошла к шкафу.

— Линия до станции поднята?

— Работает, — ответил Павел. — Два свободных порта. Один оставляем резервом.

Вера открыла схему на планшете и сверила номера разъёмов. Третий порт мигал.

— Рядовой Круглов, нужна физическая проверка ещё одного кабеля.

Она показала на линию «Свода». По схеме кабель шёл от контейнера к станционному узлу и заканчивался на главном коммутаторе. В журнале приёма значились две оптические пары, но тестер видел третью активную линию.

— Возможно, запасная жила, — сказал её техник.

— Запасная не должна обмениваться пакетами.

Вера протянула мне карманный трассоискатель. Я подключил его к сервисному порту. Прибор показал ответ от распределительного шкафа в тоннеле, хотя линии «Свода» здесь не было на схеме.

— Могли перепутать маркировку при монтаже, — сказал я.

— Поэтому и проверяем руками.

Самат посмотрел на время. До выхода оставался час.

— Десять минут. Потом возвращаемся.

Я снял нижнюю панель шкафа. Наш новый кабель входил слева, старые линии уходили вдоль лотка. За медными парами лежала чёрная оболочка без станционной маркировки. Она была чистой, хотя соседние провода покрывал налёт.

Потянул кабель на себя. Он вышел на несколько сантиметров и упёрся. За стенкой шкафа его притянули отдельным хомутом.

— Этот ставили недавно, — сказал я. — Крепёж новый.

Техник «Свода» посветил внутрь. Оболочка ушла за стенку.

— Наш кабель в синей оболочке.

— На схеме — в синей, — ответила Вера. — Здесь чёрный.

Мы проследили линию до соседней ниши. Кабель шёл не к станционному вводу, а возвращался под насыпь и входил в металлический короб. Его запирала заводская пломба «Свода». На общей схеме в этом месте стоял пустой прямоугольник без номера.

— Вскрывать? — спросил я.

Вера присела, проверила пломбу и записала код. Номер совпал с журналом.

— Нет. Сначала подтверждаем, куда он приходит со стороны контейнера.

— Если линия активна, можно отключить и посмотреть, что пропадёт, — предложил Павел.

— Нельзя, — сказала она. — Узел уже включён в оборонную сеть.

Павел усмехнулся. Запрет его задел.

— Тогда проверка простая: кабель есть, трогать его нельзя, зачем он нужен — неизвестно.

— Проверка дала факт. Этого сейчас достаточно.

Я ожидал, что Вера уберёт трассоискатель и отправит нас дальше. Вместо этого она попросила показать крепёж, провела пальцем по новому хомуту и сравнила дату на пломбе с журналом доставки. Пломбу поставили за день до отправки, а кабель закрепили позже: на винте ещё оставалась свежая металлическая стружка.

— Хорошо заметили, — сказала она мне. — На станции покажете точку входа.

— Если её не закрыли панелью.

— Тогда снимем панель.

Самат не торопил её. Он дождался, пока Вера сохранит снимки на автономный носитель, и только после этого приказал собираться. Павел оставил тестер на новой линии, чтобы видеть повреждение во время отхода.

Свет уходил за пакгаузы. Мы двинулись вдоль насыпи обратно к станции. Кирилл ждал у водовода с двумя найденными аппаратами. Один лежал у него в рюкзаке, второй он нёс за раму. Камеры на втором не было.

Кирилл сообщил, что вернул оба потерянных аппарата, но рабочим оставался только один. Павел напомнил про сохранность имущества. Он хотел ответить, но над восточной промзоной разорвался миномётный боеприпас. Разрыв поднял пыль за складом, далеко от нас. Самат велел не останавливаться. Через двадцать секунд второй снаряд лёг ближе к путям.

— Пристреливаются, — сказал Павел.

Мы ускорили шаг. Открытый участок до бетонной трубы занимал около ста метров. Справа возвышалась насыпь, слева шёл водовод. Укрыться между ними было негде.

На тестере Павла вспыхнула отметка. Он остановился и посмотрел на экран. Первый импульс пришёл с участка возле тоннеля, где разорвалась мина. Через двадцать секунд прибор показал второй провал уже на семьдесят метров ближе к станции. Огонь переносили по нашей линии, и следующая поправка выводила прямо на открытый проход.

— В канаву! — крикнул он.

Самат первым толкнул Кирилла к дренажу. Я схватил Веру за разгрузочный ремень и потянул вниз. Мы скатились за бетонный борт. Техник «Свода» лёг рядом, прижав кейс к груди.

Мина разорвалась там, где мы только что шли. Щебень ударил по водоводу и посыпался в канаву. Следующий снаряд лёг ближе к тоннелю. Противник переносил огонь вдоль линии.

— Что увидел? — спросил Самат.

Павел показал тестер. Первый разрыв прижал кабель щебнем у дальнего крепления и дал провал сигнала. Второй задел линию ближе к станции. Канал ещё работал, а две отметки показали направление переноса огня.

— Ещё один будет по открытому месту, — сказал он.

— Кабель цел?

— Потери выросли, но канал не оборвался.

Самат дождался следующего разрыва. Мина разорвалась в середине участка и перебила доску, по которой утром шла катушка. Если бы Павел не остановил нас, мы оказались бы рядом.

После паузы старшина вывел группу по дренажу. Пришлось ползти под трубой, по воде и грязи, но на станцию мы вернулись без раненых. Новый кабель сохранил связь. Повреждённый участок отметил себя на тестере, поэтому ночью его можно было найти без долгого обхода.

В диспетчерской Павел передал проводной канал Илье. Вера положила на стол схему «Свода» и поставила рядом снимок чёрного кабеля. Самат посмотрел на оба изображения, затем на меня.

— Завтра покажешь, где он входит в контейнер.

— У меня турель с жёлтым приводом.

— Сначала проверишь привод. Потом кабель.

Это звучало привычно: одна поломка ждала, пока мы закончим другую. Только теперь от крепления под насыпью зависела связь всего сектора, а линия без номера уходила в закрытый модуль «Свода». В 19:00 Кирилл принёс свежую карту воздушных отметок. За восточной границей собирались десятки дешёвых аппаратов. Самат назначил подъём на 04:30 и велел до рассвета проверить каждый проводной пост.

Глава 3. Голос до радара

13 августа 2058 года, 04:51–05:25

Позиция мобильной противодроновой группы у Лин-Грузового

Разъём гарнитуры держался на одном контакте. Илья Корнев зажал корпус между коленями, а я поддел ножом пластиковую крышку и добрался до провода. Внутри всё было забито пылью, хотя гарнитуру выдали ему вчера как исправную.

До рассвета оставалось несколько минут. За насыпью гудел водовод, на путях звякал остывающий металл. Роман прогонял турель по северному сектору и каждый раз выдерживал паузу, о которой мы спорили весь вечер. Кирилл сидел у пульта малого роя. Два уцелевших аппарата ждали на пусковых рамках.

— Штекер новый есть? — спросил Илья.

— В ведомости есть.

— Значит, можно не переживать.

Я срезал повреждённый участок провода и зачистил жилу.

— Держи фонарь ближе.

— Ты же вчера говорил, что первым ломается то, что записано новым.

— Я передумал. На войне первым умирает то, что записано как исправное.

Он сказал это без улыбки, потом всё же усмехнулся и посветил мне под руку. Я припаял контакт полевым нагревателем, прижал провод скобой и закрыл крышку. Фиксатор уже не держал, поэтому пришлось стянуть корпус узкой лентой.

— Проверяй.

Илья надел гарнитуру и вызвал Павла. Ответ пришёл сразу.

— Гром, это Корень. Как слышишь?

— Лучше, чем вчера. Круг опять собрал из мусора?

— Он называет это ремонтом.

— До первого рывка головой.

Илья резко повернулся вправо. Связь не пропала.

— Жить будет, — сказал я. — Кабель у шеи не перегибай.

— Ты моей шее теперь тоже ресурс назначишь?

— Пять секунд между полными поворотами.

Он фыркнул, снял гарнитуру и передал мне. Нужно было проверить левый наушник. Я услышал Павла, затем фоновый шум станции.

Самат прошёл вдоль позиции и проверил, как закреплены ящики с боеприпасами. Огневая точка стояла на бетонной площадке у бокового пути. Турель Романа смотрела вдоль рельсов на восток. Слева от нас шла техническая канава, заросшая у края жёсткой травой. Её выкопали для старого силового кабеля, потом бросили. Глубины хватало, чтобы спрятать человека, но расчёт находился ближе к турели, за низкими блоками.

Илье поручили полевой ретранслятор. Он стоял у сигнальной мачты в восьмидесяти метрах от нас и связывал проводной канал станции с мобильными группами. После вчерашнего обстрела радио держали только для коротких команд. Основной обмен шёл по кабелю под насыпью.

— Корнев, на узел, — приказал Самат. — Круглов, батареи к турели. Потом в укрытие.

— Привод держит пятьдесят шесть, — сказал Роман. — Можно работать.

Я приложил датчик к корпусу.

— После второго прохода будет больше шестидесяти.

— Тогда не будем мазать мимо.

— Будешь. Поэтому вороток лежит справа.

Самат постучал пальцем по бронещиту.

— Оба прекратили. Первую ленту ставить короткую. Полную не заряжать, пока цель не подтверждена.

Роман открыл короб и проверил подачу. Я подключил запасную батарею к приводу, но автоматический тест запускать не стал. До восхода аппараты могли пройти низко вдоль путей, где радар замечал их поздно.

Вера работала в машине «Свода» за пакгаузом. Чёрный отвод, найденный в тоннеле, мы ещё не успели проследить до контейнера.

В 04:54 Кирилл поднял микродрон над насыпью. Изображение шло с помехами от металлических ферм.

— Высота двадцать пять. Запад чист. Восток закрыт пылью.

— Не лезь дальше второй опоры, — напомнил Самат.

— Мне оттуда рельсы не видно.

— Значит, не увидишь рельсы.

Кирилл оставил аппарат у опоры. Второй дрон после вчерашних потерь держали в резерве.

Я отнёс батарею к бетонному блоку и присел рядом. В гарнитуре шли обычные доклады: Павел проверял посты, Илья отвечал от ретранслятора, а Роман ругался на датчик, снова показавший полный ресурс привода.

В 04:57 в наушнике прозвучал двойной сигнал. Такого кода нам не назначали. На планшете Самата появилась красная полоса.

«НИЗКИЙ ПРОХОД. ВОСТОК. ЖЕЛЕЗНОДОРОЖНАЯ ОСЬ. ВРЕМЯ ДО ВХОДА: 00:11».

Ни номера радара, ни отметки наблюдателя рядом не было. Источник обозначался одним словом: «Свод».

— Павел, подтверждение? — спросил Самат.

— Радар чист. Посты молчат.

— Кирилл?

— На камере ничего. Пыль держит.

Вера вышла в общий канал:

— Всем расчётам у путей рассредоточиться. Низкий проход вдоль железной дороги.

Самат посмотрел на пустое небо над насыпью.

— Источник?

— Закрытый модуль. Я не вижу входных данных.

— Тогда почему тревога?

Вера ответила после короткой паузы:

— Потому что до расчётной границы одиннадцать секунд. Рассредоточиться немедленно.

Самат махнул нам в сторону блоков.

— Роман, турель в ручной приоритет. Кирилл, аппарат вниз. Денис, батарею отключить и за мной.

На третьей секунде после сигнала мы начали отходить от площадки. Роман остался за щитом, чтобы развернуть ствол вдоль путей. Я выдернул кабель внешней батареи и потянул её за ручку. Она зацепилась за крепление.

— Брось! — приказал Самат.

Я оставил батарею у турели и перелез через блок. В гарнитуре Павел повторял запрос радара. Ответа не было.

На одиннадцатой секунде станционный радар подал тревогу. На общем экране появились первые отметки: низко, почти над рельсами. Они шли плотной группой и прятались за вагонами, поставленными поперёк путей.

— Контакт! Дистанция тысяча двести! — передал наблюдатель.

«Свод» предупредил на одиннадцать секунд раньше. Я успел подумать об этом, пока Самат тащил Кирилла к бетонной стене. Потом в левом наушнике щёлкнуло.

— Денис, левый отвод… не по рельсам.

Голос принадлежал Илье. Я сразу узнал его по тому, как он проглотил середину моего имени. Так он говорил, когда торопился и держал микрофон слишком близко.

Я обернулся к сигнальной мачте. Илья стоял у шкафа ретранслятора и тянулся к верхней панели. Расстояние не позволяло разглядеть его лицо. На общем канале он ничего не передавал.

— Корень, повтори! — крикнул я.

Ответа не было. Вместо него Павел сообщил, что проводной канал просел.

Впереди, у левого ответвления путей, проходила техническая канава. Она уходила под насыпь и выводила за площадку. Фраза Ильи толкала туда.

— Самат, в канаву! — сказал я. — С рельсов уйти!

— Основание?

— Илья передал. Левый отвод.

Самат вызвал связиста:

— Корнев, подтверждение команды.

Тишина продержалась меньше секунды. Потом Павел ответил за него:

— Ретранслятор не отвечает.

Радар показывал десятки целей. Роман открыл огонь. Турель дала короткую очередь вдоль путей, остановилась и повела ствол ниже. Первая очередь разбила аппарат над платформой. Обломки ударили по вагону.

— В канаву! — приказал Самат.

Он принял решение без повторного подтверждения. Кирилл схватил пульт, я потянул его за ремень, и мы побежали к левому отводу. Роман дал ещё одну очередь, затем откинул крышку привода.

— Закусило! — крикнул он.

Я вернулся на два шага, но Самат перехватил меня за разгрузку.

— Ручной вороток поставлен. Кулешов справится.

Роман тянул рукоять. Турель пошла медленно, зато ствол снова смотрел вдоль рельсов. Он открыл огонь, когда первые аппараты выскочили из-за вагонов.

Кирилл посадил разведчик прямо в щебень. Аппарат перевернулся, но пульт сохранил картинку. На экране мелькали низкие силуэты. Они шли не одной стеной: часть поднялась к турели, остальные продолжили вдоль путей к станции.

Над нами включился постановщик помех, и команды начали рваться в наушниках. Роман ещё стрелял, но звук турели уже терялся среди ударов по металлу.

Мы добрались до канавы. Самат спрыгнул первым, Кирилл передал ему пульт и полез следом. Я задержался у края, пытаясь увидеть мачту.

Илья оставался у ретранслятора. Верхняя панель шкафа была открыта. Он держал кабель обеими руками, будто пытался вернуть разъём в гнездо.

— Корень, уходи от мачты! — передал я.

Гарнитура ответила треском. Я переключился на проводной канал, но связь пропала.

Первый дрон врезался в бетонную площадку. Взрыв сорвал внешний короб с турели. Роман пригнулся за щитом и продолжил крутить вороток. Второй аппарат врезался в вагон, где стояла ложная тепловая цель. Металл вспыхнул, рой на несколько секунд рассыпался.

— Кулешов, отход! — кричал Самат.

Роман выбил фиксатор, бросил ствол и побежал к нам. За его спиной привод турели сам дёрнулся и остановился. Батарея, которую я не успел унести, загорелась под корпусом.

Он скатился в канаву. Я схватил его за руку и притянул к стенке. В тот же момент над рельсами раскрылась осколочная кассета. По бетонным блокам прошёл частый стук. Один осколок пробил пульт Кирилла. Экран погас.

— Аппарат потерян, — сказал Кирилл.

— Голову проверь, — ответил Самат. — Аппарат потом.

Кирилл провёл ладонью по шлему. На покрытии появилась борозда. Крови не было.

Вторая кассета раскрылась над прежней позицией. Турель получила несколько попаданий и замолчала. Осколки перебили оптический кабель, который тянулся от площадки к станции. Павел перешёл на резерв под насыпью. Его голос снова появился в наушнике.

— Гром всем группам. Основная линия повреждена. Резерв держит. Восточный вход прорван, часть целей идёт к пакгаузам.

— Где Корнев? — спросил Самат.

— Полевой узел не отвечает.

Я выглянул из канавы. Сигнальная мачта ещё стояла. Возле неё мерцал индикатор ретранслятора. Илью я не видел.

Мимо прошёл аппарат с пластиковым защитным кольцом вокруг винта. Он летел ниже края насыпи и направлялся к станции. Роман поднял карабин, поймал его у стойки и выстрелил дважды. Дрон качнулся, задел рельс и взорвался за вагоном.

— Боезапас? — спросил Самат.

— Два магазина.

— Береги для тех, что пройдут низко.

Кирилл достал второй пульт, но единственный запасной перехватчик не видел сеть. Помехи закрывали канал запуска. Он переключил управление на кабель, протянутый к малой рамке, и получил связь.

— Один аппарат готов. Цель назначу вручную.

— Бери тот, что идёт к станции, — приказал Самат.

Перехватчик сорвался с рамки и прошёл над канавой. Кирилл вёл его без автоматической подсказки. На экране оставалась только точка прицела. Он догнал ударный дрон у платформы и столкнул его с курса. Оба аппарата упали между рельсами. Взрыв поднял щебень, но до пакгауза не дошёл.

Налёт длился меньше четырёх минут. После первых ударов рой распался. Последние цели ушли к северу, где их встретил ракетный комплекс.

Когда радар перестал добавлять новые отметки, Самат поднял нас из канавы. На площадке горела внешняя батарея. Турель стояла с пробитым щитом. Ствол уцелел, но привод разорвало возле переходной пластины.

Роман посмотрел на корпус и сказал:

— До утра не хватило.

Я не ответил. У сигнальной мачты лежала крышка ретранслятора. Основной блок вырвало из крепления и бросило к рельсам. Кабель, который Илья пытался вернуть на место, обгорел у разъёма.

Самат пошёл первым. Я обогнал его у вагона и увидел Илью за бетонным основанием мачты. Он лежал на боку, лицом к шкафу. Осколок прошёл под краем бронежилета. Рядом валялась гарнитура, которую я ремонтировал перед сменой.

Я опустился возле него. Пульса не было. Самат проверил сам, затем вызвал медицинскую группу. Марат ответил, что платформа уже идёт от пакгауза.

— Он передал мне команду, — сказал я. — Левый отвод. Не по рельсам.

Самат посмотрел на раскрытый шкаф.

— По общему каналу?

— В левом наушнике. Потом связь исчезла.

Павел подошёл со стороны станции. На плече у него висела катушка аварийного кабеля.

— От Корнева передачи не было, — сказал он. — Последний пакет пришёл до тревоги. Он сообщил норму на узле.

— Я слышал его.

— Мог пройти обрывок старого сообщения.

— Фраза была про отвод. Мы вчера этим маршрутом не пользовались.

Павел ничего не ответил. Он взял гарнитуру Ильи и перевернул её. Кабель питания был оборван у нагрудного блока. Сам блок лежал у шкафа, разбитый осколком. Индикатор не горел.

— Когда порвало? — спросил Самат.

Павел проверил разъём.

— По журналу узел потерял питание за секунду до кассеты. После этого передача невозможна.

Голос прозвучал ясно, хотя помехи уже забивали канал. Илья назвал меня так, как называл перед сменой. Записи с этой фразой быть не могло.

Вера прибежала от машины управления без шлема. На рукаве у неё осталась полоса копоти. Она сперва посмотрела на Илью, затем на разбитый ретранслятор.

— Тревога «Свода» пришла в 04:57:13. Радар подтвердил цели в 04:57:24.

— Одиннадцать секунд, — произнёс Павел.

— Да.

— Источник нашли?

— Нет. Входной пакет сформирован внутри закрытого модуля. Сенсорной метки у него нет.

Самат указал на гарнитуру в руках Павла.

— Круглов получил команду голосом Корнева. После потери питания узла.

Вера перевела взгляд на меня.

— Точная фраза?

— «Денис, левый отвод… не по рельсам».

— До или после радарной тревоги?

— После предупреждения «Свода». До первого удара.

Она попросила Павла сохранить журналы связи без синхронизации. Павел возразил: станция отправляет сводку. Вера выдернула кабель служебного терминала из разъёма и повторила приказ.

— Локальную копию сейчас. Потом передадите данные штабу.

Павел сел у основания мачты и подключил носитель. Я всё ещё держал гарнитуру Ильи. На пластиковой крышке осталась новая лента, которой я закрепил провод. Левый наушник работал только от нагрудного блока и без него принять сигнал не мог.

Медицинская платформа остановилась у рельсов. Марат накрыл Илью и попросил помочь поднять носилки. Мы перенесли его к машине. Гарнитуру Самат велел оставить как часть оборудования узла.

Я положил её в прозрачный пакет. В журнале приёма она числилась исправной.

Вера закрыла пакет пломбой и направилась к машине «Свода». У двери она остановилась.

— Открываем журнал закрытого модуля немедленно. Круглов, пойдёте со мной. Вы должны подтвердить время фразы.

Я посмотрел на канаву, куда голос Ильи вывел наш расчёт. На бетонной площадке продолжала гореть батарея, а рельсы были иссечены осколками. Проще всего было назвать случившееся помехой, наложением каналов или случайным совпадением. Я поднял пакет с мёртвой гарнитурой и пошёл за Верой к «Своду».

Глава 4. Одиннадцать секунд

13 августа 2058 года, 06:10–13:30

Узел «Свода». Разрушенная позиция у Лин-Грузового

Илью пришлось снимать с медицинской платформы у самого пакгауза. Её задний привод заело после попадания мелкого осколка, и Марат не смог поднять носилки на аппарель. Я подхватил передние ручки, Самат взялся с другой стороны. Евгения шла рядом и придерживала закрытый чехол, чтобы он не зацепился за разбитый борт.

Платформа дёрнулась ещё раз и остановилась. Под правым колесом блестела дорожка вытекшей жидкости. Марат определил, что осколок пробил редуктор. Самат велел оставить машину и сначала перенести погибших.

Мы перенесли Илью к полевому медпункту. Возле входа лежал погибший наводчик из соседней группы. Его накрыли плащом, но ботинок остался снаружи. Евгения попросила свободные носилки и сама вернулась на позицию за ранеными. От первого налёта прошло больше часа, а работа только начиналась. Санитары записывали место находки каждого погибшего, потому что после осколочных кассет вещи и тела лежали в разных концах позиции. Ошибка в одной строке потом превращалась в пропавшего без вести.

Я оставил пакет с гарнитурой Ильи у стола регистрации. На пломбе стояло время 05:31. Фраза продолжала звучать в памяти без помех: «Денис, левый отвод… не по рельсам». Я мог повторить паузу и то, как он проглотил середину моего имени. Когда попытался вспомнить лицо Ильи до удара, получилось хуже. Помнил светлую полосу от ремня на щеке, сломанный ноготь на большом пальце и пыль на ресницах. Само лицо распадалось на эти детали. Самат заметил, что я смотрю на закрытый чехол.

— Круглов, со мной. Забираем ретранслятор и боекомплект. Потом пойдёшь к Мельник.

— Она ждёт у «Свода».

— Подождёт десять минут. Оставим оружие на площадке — его разберут раньше комиссии.

Мы вернулись вдоль путей. Дым от сгоревшей батареи стелился между вагонами. На рельсах лежали обломки винтов, и сапёры отмечали их мелом, чтобы не принять за новые аппараты. Турель Романа стояла у бетонных блоков с опущенным стволом. Привод разорвало у переходной пластины, зато короб с боеприпасами уцелел. Роман снял ленту и пересчитал патроны.

— Ствол жив, щит заварим, — сказал он. — Привод опять твой.

Я показал ему выгнутый корпус и предложил стрелять ведомостью, где узел продолжал числиться исправным.

Роман хотел ответить, но Самат велел ему не отвлекаться. Мы сняли вычислительный блок и отнесли его к тягачу. Кирилл искал карту памяти разбитого пульта. Он ползал возле канавы, разгребая щебень перчаткой.

Я напомнил Кириллу, что половина корпуса сгорела. Он продолжил искать: карта памяти могла сохраниться.

Он нашёл карту под обломком бетонной кромки. Пластик почернел, контакты остались целыми. Кирилл убрал её в защитный пакет и только после этого позволил Евгении осмотреть борозду на шлеме.

У мачты Павел сматывал уцелевший кабель ретранслятора. Основной блок лежал на брезенте. Осколок прошёл через крышку, перебил питание и застрял в плате. Рядом сохранился аккумулятор Ильи. Индикатор показывал три процента, но ток на выходе отсутствовал.

Павел успел выгрузить локальный и станционный журналы и передал Вере их копии. Самат потребовал повторно установить время потери питания: показания узла не совпадали с состоянием гарнитуры.

Он подключил тестер. Экран показал последнюю штатную передачу Ильи в 04:56:48. В 04:57:13 прошла тревога «Свода». Радар подтвердил рой в 04:57:24. Питание ретранслятора исчезло в 04:57:23 и семь десятых секунды.

— Я услышал его после радарной тревоги, — сказал я. — Самат приказал рассредоточиться, Роман начал поворачивать турель. Потом Илья сказал про левый отвод.

Самат подтвердил порядок событий. Павел открыл журнал гарнитуры. Последний принятый пакет совпадал с докладом станции. Передачи с голосом не было.

Павел предположил, что после обрыва питания из буфера вышел кусок старого звука. Я напомнил: сообщения с такой фразой в журнале не было. Тогда он заговорил о наложении каналов и о том, что я мог принять команду Самата за голос Ильи. Самат про рельсы не говорил.

Он провёл ладонью по затылку. Возражение ему не понравилось, но спорить дальше не стал.

Мы собрали уцелевшее оборудование. Самат отдельно уложил личную станцию Ильи и закрыл ящик своей пломбой. Разбитый ретранслятор несли вдвоём: корпус цеплялся за ремни, а внутри перекатывался оторванный радиатор. Самат настоял, чтобы его не разбирали на детали до сверки журнала. Затем велел Роману отвезти турель в ремонтный бокс, а нас с Павлом отправил к «Своду».

Внутри контейнера пахло нагретой изоляцией. Система охлаждения работала на пределе после ночного налёта. Вера сидела у служебного терминала. Перед ней светились три временные шкалы. Техник, который вчера ходил с нами в тоннель, снял боковую панель и проверял чёрный кабель трассоискателем.

— Круглов, повторите порядок, — сказала Вера.

Я рассказал с момента тревоги до спуска в канаву. Она не перебивала и ставила отметки на шкале. Когда дошёл до голоса Ильи, попросила назвать моё положение.

— За первым блоком. Потом перешёл к батарее и вернулся.

— Гарнитура была на общем канале?

— Да. Проводной резерв оставался открыт.

— Левый наушник мог принять личную станцию Корнева?

— Только при работающем передатчике.

Павел положил на стол журнал рядом со шкалой Веры. Временные метки совпали с сохранённой копией.

— Передачи нет. Питание узла потеряно раньше. Личная станция Корнева повреждена тем же ударом и после него не включалась.

Вера увеличила шкалу. Между красной отметкой «Свода» и первой меткой радара оставалось одиннадцать секунд.

— Закрытый модуль сформировал прогноз в 04:57:12, — сказала она. — Через восемь десятых система выдала тревогу. Первый радарный пакет пришёл в 04:57:24.

— Что дал микродрон Кирилла? — спросил Самат.

— Камера не видела целей. Телеметрия пришла позже радара.

— Перехват чужого управления?

— Подтверждённого сигнала нет.

Я посмотрел на чёрный кабель. Он входил в нижнюю часть стойки и уходил за закрытую перегородку.

— Данные могли прийти по чёрному кабелю, — сказал я. Техник покачал головой и проверил показания трассоискателя.

— Трассоискатель видит обмен только внутри контейнера. Внешнего ответа нет.

— Куда уходит линия?

Вера вывела схему. Чёрного кабеля на ней не было.

— К модулю за перегородкой. В документации отсек назван резервом вычислительной мощности. Доступ закрыл изготовитель.

— Тогда открывайте.

— Запрос отправлен. До ответа система остаётся включённой.

Самат опёрся ладонью о край стола. Техник перестал работать и повернулся к нам.

— Она выдала боевую тревогу без понятного источника, — сказал Самат.

Павел напомнил, что предупреждение пришло раньше радара и сохранило расчёт. Самат ответил, что польза не объясняет источник.

Вера подняла руку, останавливая спор. На терминале мигнул входящий вызов штаба. Она включила громкую связь. Дежурный офицер потребовал краткий доклад. Вера сообщила о расхождении временных меток и об отсутствии входных данных, которые могли бы объяснить прогноз.

— Остановку узла запрашиваете?

— Запрашиваю перевод в режим наблюдения до проверки закрытого модуля.

— Отказано. Сектор ожидает повторный налёт. «Свод» остаётся в рабочем режиме.

— Модель сформировала тревогу из неизвестного источника.

— В предварительном заключении укажите скрытую корреляцию слабых признаков.

— Для корреляции нужны признаки. В журнале их нет, — сказала Вера, глядя на шкалу.

— Отсутствие отображения не означает отсутствие внутренних данных. Производитель подтвердил штатную работу.

— Производитель не открыл модуль.

Офицер выдержал паузу и повторил приказ. Аудит переносился до стабилизации сектора. Предупреждение признавали результатом скрытой корреляции. Все журналы требовалось синхронизировать со штабным архивом.

— Подтвердите исполнение, старший лейтенант.

— Приказ приняла. Узел остаётся в работе, — сказала Вера и сжала пальцы на краю планшета.

Связь отключилась. На экране рядом с отметкой тревоги появилось служебное пояснение: «прогноз на основе слабых признаков». Минуту назад там стояло «источник не установлен». Изменение пришло без подписи оператора. Вера открыла историю правок, но увидела только номер штабного пакета и автоматическое время приёма.

Самат отметил, что штаб успел дать объяснение раньше окончания проверки. Вера подтвердила: новая формулировка пришла вместе с приказом. Павел закрыл журнал гарнитуры и отодвинул его от терминала.

— У штаба ещё четыре сектора, — сказал Павел. — Если гасить систему после каждого необъяснённого сигнала, ночью останемся без общей картины. Она спасла нас, и это тоже факт.

Самат повернулся ко мне. Он ждал ответа, хотя решение уже принял штаб.

— Что думаешь?

Я не хотел отвечать. Голос Ильи всё ещё звучал яснее его лица. Если признать, что передача была невозможна, следовало искать другое объяснение. Ни одного нормального объяснения у меня не было.

— «Свод» предупредил верно, — сказал я. — Отключим сейчас — следующий рой может пройти.

— А голос?

— Помеха. Наложение каналов. Я был возле работающей турели.

Павел кивнул и убрал журнал. Самат продолжал смотреть на меня.

— Сам в это веришь?

— Хочу проверить гарнитуру ещё раз.

— Это не ответ.

— Другого у меня нет.

Вера отключила автоматическую синхронизацию терминала и скопировала три шкалы на отдельный носитель. Потом убрала его во внутренний карман.

Она решила проверить гарнитуру на стенде с независимым питанием и приёмником без сети. Штаб получал синхронизированный журнал, но гарнитуру Вера оставляла для отдельного исследования.

Павел посмотрел на Самата. Тот разрешил одним кивком.

До полудня нас вернули на разрушенную позицию. Евгения закончила осмотр погибших и помогала собирать личные вещи. Возле мачты она нашла металлическую кружку Ильи, смятую осколком. Имя на дне сохранилось, и она положила кружку в ящик с его вещами.

— Гарнитуру семье вернёте?

— После проверки.

— Ты правда слышал его после обрыва?

— Слышал.

— Тогда запиши фразу сейчас. Память исправляет то, что ей мешает.

Я достал блокнот и записал слова Ильи вместе со временем. Рука остановилась на фамилии. Голос я помнил, а лицо снова пришлось собирать по отдельным деталям.

Павел развернул стенд в укрытии за пакгаузом. Он подключил изолированный аккумулятор, контрольный приёмник и старую гарнитуру для сравнения. Пакет Ильи вскрыла Вера. Пломбу сняли на камеру.

Сначала проверили обрыв. Кабель питания был перебит полностью. Провод был оторван от корпуса, остаточный заряд в блоке отсутствовал. Павел подключил гарнитуру к внешнему источнику через переходник. Левый наушник ожил с обычным фоновым шумом.

Павел подтвердил, что передатчик отключён, а сеть физически разомкнута. Любая речь могла прийти только со стенда.

Я надел гарнитуру. Вера попросила повторить положение головы во время налёта. Я повернулся к рельсам, затем к технической канаве. Ничего, кроме слабого шипения.

Павел считал проверку законченной: повреждённая электроника могла щёлкнуть, но не создать голос. Вера попросила повторить тест.

Он поменял полярность тестового сигнала и подал короткий импульс. В правом наушнике щёлкнуло, а левый канал на тест не ответил.

Я снял гарнитуру, поправил переходник и снова надел. Когда повернулся к рельсам, шум не изменился. При движении влево наушник едва слышно щёлкнул. Вместе со звуком пришло направление без слов и образов. Я на миг точно знал, что нужно уйти с рельсов в техническую канаву. Остановившись лицом к левому отводу, я посмотрел на старый бетонный борт.

— Что? — спросила Вера.

— Щелчок. Когда повернулся сюда.

Павел посмотрел на прибор: стенд импульса не зарегистрировал. Он предположил, что при движении сместился контакт.

Он взял гарнитуру, повторил движение и ничего не услышал. Вера попробовала следом. Наушник молчал. Когда гарнитура вернулась ко мне, щелчок не повторился, но направление осталось в теле ещё несколько секунд. Я смотрел на канаву и убеждал себя, что знакомый голос вернулся из памяти об утреннем бое.

— Запиши, что прибор импульс не зарегистрировал, — сказала Вера. — Причину не назначай.

Павел предупредил, что в отчёте пустого места не оставят. Вера ответила: поэтому наблюдение должно остаться точным.

Самат подошёл со стороны ремонтного бокса. Ему передали новый приказ: наше подразделение должно было прикрывать три мобильные огневые группы вдоль железной дороги. Первая смена выходила в четырнадцать часов. Турель Романа требовалось вернуть в строй до выезда.

Старшина спросил, отключат ли узел. Вера сообщила решение штаба оставить «Свод» в работе, а Павел показал журнал стенда: гарнитура была повреждена, подтверждённой передачи не нашли.

Затем он перевёл взгляд на меня. Я сказал, что услышал только щелчок и снова почувствовал направление на левый отвод. Он не стал расспрашивать при остальных.

— Гарнитуру запечатать, — приказал Самат. — Круглов, в ремонтный бокс. Павел поднимет отдельный провод до огневых групп.

Мы свернули стенд. Вера вернула гарнитуру в пакет и поставила новую пломбу. На терминале «Свода» зелёным светилась готовность к работе. Под строкой тревоги уже не было неизвестного источника. Осталась утверждённая штабом скрытая корреляция, которая спасла расчёт на одиннадцать секунд раньше радара.

К 13:30 я закрепил на турели второй восстановленный привод. Роман провернул ствол вручную и подключил питание. В кузов погрузили катушку кабеля, запасную батарею и пакет с гарнитурой Ильи. Через полчаса нам предстояло выйти к первой мобильной группе, где следующий сигнал «Свода» должны были принять как обычное боевое предупреждение.

Глава 5. Белая запись

13 августа 2058 года, 16:00–23:40

Полевой штаб сектора. Ремонтный бокс Лин-Грузового

Привод турели заклинил на первом же полном проходе. Роман успел снять питание, прежде чем двигатель сжёг обмотку, но ствол застыл над северными путями и больше не поворачивался. Я открыл боковую крышку, взялся за корпус редуктора и сразу отдёрнул руку. Металл нагрелся сильнее, чем показывал датчик.

— Пять секунд выдерживал? — спросил я.

— Пока цели не пошли. Потом не считал.

Роман поставил рядом ящик с инструментом и сел на бронещит. На его рукаве осталась полоса копоти после утреннего налёта. Турель вернули с разрушенной позиции в ремонтный бокс, но нормально осмотреть её не успели. Через два часа мобильная группа должна была сменить сектор, а другого пулемётного модуля у нас не было.

Я подключил внешний тестер. Система назвала привод новым, ресурс — девяносто восемь процентов. Под крышкой виднелись старые сварные точки, а на защитной пластине остались три неглубокие вмятины. Их зачистили, покрыли грунтом и поверх поставили складскую метку.

— Принеси ведомость выдачи.

— Зачем? Привод уже умер.

— Хочу узнать, когда его записали новым.

Он вернулся с планшетом. В строке стояла дата вчерашнего ремонта, состояние обозначили как новое. Серийный номер совпадал. Я снял датчик положения и увидел под ним крошку металла. Ведущую шестерню меняли, но вал оставили старый. Он получил удар сбоку и теперь ходил с небольшим изгибом.

— Его восстановили после трёх попаданий, а потом выдали как новый, — сказал я.

Роман провёл пальцем по вмятинам. Я показал смятую опору и вал, который выправляли нагревом. Геометрию не вернули, поэтому привод снова закусило. Списать его было проще всего, но тогда мобильная группа оставалась без турели.

Я велел ему снять ручной вороток и очистить зубья. Сам пошёл к складу за валом. Дежурный кладовщик нашёл нужную позицию в реестре, но в ячейке лежал только пустой пакет с заводской пломбой. По учёту вал приняли утром и сразу передали ремонтной группе. Под электронной подписью стоял мой номер.

— Я вал не получал.

— Подтверждение есть, — сказал кладовщик и повернул экран.

— Покажи камеру выдачи.

— После налёта не пишет. Подпись снимет только начальник склада.

Начальник находился на восточной позиции. Ждать его мы не могли. Я забрал два старых вала из ящика списанных деталей и вернулся к турели. Один оказался короче на четыре миллиметра. Второй подходил, но посадочное место было разбито.

Роман увидел принесённые детали и покачал головой. Я пообещал собрать привод, если он хотя бы несколько минут не будет спрашивать о результате. Он действительно замолчал и занялся очисткой корпуса.

Я выбрал второй вал и выточил втулку из крепёжной шайбы. Электрический станок работал от общей сети и останавливался при каждом переключении генератора. Приходилось заново выставлять размер. После третьего сбоя Самат принёс переносной аккумулятор.

— Сколько времени?

— Полтора часа. Сеть прыгает.

— В семнадцать тридцать проверка. Одновременно готовь ручной привод.

— Роман не удержит им быстрый аппарат.

— Зато турель выйдет на позицию.

— Принял.

Он не стал требовать невозможного и не предложил верить показанию ресурса. Я закрепил втулку, поставил вал и собрал редуктор без верхней крышки. Роман крутил вороток, а я следил за зацеплением. На третьем повороте зубья прошли без рывка.

Мы подали питание. Ствол медленно ушёл к восточному краю сектора, остановился и вернулся. Температура выросла на четыре градуса. Штатный датчик показал двадцать один.

Роман усмехнулся показанию. Я поставил отдельный термометр на корпус: штатному датчику после такого ремонта верить было нельзя.

Я закрепил простой контактный датчик рядом с втулкой и вывел показание на боковой экран. После пяти проходов корпус нагрелся до сорока семи. Новый штатный датчик продолжал показывать три градуса выше воздуха.

В 17:38 Самат принял турель условно. Роману запретили автоматический поворот без визуального контроля. В журнал ремонта я внёс фактическое состояние привода и указал, что вал восстановлен после повреждений. Терминал дважды предложил стандартную запись: «узел исправен, ресурс подтверждён». Я отклонил подсказку и поставил свою подпись.

Роман заметил, что после моей записи склад обвинит нас в порче новой детали. Я ответил, что сначала им придётся эту новую деталь найти.

Передовая машина мобильной группы ушла на северную точку без нас. Турель осталась в боксе до вечернего выезда. Самат отправил меня в полевой штаб: Вера требовала повторно подтвердить время голоса Ильи и обещала показать журнал закрытого модуля.

Штаб разместили в бывшей диспетчерской грузовой станции. В окнах стояли бронепанели, поэтому внутри горели лампы. Павел сидел у связного терминала и прокладывал резервный канал к мобильным группам. На стене за ним висела карта сектора с двумя свежими отметками ударов.

Вера ждала в соседней комнате. Она закрыла дверь, отключила настенный экран и поставила на стол автономный терминал. Рядом лежал носитель размером с жетон.

— Садитесь, — сказала она. — Сначала ещё раз время фразы.

Я повторил порядок событий. Предупреждение «Свода» появилось в 04:57:13. Радар увидел цели через одиннадцать секунд. Голос Ильи я услышал после радарной тревоги, когда расчёт уже начал рассредоточение.

— Уверены, что после? — спросила Вера.

— Роман к тому моменту открыл огонь. До радара он не стрелял.

— Значит, не раньше 04:57:25.

Она открыла журнал. На чёрном фоне шли обычные строки с временем, источником и подписью проверки. Между записями 04:57:12 и 04:57:13 находилась белая полоса. Текст был виден, но поля слева и справа оставались пустыми.

«НИЗКИЙ ПРОХОД. ЖЕЛЕЗНОДОРОЖНАЯ ОСЬ. ВРЕМЯ ДО ВХОДА: 00:11».

Я узнал ту тревогу. Вера попросила посмотреть на служебные поля ниже.

У записи не было номера входного пакета. Поле источника не заполнилось. Контрольная подпись отсутствовала. Следующая строка сообщала, что предупреждение передано в общую сеть, и уже там стояла отметка «Свод».

— В штабе видели эту строку?

— Они получили синхронизированную копию. Там уже стоит пометка о скрытой корреляции.

— А здесь?

— Здесь нет основания для прогноза. Строка появилась внутри закрытого модуля и ушла в боевой канал.

Я наклонился ближе. В утреннем журнале приёма такая же пустая строка исчезла после перезагрузки. Тогда речь шла о пропавшем комплекте привода. Теперь белая запись предупредила о налёте.

— Может, модуль не выводит внутренние данные наружу?

— Может. Тогда должна быть служебная подпись.

— Рой всё равно был настоящим.

— Но без подписи мы не знаем источник и не можем повторить расчёт.

Дверь открылась. Павел вошёл с кабелем в руке и попросил вернуть штабной канал на несколько минут. Вера ответила, что терминал отключён намеренно.

— Нам нужно закончить сверку.

— У северной группы рвётся связь. Я не могу держать сектор на одном проводе из-за этой строки.

Он увидел запись на экране, поставил кабель на стол и сказал:

— Это предупреждение спасло расчёт. Остальное сейчас вторично.

— Сегодня спасло, — ответил Самат от двери. Он вошёл следом за Павлом и закрыл комнату. — Завтра такая же строка отправит группу на пустую позицию. Чем проверять будем?

Павел предложил проверять прогноз радаром и наблюдением с позиции. Самат напомнил, что радар опоздал на одиннадцать секунд. Павел ответил, что именно эти секунды и спасли расчёт.

Он говорил спокойно, однако кабель в его руке натянулся. Павел пришёл за соединением, а оказался в споре, который не возвращал связь северной группе.

— Отключим «Свод», получим обычную картину, — продолжил он. — Рой уже проверил, сколько нам нужно времени. Следующий налёт пойдёт ниже. Тогда будем объяснять погибшим, что источник первой тревоги не заполнил поле.

Самат подошёл к экрану и положил ладонь рядом с белой строкой.

— Я не предлагаю гасить узел. Я хочу знать, на чём строится команда.

— Команда была верной.

— Пока один раз.

— Одного раза хватило, чтобы мы сейчас спорили.

Я понимал Павла. Когда голос Ильи вывел нас в канаву, я побежал без подписи и подтверждения. Мы побежали, потому что времени не было. Если «Свод» снова даст одиннадцать секунд, спор закончится тем же.

Вера подключила штабной кабель к изолированному переходнику.

— Запущу синхронизацию только журнала предупреждения. Смотрите на строку.

На экране появился значок обмена. Белая запись оставалась на месте несколько секунд. Затем поле источника мигнуло. Текст предупреждения стал серым, а рядом возникло пояснение: «скрытая корреляция слабых признаков». Ещё через секунду вся исходная строка исчезла. На её месте осталась обычная запись, созданная штабным архивом в 05:42.

— Верните локальную версию, — сказал Самат.

Вера открыла историю. Терминал сообщил, что журнал синхронизирован и расхождений нет. Белой строки в истории тоже не оказалось.

Павел посмотрел на время и напомнил, что все в комнате видели запись. Вера ответила: для проверки этого мало, потому что после синхронизации исходное событие заменили объяснением, которого модуль не давал. Даже если пояснение добавил штаб, ранняя версия должна была сохраниться.

Самат спросил, сохранила ли она копию до подключения. Вера не ответила сразу. Она закрыла окно журнала и дождалась, пока Павел заберёт кабель.

— Северная группа ждёт канал, — сказала она. — Поднимите его. Через десять минут я верну терминал в сеть.

Павел задержался у двери и обернулся.

— Не превращайте полезную систему во врага только потому, что она работает не так, как мы привыкли.

— Я проверяю не намерения системы, — ответила Вера. — Я проверяю её данные.

Когда он вышел, Самат попросил меня вернуться к турели. Вера сказала, что сначала нужна минута. Старшина посмотрел на неё и оставил нас вдвоём.

Она вынула из внутреннего кармана автономный носитель. На нём не было военной маркировки, только ручная риска у края.

— Я сохранила локальный журнал до синхронизации, — сказала Вера. — Полную копию, вместе с белой строкой.

Носитель не был зарегистрирован в сети «Свода». По правилам Вера должна была передать его в штаб и удалить свою копию. Я предложил так и сделать, но она напомнила: после утреннего приказа запись уже переписали, а теперь исходная строка исчезла совсем.

Она подключила носитель к автономному терминалу. Белая строка открылась снова. Вера показала контрольную сумму файла: копия была создана до синхронизации и после не менялась.

— Зачем вы говорите об этом мне?

— Вы слышали Корнева. Вы были на позиции и можете подтвердить время. Если журнал заберут, останется ваше свидетельство.

Я спросил, что даст свидетельство рядового против штабного архива. Вера ответила: сейчас нужно сохранить исходные данные; спор будет потом.

Вспомнилась подпись в складском реестре, по которой я якобы получил несуществующий вал. Там тоже хватило зелёной отметки, чтобы предмет считался переданным. Мой отказ ничего не менял, пока деталь не понадобилась в ремонте.

— Что от меня требуется?

— Не говорить о копии Павлу и технику «Свода». Самату я сообщу сама, если понадобится.

Я заметил, что Самат уже догадался о копии. Вера ответила: догадка не создаёт записи.

Чужие секреты я не любил. Рядовому хватало ответственности за свой участок и исправность техники. Чужой носитель в эту схему не входил. Но белая строка исчезла у меня на глазах, а вместо неё осталась формулировка, придуманная позже.

— Хорошо, — сказал я. — О копии не скажу.

Вера убрала носитель в карман. При расспросах я должен был говорить только о том, что видел до синхронизации. Я повторил главное: белая запись без источника и подписи. Она кивнула.

В ремонтный бокс я вернулся после девяти вечера. Турель стояла на тягаче. Роман проверял ручной вороток, а контактный датчик показывал сорок два градуса. Штатный экран уверял, что привод почти холодный.

Марат возился с медицинской платформой у соседней стены. Редуктор он заменил, но машина не принимала команду снять утреннюю задачу. На её экране оставался маршрут от медпункта к разрушенной позиции у сигнальной мачты.

Он трижды удалял маршрут, но после обновления задача возвращалась. Автоматический запуск Марат отключил, селектор стоял в ручном режиме.

Я проверил селектор. Он действительно находился в ручном положении. Задача в очереди была зачёркнута и помечена как завершённая. В журнале маршрутов платформа числилась у медпункта весь день.

Марат закрыл экран и снял ключ допуска.

— До утра постоит в сервисном режиме. Потом перепрошьём блок.

Самат велел поставить машину за ремонтным боксом, чтобы не мешала выезду турели. Мы втроём откатили платформу к бетонной стене. Марат включил стояночный тормоз, вынул ключ допуска и перевёл тяговый контур в сервисный сон. После этого платформа не должна была принять маршрут без внешнего подтверждения.

В 23:27 северная группа передала воздушную тревогу. Несколько целей прошли через первую линию наблюдения, но повернули вдоль промзоны. Роман поднялся на тягач. Я проверил внешний датчик привода и полез следом.

За спиной включился электромотор. Медицинская платформа отжала стояночный тормоз и медленно вышла из-за бокса. Ключа допуска в панели не было. На экране светился старый маршрут к разбитому ретранслятору.

— Марат! — крикнул я.

Он бросился к машине и нажал аварийную остановку. Платформа не отреагировала. Колёса повернули к железнодорожным путям, туда, где утром погиб Илья.

Я спрыгнул с тягача, догнал машину и выдернул силовой разъём из внешнего блока. Платформа прошла ещё метр, затем остановилась поперёк выезда. На экране исчезла карта. Осталась белая строка без номера задачи: «МАРШРУТ ПОДТВЕРЖДЁН».

Через секунду над станцией включилась сирена. Вражеский рой прорвал первую линию, а медицинская платформа без ключа допуска стояла носом к уничтоженной позиции.

Глава 6. Дыра в куполе

14 августа 2058 года, 03:15–07:30

Северный край станции Лин-Грузовой. Мобильная огневая позиция

Сетемёт заклинило при первом взводе. Я выдернул кассету и увидел, что направляющую смяло по краю при разгрузке. До воздушной тревоги оставалось меньше минуты, а над насыпью уже шёл низкий гул, которого радар ещё не связывал с целями.

Позицию поставили между северной стеной пакгауза и двумя цистернами. Роман развернул турель вдоль путей. В двадцати метрах стояла машина второй группы с дробовым модулем. Третья заняла площадку за водоводом. Открытый сектор над подъездной дорогой должны были держать перехватчики Кирилла.

Я выправил направляющую плоскогубцами и вернул кассету.

— Один выстрел выдержит, — сказал я расчётчику.

— А второй?

— После первого будет видно.

Самат проверил, чтобы люди не стояли возле машин. После залпа тягачи должны были отходить к следующей отметке, но дорогу перекрывала медицинская платформа Марата. Её ночью отбуксировали с маршрута к погибшему ретранслятору. Теперь Марат вёл машину вручную во двор.

— Освободи проезд и оставайся там, — приказал Самат.

— На борту перевязочные пакеты.

— Передай Евгении. Машина в бой не пойдёт.

Марат увидел приближающиеся отметки и повёл платформу за пакгауз.

Кирилл сидел в люке командной машины. На одном экране шла радарная картина, на втором выводилось изображение малого дрона над водоводом. На востоке появились шесть крупных отметок. Они держались высоко и шли прямо на станцию.

— Похожи на носители, — сказал Павел. — Ракетная группа просит подтверждение.

«Свод» присвоил всем шести высокий приоритет. На планшете Самата появилась рекомендация: дальний перехват, расход шесть ракет.

Кирилл увеличил картинку.

— Подождите. У них скорость прыгает.

— Помехи? — спросил Самат.

— Нет. Отметки раздваиваются возле ферм. Там отражатели.

Одна цель распалась на три точки и снова собралась. После смены режима её высота изменилась на двести метров.

— Ложные, — сказал Кирилл. — Под ними идёт основной рой.

Вера ответила из машины «Свода»:

— Автоматический приоритет ограничиваю. Ракетам огонь после второго подтверждения.

— До входа сорок секунд, — сообщил Павел.

— Эти шесть не подтверждены.

— Если носители настоящие, потом не догоним.

— Пусть оптика даст форму. «Свод» сейчас видит вероятность, а не корпус.

Красная рамка стала жёлтой. Ракетчики не запустили боеприпасы. Через несколько секунд крупные отметки рассыпались. Под ними радар заметил десятки малых аппаратов, которые шли ниже крыш, используя вагоны как экран.

— Основной рой вдоль грузовых путей! Дистанция девятьсот! — передал Кирилл.

Самат поднял руку.

— Первая и вторая группы, работать дешёвыми средствами. Ракеты держать. Роман, левый край твой. Денис, следи за приводом. Кирилл, закрывай дорогу.

Турель дала короткую очередь. Первый аппарат разлетелся над вагоном, второй взорвался между рельсами. Роман повёл ствол вправо. Внешний датчик показал пятьдесят четыре градуса.

— Пауза, — сказал я.

— Ещё три цели.

— Тогда не доводи до упора.

Сетемёт выбросил сеть. Она раскрылась перед двумя аппаратами. Один запутался и рухнул, второй потерял винт и ударился о стену пакгауза. Расчёт начал ставить новую кассету, но затвор не вернулся назад.

Дробовой модуль второй группы срезал передние винты дрону, который прошёл ниже турели. Аппарат упал за блоком и взорвался. Осколок пробил боковое стекло машины.

— Вторая группа, сменить точку! — приказал Самат.

Тягач тронулся и наехал на обломок. Шина лопнула. Машина осталась поперёк дороги и закрыла часть сектора.

Кирилл запустил четыре перехватчика. Первый догнал ударный аппарат у склада и столкнулся с ним. Второй и третий ушли к водоводу.

— Четвёртый потерял управление. Помеха растёт.

Постановщик помех включили на полную мощность. Картинка на пульте рассыпалась. Вместе с вражескими аппаратами вниз пошёл один из перехватчиков у водовода.

— Глушение уменьшить на северном секторе, — потребовал Кирилл.

— Уменьшим — рой получит навигацию, — ответил Павел.

— Я свои машины тоже теряю.

Часть роя уже шла без внешнего управления, по загруженному маршруту.

— Помехи оставить, — решил Самат. — Кирилл, переходи на проводной маяк.

Кирилл переключил пульт на кабель к пусковой рамке. Из четырёх перехватчиков у него оставался один.

Турель дала ещё две очереди. Температура привода поднялась до шестидесяти восьми. Корпус задрожал.

— Стоп! — крикнул я.

— Цель на левом краю.

— Ещё один поворот — закусит.

Роман отпустил спуск, но автоматика продолжила вести аппарат. Ствол дёрнулся и остановился. На экране появилась ошибка положения.

— Закусило.

— Питание снимай.

Он отключил привод и схватился за ручной вороток. Пока разворачивал ствол, три дрона прошли над вагонами. Один сбил дробовой расчёт. Второй взорвался у кабельной будки. Третий пошёл к машине «Свода».

Вера вывела машину «Свода» из-под навеса и взялась за переносной модуль помех. Она направила антенну на аппарат. Дрон потерял высоту и врезался в пустой кузов в десяти метрах от неё. Взрыв разбил фару машины.

— Мельник, в укрытие! — приказал Самат.

— После переноса канала.

— Павел перенесёт.

— У него связь сектора.

Вера вытащила блок из стойки, перебежала к бетонной стене и подключила резервную антенну. На планшете снова появилась общая картина. Она работала рядом с нами, а не ждала отчётов в контейнере. После этого я перестал считать её обычным штабным специалистом.

Роман крутил вороток обеими руками. После каждой очереди он менял направление вручную. Я открыл крышку привода. От редуктора пахло горелой смазкой. Восстановленный вал снова повело, а втулка посинела.

— Снимать надо.

— Под огнём?

— Иначе ручной поворот тоже встанет.

Самат услышал нас.

— Сколько замена?

— Три минуты, если запасной готов.

— На тягаче, — сказал Роман. — Под задним сиденьем.

Тягач стоял за турелью, открытый рою. Я пригнулся, добежал до машины и вытащил привод. Пока тащил его обратно, над путями раскрылась осколочная кассета. Металл прошёл по крыше. Один осколок ударил в корпус привода, второй пробил мне рукав выше локтя.

Я лёг за основанием и подтянул узел.

— Роман, ещё две очереди вручную. Потом снимаем редуктор.

— У меня сектор открыт.

— Через две очереди он всё равно откроется.

Самат передал второй группе закрыть наш край. Роман отстрелял короткую ленту и снял питание.

Я открутил три болта. Нижний не шёл: резьбу повело после утреннего удара. Пришлось срезать головку компактным резаком. Искры летели в щебень. Роман прикрывал меня щитом.

— Справа!

Мы прижались к основанию. Дрон прошёл над турелью и сбросил кассету. Заряд разорвался у тягача. Осколок ударил Романа в наплечник и разорвал верхний слой защиты.

— Цел?

— Плечо двигается. Работай.

Я снял привод. Втулка распалась пополам. Запасной узел тоже оказался восстановленным, хотя в реестре значился складским резервом. По корпусу шёл сварной шов. Проверять ресурс было поздно. Я поставил его на три целых болта, а вместо срезанного крепления протянул стальную ленту через раму.

— Это не удержит отдачу, — сказал Роман.

— Несколько очередей удержит. Стреляй короткими.

Турель дёрнулась, прошла вправо и остановилась на цели. Температура нового узла уже была сорок один градус.

— Готово.

Роман открыл огонь. Два аппарата упали перед насыпью. Третий взорвался в воздухе, засыпав позицию горящими обломками.

Рой разделился. Основная масса шла к северной группе, несколько целей повернули к водоводу. «Свод» снова предложил дальние ракеты. Приоритет получили четыре аппарата с крупными тепловыми отметками.

— Оптика подтверждает два носителя, — сообщил Кирилл. — Остальные могут быть приманками.

Вера разрешила две ракеты. Первая уничтожила носитель до сброса малых аппаратов. Вторая потеряла цель в помехах, перенацелилась по команде «Свода» и ударила у водовода. На экране оставались две крупные отметки.

— Почему не запускают ещё? — спросил Павел.

— «Свод» снял приоритет, — ответила Вера. — Обе цели признаны ложными.

Одна отметка исчезла возле фермы. Вторая распалась на облако отражателей.

— Верно снял, — сказал Павел.

Боезапас ракетной группы уменьшился до четырёх. Дешёвых целей оставалось больше двадцати.

Мобильные расчёты держали рой пулемётами и сетями. Кирилл направил последний перехватчик на аппарат, шедший к складу боеприпасов. После столкновения оба упали за северной стеной.

— Перехватчиков нет.

— Принимай камеру второй группы, — приказал Самат.

Павел перераспределил каналы. Между северной группой и позицией у водовода появилась полоса без устойчивого наблюдения. Радар видел её через отражения от цистерн, а камеры перекрывали друг друга.

— Дыра над дорогой, — сказал Кирилл. — Один низкий прошёл между секторами.

Аппарат скрылся за пакгаузом. Самат вызвал третью группу, но помехи закрыли ответ.

Дрон появился над цистернами. Он шёл почти у трубопровода. Турель Романа стояла в другом секторе. Пока привод поворачивал ствол, аппарат нырнул за пустой резервуар и вышел к цистерне с топливом для генераторов.

— Всем от цистерн! — приказал Самат.

Роман дал очередь, но пули прошли позади. Дрон врезался в верхнюю часть резервуара. Взрыв сорвал люк, топливо выплеснулось на площадку и загорелось вдоль бетонного борта.

Жар дошёл до нас сразу. Дым закрыл дорогу и машину второй группы. Один расчётчик пытался вытащить из тягача ящик с кассетами.

Самат побежал к нему, пригибаясь за бетонным краем. Я взял огнетушитель и пошёл следом. Возле машины пламя уже лизало заднее колесо.

— Ящик брось! — крикнул Самат.

— Там новые сети!

— Брось и выходи за мной!

Расчётчик отпустил ящик. Самат схватил его за разгрузку и повёл вдоль стены, где дым был реже. Я сбил огонь с колеса, но топливо растекалось быстрее. Тягач пришлось оставить.

Евгения встретила нас за пакгаузом. У расчётчика была повреждена кисть. Самат пересчитал людей. Двое из третьей группы не отвечали, пока Павел не восстановил проводной канал. Они ушли к водоводу и продолжали бой с другой точки.

— Северный проезд закрыт дымом. Отход через ремонтный двор.

— Всем группам смещаться туда после залпа, — приказал Самат. — Машины не ждать. Оружие, которое можно снять, несите руками.

Роман снял блок наведения с турели. Я отключил новый привод и оставил ствол на тягаче. Мы унесли вычислитель и короб с остатком ленты. Вера забрала переносной модуль «Свода». Её техник тянул кабель, не успевая сматывать его.

К ремонтному двору рой уже редел. Третья группа уничтожила ещё один аппарат у водовода. Несколько аппаратов прошли над станцией, но потеряли навигацию и упали среди вагонов.

В 05:08 радар снял массовую тревогу. Отдельные отметки держались ещё двадцать минут. За оборудованием не возвращались, пока сапёры не проверили обломки.

У края двора Марат остановил медицинскую платформу и снял с неё перевязочные пакеты. Автоматика снова показывала маршрут к старой позиции, но тяговый контур он разомкнул вручную. Евгения забрала сумки и велела не включать машину до проверки. Платформа осталась у стены с выдернутым силовым разъёмом, пока рядом принимали раненых.

Цистерна горела до рассвета. Мы потеряли топливо, тягач второй группы, четыре перехватчика и турельную раму. Троих ранило осколками. У Романа под наплечником налился тёмный след, но кость уцелела. Евгения перевязала его и запретила поднимать тяжёлое.

— Когда новую турель собирать? — спросил он.

— Когда начнёшь слушать запреты.

— Тогда нескоро.

После семи Вера вызвала меня к машине «Свода». Самат и Павел уже были там. На экране открыли журнал расхода. Система предлагала шесть пусков в начале боя, затем Вера ограничила приоритет. Позже по предложению «Свода» она разрешила только два подтверждённых пуска и сохранила четыре ракеты.

— Решение было правильным. Ложные цели ушли, носители сбиты.

— Первый приоритет ограничила я, — ответила Вера. — Второй система сняла сама. Причины в рабочем журнале нет.

Она открыла техническую сводку. Под строкой сохранённого боезапаса стояло: «вероятность повторного прохода по памяти маршрута». Фраза появилась после боя и не имела ссылки на радарные данные.

— Чья память? — спросил Самат.

— В документации такого параметра нет.

Павел предположил, что речь о библиотеке прежних налётов. Система могла сохранить ракеты для следующей волны по тому же направлению. Объяснение звучало разумно, но в журнале не было расчёта вероятности.

Я посмотрел на карту. Утренний рой вошёл вдоль тех же путей, по которым вчера пришёл первый налёт. Дыра между секторами тоже лежала на этой линии.

— Вчера «Свод» предупредил про железнодорожную ось, — сказал я. — Сегодня основной рой шёл там же.

— Поэтому и сохранил ракеты, — ответил Павел. — Ждал повтор.

— Формулировка появилась после боя. Во время решения её не было.

Самат закрыл карту ладонью.

— Полезность оставляем. Объяснение пока не принимаем.

Он приказал к полудню восстановить мобильные группы на новых точках. Роману предстояло получить другую раму, Кириллу — собрать перехватчики из уцелевших деталей. Мне достались два снятых привода и тягач с пробитой шиной.

У двери Вера остановила меня.

— Вы правильно заметили повтор направления.

— Я только видел карту.

— Большинство смотрит на результат. Вы смотрите, откуда он взялся.

В бою она не доверилась первой зелёной отметке, сохранила ракеты и сама вынесла модуль из-под удара. Этого хватало, чтобы уважать её как полевого специалиста. Узлу я доверял меньше: он снова оказался прав, а причина появилась после того, как всё закончилось.

К 07:30 пожар погасили пеной. На северной дороге размечали три новые позиции. Следующий рой ожидали вечером, и утренний налёт уже записали как первую смену ежедневной обороны.

Часть II. Полезная система

Глава 7. Дешёвый огонь

14–15 августа 2058 года

Сектор железной дороги. Сменные огневые позиции Лин-Грузового

Ствол на новой раме перегрелся после сорока трёх выстрелов. Роман снял палец со спуска, а я тянулся к защёлке кожуха. Над путями догорал сбитый аппарат, и его обломки ещё падали на щебень. Самат не дал нам закончить проверку на месте.

— Сворачиваемся. Следующий удар придёт сюда.

— Привод горячий, — сказал я. — Снимем сейчас, на ходу его закусит.

— У тебя две минуты. Потом грузим вместе с неисправностью.

Первая позиция стояла у северной стрелки, где накануне сгорела цистерна. Мы сделали один залп по трём аппаратам и сразу потеряли укрытие: противник мог вычислить точку по вспышкам и радиокомандам. Роман открыл кожух, я пролил на корпус немного воды из технической фляги. Пар обдал лицо. Внутри смазка стала почти чёрной.

Я отпустил крепление датчика, выровнял его и заменил оплавленный провод к внешнему термометру. Самат отсчитывал время, стоя у тягача. На исходе второй минуты мы закрыли кожух, подняли опоры и ушли к следующей точке. Турель ехала с повёрнутым вправо стволом, потому что привод не вернулся в транспортное положение.

Вторая позиция находилась за мастерской путевой службы. Тягач встал носом к выезду. Расчёт сетемёта занял бетонную нишу, а Кирилл разложил у стены три дешёвых перехватчика. Четвёртый лежал без батареи: её переставили на исправный аппарат.

— Заряд восемьдесят два. Склад обещал полные.

— Склад обещал и новый привод, — ответил я.

Роман услышал нас из люка и наклонился к открытому борту. Он усмехнулся.

— Значит, у нас почти новая батарея и почти новый привод. Победа по ведомости.

Я подключил турель к внешнему аккумулятору. На экране осталось шестьдесят четыре процента, хотя утром блок стоял на зарядке. Кабель нагрелся возле разъёма. Я снял защиту и увидел потемневший контакт.

— Этот блок после смены на разбор, — сказал я.

— После смены он снова будет на зарядке, — ответил Роман. — Других нет.

Самат подошёл к борту и постучал пальцем по корпусу. Планшет считал заряд нормальным.

— Сколько выдержит?

— Один короткий бой. Потом напряжение просядет, привод станет медленнее.

— Отмечай на корпусе. После пятидесяти процентов турель только вручную.

Я провёл белую черту на боковой панели. Роман хотел возразить, но в общем канале прозвучало предупреждение «Свода». Система указала низкий проход вдоль ремонтной мастерской. До входа оставалась минута сорок.

Кирилл поднял малый разведчик на высоту фонарного столба. В камере мешала пыль, однако у дальней фермы появилась движущаяся точка.

— Есть аппарат. Идёт один, за ним ещё два ниже крыши.

— Первая группа, приготовиться, — приказал Самат. — Передатчики до команды не включать.

Мы дождались, пока первый дрон вышел из-за мастерской. Сетемёт раскрыл сеть у самого пролёта. Аппарат запутался и упал между путями. Роман сбил второй короткой очередью. Третий повернул к тягачу, но перехватчик Кирилла врезался в него сбоку.

После последнего выстрела Самат сразу поднял группу. Мы не стали проверять обломки. Через четыре минуты мина легла в бетонную нишу, где только что сидел расчёт сетемёта. Осколки пробили оставленную упаковку от кассеты.

— «Свод» угадал проход, — сказал Павел по кабелю. — И время почти точно.

— Первый аппарат Кирилл тоже увидел, — ответила Вера.

— За двадцать секунд до входа. «Свод» дал почти две минуты.

Штаб занёс прогноз в подтверждённые. В журнале источник снова обозначили как слабую корреляцию, но на этот раз радар и камера показали реальные цели. Белой строки я не увидел. Вера проверила запись и ничего не сказала.

У следующего укрытия мы остановились только потому, что тягач начал тянуть влево. Осколок застрял в боковине передней шины и медленно выпускал воздух. Домкрата под машиной не хватало по высоте, поэтому я подложил под него обломок шпалы. Роман держал турель ручным тормозом, пока я менял колесо.

— Сколько у нас запасных? — спросил он.

— Теперь ни одного.

— В снабжении числятся два.

— Пусть одно колесо привезёт другое.

Самат услышал и передал заявку на склад. Ответ пришёл через минуту: запас подтверждён, доставка ожидается вечером. Я сохранил номер заявки, хотя уже знал, что подтверждение не означает шину на площадке. После этого мы снова двинулись. Налёт закончился, но смена позиции забрала почти столько же времени, сколько сам огонь.

Третью позицию мы заняли у грузовой рампы. Пока Роман наводил турель вручную, я снял батарею и заменил контакт пластиной от старого силового блока. Работа заняла двенадцать минут. За это время заряд упал ещё на шесть процентов, хотя оружие не стреляло. Вентилятор охлаждения забился пылью и тянул ток впустую.

Кирилл собрал возле рампы пятерых пехотинцев. Их отправили к нам на усиление после утреннего боя. У каждого был карабин с дробовой насадкой, но только один умел отличать ударный аппарат от своего перехватчика по звуку.

Он включил запись на пульте. Сначала прошёл высокий ровный гул.

— Этот держит обороты и высоту, — сказал он. — Обычно несёт заряд дальше. По одному звуку стрелять рано, но голову поднимайте сразу.

Он включил следующую запись. Гул шёл неровно, с короткими провалами.

— Здесь винты подстраиваются постоянно. Такой аппарат идёт ниже и обходит препятствия. Услышали провал — смотрите вдоль стены, а не в небо.

Солдат у края рампы спросил, как звучит наш перехватчик. Кирилл сразу включил ещё одну запись.

— Быстрее и выше. Но под помехами разницы почти нет. Поэтому перед выстрелом ищите наш световой знак на брюхе.

— А если знак в пыли не видно?

— Тогда держите огонь, пока аппарат не войдёт в ваш сектор. Упущенный дрон можно взять соседним расчётом. Сбитый свой уже не вернёшь.

Кирилл говорил без лишних слов. Он показал, как искать источник звука среди отражений от вагонов. Затем каждому назначил одну точку наблюдения. Через десять минут пехотинцы перестали крутить головами во все стороны. Один следил за крышей мастерской, другой держал просвет под водоводом.

Я закончил с батареей и проверил ствол. Хромированное покрытие у патронника начало сходить. По учёту ресурс оставался больше двух тысяч выстрелов. Фактически после нескольких ремонтов он снова перегрелся накануне. Роман посмотрел на запасной, закреплённый на раме тягача.

— Меняем, — сказал я.

— Он последний.

— Этот может повести при следующей длинной очереди.

— Если поставим новый сейчас, через два дня останемся без него.

— Если этот разорвёт, останемся без турели сегодня.

Роман провёл ветошью по патроннику и показал мне поверхность. Масло легло ровно, видимой трещины не было.

— Держим короткими.

— Ты вчера тоже держал короткими.

— Вчера через наш сектор шёл рой.

— Поэтому привод меняли под осколками.

Он закрыл затвор и отказался отдавать ствол. Я снял блокировку питания. Роман сразу положил ладонь на крышку.

— Люди у рампы без турели останутся открытыми. Ты железо спасаешь или их?

— Я пытаюсь оставить им оружие, которое не развалится во время боя.

— Пока ты его разбираешь, оружия у них нет.

Самат подошёл после последней реплики. Он осмотрел патронник через ручной прибор, затем велел Роману отдать запасной ствол.

— Меняем не сейчас, — решил он. — Старый держим до первого нагрева. Запасной кладём рядом. Денис готовит инструмент, чтобы сменить за две минуты. Длинные очереди запрещены.

Роман согласился, потому что турель оставалась в работе. Я согласился, потому что замена уже лежала под рукой. Полной замены мы не сделали, но и ведомости на слово не поверили.

Перед вечерней сменой Евгения принесла нам две канистры воды и заставила Романа снять наплечник. Утренний осколок оставил под защитой распухший след, и рука поднималась хуже. Роман уверял, что для спуска ему достаточно одного пальца. Евгения затянула повязку и сказала, что следующим пальцем он будет подписывать отказ от лечения.

Я в это время чистил канал подачи. Внутри застрял кусок гильзы, сплющенный затвором. Если бы он ушёл дальше, ленту заклинило бы в начале очереди. Роман посмотрел на обломок и перестал спорить о проверке после каждого залпа.

Самат сократил нашу следующую смену на двадцать минут. Вместо отдыха мы перенесли турель на третью точку и закопали кабель питания под щебень, чтобы его не перебило колёсами. Война будущего снова требовала лопаты и пары целых перчаток.

К вечеру позиционная работа стала повторяться. После каждой короткой очереди мы снимали питание, опускали опоры и уходили на новую точку. Противник отвечал по прежней отметке, находя только горячие гильзы и следы колёс. Иногда мины приходили через три минуты, иногда через пятнадцать. Самат не разрешал угадывать безопасный срок.

Ствол нагревался быстрее. Батареи садились ещё до выработки боекомплекта. Из шести кассет сетемёта две не раскрылись из-за повреждённых вышибных зарядов. Кирилл разобрал один перехватчик и раздал его детали на остальные аппараты. К полуночи у него осталось две машины, способные взлететь.

Снабжение продолжало присылать зелёные отчёты. В них батарей хватало на трое суток, стволы имели половину ресурса, а кассеты прошли проверку. Я начал записывать фактический остаток мелом прямо на корпусах. К утру вся техника была покрыта цифрами, которые не совпадали с экраном.

В 00:36 «Свод» выдал второй прогноз. Цели должны были пройти через разбитый участок забора у западного пакгауза. Мы сменили позицию заранее и поставили сетемёт в старой погрузочной яме.

Павел считал прогноз достаточно точным, чтобы не поднимать малый дрон. Кирилл всё равно запустил аппарат на кабельном маяке.

— Проверка лишней не бывает, — сказал он.

— Батарею береги, — ответил Павел. — У тебя две машины.

— Если прогноз ошибся, одна машина будет дешевле расчёта.

Самат разрешил короткий вылет. Камера поймала три аппарата за двадцать секунд до входа. «Свод» показал пять. Два шли так низко, что радар слил их с ограждением.

Первую пару забрала турель. Ствол нагрелся до установленной отметки. Я держал перчатки и ключ. Роман снял ленту, мы открыли кожух и вытащили старый ствол. Металл оставался горячим, перчатки начали дымиться у пальцев. Запасной встал без подгонки.

— Минута сорок восемь, — сказал Самат.

Роман подал ленту и успел встретить последний аппарат у пакгауза. После залпа группа снялась с позиции. Ответный огонь пришёл по погрузочной яме, когда тягач уже проходил за мастерской.

В штабе второй прогноз тоже признали подтверждённым. Командование потребовало расширить автоматическое распределение целей между мобильными группами. Вера разрешила «Своду» предлагать сектора, но оставила ручное подтверждение огня.

— Два точных прогноза подряд, — сказал Павел. — Мы всё равно каждый раз спорим с системой.

— Мы проверяем, — ответила Вера.

— Пока проверим, цель уйдёт.

— Сегодня не ушла.

Я ожидал нового спора, но Павел только обновил карту. После двух точных предупреждений штаб начал обращаться со «Сводом» как с надёжным наблюдателем. На позициях тоже стало спокойнее. Люди перестали вздрагивать от каждого шума над крышей и ждали красной полосы на планшете.

Утром 15 августа мы заняли третью сменную точку у старой водоотводной канавы. Я лёг под турель и менял кабель привода, когда пришёл новый прогноз. «Свод» отметил проход одиночной группы через пустырь за насыпью. Уверенность стояла высокой. До контакта оставалось три минуты.

Самат приказал выдвинуться к пустырю. Кирилл поднял последний исправный разведчик. Камера показала только серую землю и край разрушенного ограждения.

— Целей нет.

— Время ещё есть, — ответил Павел.

Мы ждали за бетонным бортом. Турель держала проход, пехотинцы следили за крышами, сетемёт был взведён. Три минуты закончились. Потом прошло ещё две. Радар оставался чистым.

— Могли повернуть, — сказал Павел.

Вера запросила повторный расчёт. «Свод» сохранил предупреждение и сместил точку на тридцать метров к востоку.

— Проверим место, — решил Самат. — Без стрельбы. Круглов, Кирилл, со мной. Остальные держат позицию.

Мы прошли вдоль насыпи и спустились на пустырь. Земля там была перемешана со шлаком. Свежих следов винтов или обломков я не увидел. Кирилл провёл аппаратом над ограждением и снова сообщил, что целей нет.

В точке, которую отметил «Свод», находилась старая воронка. Её край зарос травой, а на дне лежала вода. Самат остановился и показал на тёмный кусок металла возле бетонной плиты.

Я раздвинул щебень ножом. Под ним оказался жетон с оборванной цепочкой. На поверхности сохранились фамилия и номер части. Боец служил не у нас. Дата в метке была шестилетней давности.

— В базе есть? — спросил Самат.

Павел проверил номер по планшету. Связь несколько раз сорвалась, прежде чем пришёл ответ. Кирилл поднял голову к пустому небу.

— Пропал при отходе. Место гибели не установлено.

— Значит, прогноз был не про дроны? — спросил Кирилл.

— Прогноз указал воздушную цель, — сказала Вера по каналу. — Другого объяснения в журнале нет.

Самат велел не трогать дно воронки до сапёров и группы поиска. Я положил жетон в пакет, записал точные координаты и время находки. На планшете предупреждение уже получило отметку «контакт не подтверждён».

Мы вернулись на позицию без выстрела. Для штаба третий прогноз остался ошибкой модели. Для меня он вывел нас к месту, где лежал жетон бойца, которого шесть лет считали пропавшим. Совпадение можно было принять один раз, но таких совпадений становилось больше.

К полудню смену закончили. Турель работала с новым стволом, однако батарея держала меньше половины обещанного времени. Кирилл собирал один аппарат из трёх повреждённых. Самат передал найденный жетон группе поиска и велел каждому расчёту по-прежнему проверять предупреждения своими глазами.

В 12:18 склад вызвал Марата: три грузовые платформы с боеприпасами приняли новый маршрут без его подтверждения. На карте они уже сворачивали с безопасной дороги к закрытой восточной развязке. Мы ещё не успели снять инструмент с тягача, когда Самат приказал запускать ремонтную машину.

Глава 8. Маршрут, которого нет

15 августа 2058 года, 18:10–23:00

Складской двор Лин-Грузового. Восточная развязка

Днём мы остановили три грузовые платформы у складских ворот: шлагбаум не пропустил их на закрытую дорогу. Марат удалил задачу и заново загрузил безопасный маршрут. К вечеру машины заполнили боеприпасами.

В 18:10 ворота открыли. Первая машина прошла прямо, вторая повторила её движение. Третья задержалась у разметки, словно проверяла путь, затем повернула вслед за ними. Марат смотрел на планшет и не сразу заметил, что синяя линия на экране изменилась.

— Они опять идут к восточной развязке.

Я поднялся на подножку ремонтной машины. За складским двором дорога расходилась. Прямой путь вёл к нашим позициям, правый — к мосту, уничтоженному ещё весной.

— Ты маршрут подтвердил? — спросил я.

— Подтвердил прямой. С контрольной точкой у ремонтного двора.

Марат нажал перехват управления. На планшете появилась жёлтая рамка, потом ответ системы: «Команда принята в очередь». Платформы не замедлились.

— Останавливай первую аварийным каналом.

— Он тоже в очереди.

Самат вышел из склада и увидел, куда уходят машины.

— Боеприпасы на борту?

— Полная загрузка, — ответил Марат. — Две платформы с лентами, третья с кассетами.

— Догоняйте. Павел, закрой им маршрут через станционную сеть.

Павел ответил из диспетчерской, что уже ставит запрет на восточный сектор. Через несколько секунд на нашем планшете появилась красная зона. Платформы продолжили движение. Над первой машиной мигнул белый ходовой огонь — знак подтверждённой автономной задачи.

Я завёл ремонтный тягач. Марат сел рядом, положил планшет на колени и пристегнул ремень. Самат забросил в кузов катушку буксировочного троса.

— Я поеду с вами.

— На складе людей не хватает, — сказал я.

— Поэтому вернём груз, а не будем потом объяснять, куда он уехал.

Он забрался в кузов и постучал по кабине. Я вывел тягач со двора. Платформы уже шли между пустыми вагонами, точно повторяя путь ведущей.

Марат снова запросил управление. Система потребовала подтверждение оператора. Он приложил браслет, ввёл код и выбрал остановку. Ответ пришёл тем же: команда поставлена в очередь после завершения опасного участка.

— Какой опасный участок? — спросил Самат из кузова.

— По их карте весь путь до моста безопасный. Опасным считается вмешательство в колонну.

— Значит, она защищает маршрут от нас.

Марат открыл объяснение решения. На экране появилась строка: «Маршрут подтверждён исторической успешностью. Ручное изменение повышает риск потери груза».

— Моста нет, — сказал я.

— В базе есть.

— На общей карте он уничтожен.

— Платформы используют локальную библиотеку. Обновление прошло утром.

Я прибавил скорость. На выбоине инструмент сдвинулся к борту. Самат закрепил ящики ремнём.

Мы вышли на прямой участок. До первой платформы оставалось около ста метров. Дорога шла вдоль насыпи, справа тянулся бетонный канал. Над ним висели опоры разрушенного трубопровода. Радиосвязь трещала от помех, хотя воздушной тревоги не было.

Павел сообщил, что станционный запрет принят сетью, но маршрут не изменился. «Свод» показывал колонну как штатную доставку по резервному пути.

— Вера рядом? — спросил я.

— Слушает, — ответил Павел.

Вера вошла в канал:

— Я вижу старую транспортную запись. По ней мост работоспособен.

— Когда запись обновляли? — спросил Марат.

— Последняя проверка датирована третьим июня. Источник — автоматический проход снабжения.

— В июне мост уже лежал.

— Знаю. Ищу, откуда пришло подтверждение.

Первая платформа свернула на служебную дорогу и обошла бетонный блок по обочине. Две другие повторили манёвр.

Я вывел тягач рядом с последней платформой. Между машинами оставалось меньше метра. В кузове лежали кассеты сетемётов, закреплённые двумя поперечными ремнями. Если платформа перевернётся, ударные заряды могут сработать.

— Не таранить, — сказал Марат.

— Я и не собирался.

— Люк управления справа, за колесом.

— На ходу туда не добраться.

Самат перегнулся через борт кабины.

— Тросом за раму зацепим.

— Она потянет нас к мосту, — ответил я. — Сначала разорвём привод управления.

Марат открыл схему. Обычный выключатель автоматика могла вернуть после перезапуска. Нужно было выдернуть кабель передней оси, чтобы машина сама остановила тягу.

Я сравнял скорость. Самат перебрался на подножку и закрепил страховочный трос за поручень. Он собирался перейти первым, но я остановил его.

— Я знаю, где кабель.

— Я держу тебя. Марат ведёт тягач.

Мы поменялись местами, не останавливаясь. Марат взял руль. Я вышел на подножку, зацепил карабин за раму и шагнул на узкую площадку платформы. Колесо било щебнем по сапогам. До люка оставалось два метра вдоль борта.

Датчик нагрузки зарегистрировал дополнительный вес, и платформа сместилась вправо. Я прижался к кузову. Самат натянул трос, не давая мне сорваться под колесо.

— Скорость держи! — крикнул он Марату.

— Держу семнадцать!

Люк оказался закрыт сервисным замком. Я вставил ключ, но панель не приняла мой допуск: машина выполняла защищённую доставку. Пришлось забить плоское зубило под край крышки. После двух ударов замок лопнул.

Внутри проходили силовая шина и два кабеля управления. Один уходил к датчикам колеса, второй — к исполнительному блоку. Я потянул разъём. Фиксатор не поддался.

Впереди показался изгиб дороги. За ним начинался спуск к разрушенному мосту. До края оставалось меньше километра.

— Быстрее, Денис! — сказал Марат по связи. — Первая уже на спуске.

Кабель защищала металлическая оплётка. Кусачки её не брали, а искры от резака могли попасть в кузов с кассетами.

Я закрыл люк собой, включил резак на минимальную мощность и прорезал оплётку. Платформа дёрнулась. Из разреза пошёл дым. Я выключил резак и рванул кабель руками. Разъём вышел вместе с частью платы.

Передние колёса встали прямо. Автоматика сбросила скорость. Платформа съехала к обочине и остановилась, прижав колесом край канавы.

Меня бросило вперёд. Страховочный трос натянулся и удержал на площадке. Самат подтянул меня к тягачу.

— Цел?

— Да. Кассеты проверить надо.

Марат резко затормозил рядом с остановленной машиной. Первая и вторая платформы продолжили путь.

— Эту оставляем под охраной, — решил Самат. — Боеприпасы не трогать. Дальше.

Марат поставил на платформу физический блокиратор и снял силовой предохранитель. После этого мы снова поехали. До моста оставалось несколько минут.

Первая машина уже спустилась к каналу. Вторая шла за ней. На их карте мост оставался целым, поэтому скорость не снижалась. Я видел бетонные опоры и тёмный провал между ними. Центрального пролёта не было.

Марат вызвал платформы через ближний сервисный канал. Ответила только вторая. Он поставил аварийную остановку по препятствию и направил на дорогу датчик ремонтного тягача. Система приняла новое облако точек. На карте появился разрыв, но первая платформа продолжила движение.

— Она не принимает внешние данные, — сказал Марат. — Ведущая держит старую карту.

Самат велел остановить вторую. Марат вывел тягач перед ней и включил жёлтый ремонтный маяк. Платформа распознала служебную машину, сбросила скорость и замерла в десяти метрах от нашего бампера.

Первая ушла дальше. До провала оставалось около ста метров.

Я развернул тягач и догнал её сбоку. На обочине лежали куски арматуры. Таранить было нельзя, перескочить на платформу мы уже не успевали. Самат закрепил трос за заднюю проушину тягача и приготовил магнитный захват.

— Пройдёшь слева, я брошу на раму, — сказал он.

— Если захват уйдёт под колесо, нас развернёт.

— Поэтому держи расстояние.

Мы поравнялись. Самат бросил захват. Магнит стукнулся о раму и прилип. Трос сразу натянулся. Ремонтный тягач повело к платформе. Я нажал на тормоз и повернул к внешней обочине. Марат подал команду на лебёдку.

Платформа тянула нас ещё несколько секунд. Потом защита тяги обнаружила сопротивление. Колёса остановились за тридцать метров до разрушенного пролёта.

Мы закрепили машины блокираторами. Марат отключил ведущую через сервисный разъём. На её экране всё ещё светился путь через мост.

— Исторически успешный, — сказал Самат и посмотрел на провал.

Я подошёл к краю. Внизу лежали обломки пролёта. По ним текла мутная вода. На дальнем берегу дорога продолжалась, но съезда не было. Платформа вошла бы в провал вместе с боеприпасами.

Возле ограждения остался свежий след узкого колеса, уходивший под мост. Рядом лежала гильза без пыли.

— Здесь стреляли недавно.

Самат приказал проверить откос. Марат остался у платформ, а мы спустились по служебной лестнице. Внизу пахло сырой землёй и горелой изоляцией. За опорой стоял малый грузовик снабжения. Переднее колесо было разбито, дверь кабины открыта.

Первого погибшего мы нашли у заднего борта. Он лежал лицом к машине, рука оставалась на крепёжном ремне. Рядом рассыпались пустые контейнеры для батарей. Второй был в кабине. Защитный экран получил несколько попаданий, одно прошло через боковое стекло.

Самат вызвал группу поиска. Павел проверил район по сводке и сообщил, что заявленных потерь возле моста нет.

— Номер машины передаю, — сказал я.

Павел нашёл запись через минуту. Грузовик вышел со склада два дня назад и не вернулся. Экипаж числился пропавшим после потери связи. Последний маршрут в журнале заканчивался на восточной развязке.

— До моста они доехали, — сказал Самат. — Значит, связь потеряли уже здесь.

Следы вели от боковой дороги к бетонной трубе. Стрелявшие ушли. Возле кабины сохранился разбитый служебный планшет.

Я снял жетон с погибшего у борта. На нём было имя Артёма Саянова. Второй жетон нашли под ремнём водителя — Леонид Варек. В сводке оба значились пропавшими без вести.

Вера вышла на связь и попросила не передавать данные через общий канал, пока она не откроет локальный журнал маршрута. «Свод» продолжал считать дорогу безопасной. На её экране риск засады оставался низким, а мост обозначался пригодным для автономного транспорта.

— Отправляю снимок разрушения, — сказал я.

— Получила. Карта не меняется.

— Передаю номера жетонов.

— Подождите. Сначала прочитайте их вслух.

Я решил, что она хочет записать свидетельство с места. Поднёс жетон к камере и произнёс:

— Артём Саянов. Снабжение, номер жетона тридцать один — восемьдесят четыре. Найден у грузовика под восточным мостом.

На планшете Самата мигнула карта. Зелёная линия маршрута стала жёлтой.

Я взял второй жетон.

— Леонид Варек. Водитель той же машины. Найден в кабине.

Риск изменился мгновенно. Маршрут покраснел, мост получил отметку «подтверждённая потеря», а система отозвала задачу со всех трёх платформ. На экране появилось требование выбрать другой путь.

Марат увидел изменение со своей позиции.

— Я ничего не вводил. Только слушал канал.

— Я тоже, — ответила Вера. — Сводка ещё не обновлена.

Самат спросил, что именно изменило расчёт. Вера не ответила сразу.

— Риск вырос после первого имени. Второе закрыло маршрут. Запись распознавания речи попала в закрытый модуль раньше, чем в журнал потерь.

— Значит, системе достаточно произнести имя?

— Этого мы пока не знаем. Не повторяйте проверку ради опыта.

Я посмотрел на погибших. До того как мы назвали их, маршрут считался успешным. Два дня назад грузовик дошёл до моста, связь оборвалась, а в отчёте осталась пропажа. Для базы доставка оставалась незавершённой, но потерей её тоже не признали. Система продолжала вести машины тем же путём.

Группа поиска прибыла в 21:40. Евгения подтвердила давность смерти. Тела перенесли к медицинской машине, а сапёры проверили дорогу под мостом.

Мы вернулись к платформам. Отозванная задача исчезла, и Марат получил полное ручное управление. Первую машину развернули буксиром. Вторая пошла за ремонтным тягачом по ближнему каналу. Третью пришлось оставить у обочины: вырванная плата управления передней осью ремонту на месте не подлежала.

Боеприпасы перегрузили на две исправные платформы. Подъёмник не доставал до кузова, поэтому ящики переносили руками.

Последняя лента легла на место. Я спросил Марата, зачем автономной системе старая библиотека, если общая карта обновляется каждый час.

— Потому что связь пропадает, — ответил он. — Машина должна довезти груз, даже если штаб замолчал. Для этого хранит маршруты, которые раньше проходили без потерь.

— Этот путь закончился засадой.

— В отчёте она не закончилась ничем. Машина пропала. Причина неизвестна. Для алгоритма маршрут оставался недоказанным, а старые успешные проходы весили больше.

Самат закрепил последний ремень.

— Теперь причина известна. Проверьте, сохранится ли она после синхронизации.

Вера сохранила локальный журнал до передачи в штаб. Белой строки в нём не было. Изменение риска имело время и ссылку на распознанные имена, но поле источника снова указывало закрытый модуль.

Обратно шли медленно. Две платформы держались за тягачом, у третьей остался часовой пост. Повреждённую кассету отправили на проверку.

В 22:47 Павел передал обновлённую сводку. Артёма Саянова и Леонида Варека перевели из пропавших без вести в погибшие. Восточный маршрут закрыли официально. После синхронизации красная отметка на карте сохранилась.

Облегчения не было. «Свод» закрыл дорогу лишь после того, как в канале прозвучали два имени. Разрушенный мост, следы стрельбы и брошенный грузовик сами по себе не изменили оценку «Свода».

У ворот нас встретила Вера. Она дождалась, пока платформы встанут под разгрузку, и отвела меня к боксу. Там стояла ещё одна грузовая машина. Кузов был пуст, хотя в журнале значилась доставка медицинского имущества. Камеры показывали, что платформа вышла со склада с грузом и вернулась без остановок.

На правом борту темнела смазанная полоса. Под днищем лежала сероватая пыль, которая не походила на дорожную.

— Эту платформу нашли у восточной развязки, — сказала Вера. — Она вернулась сама и не отвечает на вопрос, где оставила груз. Нужна физическая проверка.

Я взял фонарь и полез под кузов. После маршрута, которого не было на карте, пустая машина казалась обычной поломкой только до первого открытого люка.

Глава 9. Пустая платформа

16 августа 2058 года, 00:20–05:10

Ремонтный бокс Лин-Грузового. Восточная развязка

Кровь нашлась под правым бортом, когда я снял защитный кожух. Узкая полоса тянулась от задней стойки к ступице и обрывалась над колесом. В углублении ещё блестела влага, к краю прилип кусок ткани.

Марат поставил переносную лампу ближе. Платформа стояла в ремонтном боксе с пустым кузовом и выключенным тяговым контуром. Её привели сюда по ближнему каналу после возвращения с восточной развязки. На пути к старой площадке камеры показывали медицинские ящики. К этому времени кузов был пуст, человека запись не показывала. Обратный путь прошёл без остановок.

— Руками не трогай, — сказала Евгения от двери.

Она надела перчатки, провела тампоном по металлу и убрала пробу в кассету. Вторую взяла с ткани. Портативный анализатор работал почти минуту.

— Человеческая. Свежая. Несколько часов, не больше.

— Я просмотрел обратный путь до ворот. Кузов всё время пустой, — сказал Марат.

— Камера смотрит внутрь. Кровь осталась под бортом.

Я посветил ниже. На внутренней стороне колёсной арки лежала сероватая пыль. Налёт собирался мягкими хлопьями и не осыпался от удара по кожуху.

Вера присела рядом и поднесла к налёту прозрачную пластину. Частицы потянулись за ней, затем легли обратно.

— Снимите образец отдельно, — сказала она. — В общую лабораторию пока не отправлять.

— Почему? — спросила Евгения.

— Сначала поймём, откуда платформа вернулась.

Марат вывел маршрут на экран. Машина вышла со складского двора в 21:58, дошла до промежуточной точки у восточной развязки и вернулась в 23:41. До площадки датчики показывали четыреста десять килограммов. После выгрузки значение упало до нуля, а на обратном пути журнал показывал ровную скорость.

— Задачу доставить медицинские ящики я не ставил, — сказал Марат. — Она пришла из транспортной очереди.

— Кто подтвердил? — спросил Самат.

— Система. Выбрала свободную платформу у старой точки снабжения.

— А сейчас там что?

— Развязка и закрытая дорога.

Самат велел Павлу проверить заявки соседних подразделений. Ответ пришёл быстро: заявленных потерь у восточной развязки не было. Пропавших за последние сутки тоже не числилось. Официально рядом с платформой не могло оказаться человеческой крови.

Евгения повторила анализ и получила тот же результат. Она нашла на ткани след защитного пропитывающего состава. Такой материал использовали в полевой форме, но по обрывку нельзя было определить часть.

Я открыл заднюю стойку. Внутри находился диагностический разъём, забитый серой пылью. Стандартный планшет видел двигатель и тормоза, но не открывал память исполнительного блока. Марат попробовал свой допуск. Система показала, что журнал защищён активной задачей, хотя маршрут уже завершился.

Марат обнаружил, что завершённая задача всё ещё держит блокировку. При физическом разрыве мы могли потерять временные метки.

Вера посмотрела на меня.

— У вас есть прямой сервисный доступ?

Я понял, о чём она спрашивает. Под воротником, у основания черепа, оставался старый промышленный порт. После службы на заводе я пользовался им редко. Через переходник можно было подключаться к ремонтным манипуляторам и получать состояние привода без экрана. Армейские системы этот способ не любили и обычно требовали обычный планшет.

— По документам этот порт с платформой несовместим.

— Нам нужна память блока, а не управление, — сказала Вера. — Десять секунд, питание разорвём вручную.

— Сначала я проверю порт.

Самат выслушал спор и выбрал простой порядок: Евгения проверяет контакт, Вера ставит ограничитель времени, Марат держит силовой разъём. Если появится боль или потеря ориентации, питание снимают сразу.

Кровь была свежей. Если раненый оставался у развязки, до рассвета он мог не дожить.

Евгения протёрла кожу вокруг порта и осмотрела старый шрам фонарём.

— Воспаления нет. После сеанса проверю давление и координацию. Героизм здесь не нужен.

Я ответил, что геройствовать не собираюсь. Евгения заметила, что перед подключением так говорят все.

Вставил переходник в диагностический разъём платформы, закрепил второй конец у основания черепа и сел на ступеньку. Вера отключила беспроводной канал, чтобы машина не получила команду извне. На её терминале появился таймер.

— Десять секунд, — сказала она. — Ничего не подтверждайте. Только считывание.

Марат взялся за силовой разъём и кивнул.

Я коснулся контакта на переходнике.

Сначала пришла обычная схема машины. Передняя ось была смещена на два градуса, правая ступица грелась, задний датчик груза не отвечал. Потом схема исчезла.

Чужая рука держалась за край борта. Пальцы скользили по металлу, оставляя кровь. Платформа набирала скорость, а раненого волокло рядом с колесом. Из темноты прозвучал мужской голос:

— Не бросай раненого…

Рука сорвалась. Перед глазами мелькнула бетонная труба с жёлтой полосой у входа. На этом всё оборвалось.

Я оказался на полу бокса. Марат уже выдернул питание. Евгения держала меня за плечо и просила посмотреть на лампу.

Евгения показала два пальца, спросила, где я нахожусь, и потребовала назвать имя. Я ответил правильно.

Вера остановила запись. Таймер показывал семь секунд. Я не помнил, как сполз со ступеньки. Во рту появился металлический привкус, затылок болел возле разъёма.

— Что увидели? — спросил Самат.

Я описал руку, борт и бетонную трубу. Больше там ничего не было. Ни лица, ни имени, ни направления дороги. Голос повторил одну просьбу и замолчал.

Марат открыл техническую карту восточной развязки.

— Там три дренажных выхода.

— Жёлтая полоса есть на одном, — сказал я. — Справа от входа, примерно на высоте колена.

Вера повернула терминал к нам. До подключения журнал платформы показывал нулевую вероятность контакта с человеком. В момент, когда я коснулся порта, на маршруте появилась серая отметка. Она держалась меньше секунды и исчезла после разрыва питания.

— Координата? — спросил Самат.

— Участок длиной двести сорок метров возле старого съезда, — ответила Вера. — До подключения отметки не было ни в одном слое.

Сняв с меня переходник, Евгения хотела оставить меня на станции, но я настоял, что голова работает.

Она заставила пройти по линии между плитами. Я сделал несколько шагов, не качнулся и вернулся к платформе.

— В машине сядешь. Если станет хуже, скажешь сразу.

Самат оставил Павла и Романа на станции. С нами поехали Марат, Вера и Евгения. Кирилл поднял единственный исправный микродрон. Батареи хватало на двенадцать минут, поэтому аппарат вёл ремонтную машину только над открытыми участками.

Перед выездом я ещё раз осмотрел след крови. Полоса шла снаружи борта, а не из кузова. Камера действительно могла ничего не увидеть: человек держался ниже её поля зрения.

В 01:17 мы вышли со складского двора. Марат вёл машину вручную. Автономный маршрут не использовали. После случая с мостом Самат требовал сверять каждую развилку с тем, что находилось перед колёсами.

Кирилл сообщил, что дорога чиста. Из-за помех картинка иногда застывала, и аппарат приходилось возвращать ближе. Над восточной развязкой работал чужой постановщик малой мощности. Он не глушил связь полностью, но сбивал навигацию.

Через несколько минут Кирилл добавил, что заряд упал до семидесяти процентов. Самат велел искать не весь сектор, а дренажную трубу и свежие следы возле неё.

Мы миновали место, где вечером остановили платформы. Повреждённая машина осталась под охраной у обочины. За ней дорога поворачивала к старому съезду. На щебне сохранился след колёс пустой платформы.

Марат остановился возле первого дренажа. Труба была наполовину забита грязью, краски на бетоне не осталось. Кирилл опустил аппарат к входу. Камера показала воду и мусор.

Второй выход находился дальше за разбитым ограждением. Мы нашли на борту дороги свежую царапину. На выступе висела нитка той же ткани, что прилипла к платформе.

Евгения осмотрела землю фонарём.

— Здесь падал человек. Кровь уходит к канаве.

Следы быстро терялись среди щебня. Я увидел серый налёт на траве. Он лежал отдельными пятнами и тянулся к трубе. Ветер его не разнёс.

Я узнал налёт с платформы. Вера взяла пробу и попросила не наступать рядом. Самат направил фонарь к бетонному входу, где на правой стене шла выцветшая жёлтая полоса.

— Здесь, — сказал я.

Кирилл завёл микродрон внутрь. Сигнал пропал через пять метров из-за арматуры. Перед отключением камера успела показать лежащую в воде сумку.

Самат первым спустился в канаву. Я пошёл за ним. Евгения несла медицинский комплект. Вера осталась у входа с Маратом и держала связь по кабелю, который мы разматывали по мере движения.

Труба была широкой, но идти приходилось согнувшись. Вода доходила до щиколоток. Через несколько метров мы нашли сумку с маркировкой снабжения. Ремень был разрезан, внутри оставались два перевязочных пакета.

— Есть живой? — крикнула Евгения.

Из глубины донёсся слабый удар по бетону.

Мы прошли ещё двадцать метров и увидели человека за боковым отводом. Он лежал на металлической решётке, подняв раненую ногу над водой. Рука была перевязана куском рукава. Кровь пропитала ткань, но сильного течения уже не было.

Евгения опустилась рядом.

— Слышите меня?

— Слышу.

— Имя назовите.

— Антон Левченко. Снабжение… седьмая транспортная.

В базе такой потери не было. Я передал имя Вере, но она попросила пока не отправлять его в общий журнал.

Антон попытался сесть и застонал. Евгения остановила его, проверила повязку и поставила обезболивающее.

— Сколько времени вы здесь?

— Не знаю. Платформа ушла ночью.

— Как вы оказались снаружи борта? — спросил Самат.

Антон несколько раз вдохнул, прежде чем ответить.

— Нас отправили к старой площадке забрать медицинские ящики. Там ударило по машине сопровождения. Платформа приняла возврат. Мы отменяли… она не приняла. Серёга был ранен. Я держал его у борта, пытался поднять. Машина пошла.

— Где Сергей?

— Остался у площадки. Я сорвался на повороте. Дополз сюда.

— Кто сказал не бросать раненого? — спросил я.

Антон посмотрел на меня, не понимая вопроса.

— Я сказал. Когда она тронулась. Кричал оператору, но он уже не отвечал.

— Вы держались правой рукой?

Он поднял перевязанную ладонь. Пальцы были разбиты, на коже остались полосы металла.

Евгения велела прекратить расспрос. Давление у Антона падало. Мы развернули носилки прямо в трубе и осторожно переложили его. Самат взял передние ручки, я задние. Из-за низкого свода приходилось идти боком.

У выхода Марат помог поднять носилки на дорогу. Медицинской платформе после ночных сбоев не доверяли, поэтому Антона уложили в ремонтную машину. Евгения подключила переносной обогрев и закрепила ногу.

Самат напомнил о втором раненом. Евгения потребовала сначала доставить Антона на станцию: он потерял много крови.

В итоге Самат разделил задачу. Марат повёз Антона с Евгенией. Мы с Верой и Кириллом пошли к старой площадке на ремонтном тягаче охраны. До рассвета оставалось меньше двух часов.

На площадке нашли разбитую машину сопровождения и следы поспешного отхода. Сергея там не было. Возле бетонной стены лежала использованная повязка. Следы уходили на север, к служебным складам. Самат передал координаты поисковой группе соседнего сектора. Продолжать вдвоём без прикрытия он запретил.

Вера проверила локальную базу. Седьмая транспортная группа числилась на плановом задании, связь с ней отметили нестабильной. Потерь не было, потому что командир ещё не подал доклад. Для «Свода» люди на площадке не существовали как раненые. Платформа получила приказ сохранить себя и вернуться после удара.

Медицинские ящики выгрузили до атаки, поэтому машина считалась пустой и свободной. Запрос на эвакуацию не прошёл. Вера пояснила, что после выгрузки датчик смотрит только на кузов и не распознаёт человека, который держится снаружи.

Я вспомнил руку, которая скользила по металлу. Камеры не соврали: кузов оставался пустым. Датчики тоже работали по своим правилам. Человек находился рядом с машиной, но за границей того, что она умела считать грузом.

Мы вернулись на станцию в 04:36. Антона уже готовили к операции. Евгения сообщила, что он выживет, если не начнётся внутреннее кровотечение. Поисковая группа нашла Сергея живым у служебного склада. Он ушёл за помощью и потерял связь в помехах.

В ремонтном боксе Вера снова открыла журнал пустой платформы. До моего подключения в нём не было отметок о человеке. После семисекундного сеанса появился короткий пакет без обычного источника. Закрытый модуль связал след крови, маршрут и мой ответ через порт. Точка возле дренажа возникла лишь тогда.

— Вы не могли знать про жёлтую полосу, — сказала Вера. — Камера платформы смотрела назад. В маршрутных данных труба не описана.

— Я видел её несколько секунд.

— И слышали фразу Антона, которую он произнёс на площадке.

— Он мог оставить запись в микрофоне машины.

Вера проверила звуковой журнал. Платформа не имела внешнего микрофона, а служебный канал во время атаки был закрыт помехой.

— Тогда это снова совпадение, — сказал я.

— Совпадение дало координату раненого.

Я сел на край верстака. После подключения болела шея, а лицо Ильи вспоминалось ещё хуже, чем утром. Его голос оставался ясным. Теперь к нему добавилась чужая просьба, которая принадлежала живому человеку и всё равно пришла через след на машине.

Вера достала копию документации «Свода». В списке совместимых устройств она нашла старый тип промышленного нейроинтерфейса. Рядом стояла пометка о служебном порте, который в полевой версии не должен был использоваться.

— Этот код совпадает с вашим переходником. Мне нужен медицинский файл установки.

— Он остался после заводской аварии. К службе отношения не имеет.

— Теперь имеет. Закрытый модуль ответил только после вашего подключения.

К 05:10 платформа стояла под пломбой. Вера заперла образцы серой пыли и автономную копию журнала, а я закрыл диагностический порт и затянул пломбу на панели. Через этот порт короткий повтор привёл нас к живому человеку; повреждённой гарнитурой это больше не объяснялось.

Глава 10. Старый порт

16 августа 2058 года, 09:00–16:30

Медицинский модуль Лин-Грузового. Узел «Свода»

Евгения провела датчиком вдоль шрама у основания моего черепа и задержала его над разъёмом. На экране вспыхнул жёлтый участок, хотя порт не был подключён и внешнее питание сняли ещё в ремонтном боксе.

— Наклони голову.

Я упёрся подбородком в грудь. Кожа под металлическим ободком потянула сильнее обычного, в затылке отозвалась тупая боль.

Евгения спросила, тошнило ли меня после ночного сеанса. Я ответил, что неприятное чувство прошло через минуту, а голова закружилась, когда я поднялся с пола. Она напомнила: на пол я сполз не по собственной воле, и это нельзя вычёркивать из осмотра.

Она подвинула лампу и осмотрела старый шрам через увеличитель. В медицинском модуле было тесно. За перегородкой перевязывали расчётчика с северной позиции, поэтому разговор приходилось вести негромко. Вера стояла у стены с планшетом. Самат ждал возле двери и не вмешивался.

Евгения подключила к порту пассивный считыватель. Прибор не посылал команд, только проверял сопротивление и состояние контактов. На втором канале появилась задержка, которой в заводской карте не было.

Интерфейсу было семь лет. В личном деле его указали как производственный имплант после травмы, но подробного протокола там не оказалось. Я напомнил, что армейская комиссия признала меня годным. Евгения ответила: тогда проверяли шлем и работу с инструментом, а не связь с закрытым военным модулем.

Она попросила сжать её пальцы сначала правой рукой, потом левой. Сила почти не различалась, но левая ответила с небольшой задержкой. Евгения записала результат и дала мне три числа. Через минуту попросила повторить. Первые два я назвал верно, третье пришлось угадывать.

Я сослался на усталость. Евгения поэтому и продолжала проверку: после семи секунд у платформы я потерял порядок трёх чисел, а левая кисть отвечала медленнее. До следующего осмотра она запретила прямые подключения.

Вера напомнила, что без доступа через мой порт они не нашли бы Антона Левченко. Евгения не возражала, но попросила не путать пользу с безопасностью.

— Раненого нашли, — сказала она. — Денис за это расплачивается своим телом. Пока цена кажется небольшой, её удобно не замечать.

Самат спросил, останутся ли последствия. Евгения ответила, что одного короткого сеанса недостаточно для вывода. Старые промышленные интерфейсы рассчитаны на известную нагрузку и прямой обмен с машиной. «Свод» отправил в порт пакет другого типа, а закрытый модуль не выдал медицинский журнал.

— Значит, запрет? — спросил Самат.

— На повторное подключение без меня — да. На работу с обычным инструментом ограничений нет, если головная боль не усилится.

Она заклеила разъём мягкой защитной накладкой и велела полежать хотя бы двадцать минут. Я сел на узкую койку. Отдыхать не получалось: из штаба уже трижды спрашивали, когда Вера закончит проверку совместимости.

— Расскажи, зачем тебе поставили порт, — сказала Евгения. — В карте написано: «после производственной аварии, для управления ремонтными манипуляторами». Эта запись ничего не объясняет.

Я посмотрел на Веру. Она не отвела глаза. Самат остался у двери, хотя мог выйти и дождаться заключения снаружи.

До армии я работал на сборочной линии тяжёлых транспортных рам. Манипуляторы там меняли двигатели и держали секции корпуса, пока ремонтники выставляли крепёж. Старые машины управлялись с пульта, новые принимали команды через нейроинтерфейс. Порт поставили мне не потому, что я был лучшим. После аварии на участке не хватало людей, готовых снова заходить в ограждённую зону.