Она будто утонула, но все еще жила. Откуда-то с поверхности доносились звуки. Она прислушалась, пытаясь различить. Голоса!
Мужской, низкий: «Согласен с расстановкой сил».
Ему что-то вторит, не разобрать.
Обрывки ничего не значащих фраз.
… маркированные баги и отсылаешь мне…
Голоса обретали четкость, плотность. Она уже почти узнавала их. Узнавала как-то неопределенно, безымянно. Никак не могла поймать, чтобы уж точно понять. Они ускользали, словно шелк сквозь пальцы, рассыпались, будто луч света.
Химический запах реагентов и недавней грозы. И – отдаленно – сырной сыворотки. Желудок жалобно сжался.
Сознание неторопливо возвращалось тяжестью собственного тела. Руки. Оказывается, они такие тяжелые и неповоротливые! Она пошевелила пальцами: мягкая шершавая подкладка.
Она помнила страх. Холод. И ярко-оранжевый свет, который залил все вокруг. Кажется, это был ее конец. Или нет? После смерти ведь не может быть ощущения сухости на губах? Острая боль – будто лезвием по коже. Привкус железа.
Она сглотнула и с трудом приоткрыла глаза: темный экран перед глазами с графиком нейроактивности. Справа – шкала загрузки, мигнув, показала сто процентов и медленно погасла.
… я уже прошелся по самым сомнительным точкам. Там все чисто, что удивительно…
Экран погас. Тихо отъехал к ногам, позволив оглядеться. Высокий белоснежный потолок, приглушенный свет снизу, из встроенных в пол светильников. На стуле – аккуратно сложенная одежда.
– Давай сравним узловые параметры в момент того бага и этого? – молодой серьезный голос.
Сердце забилось учащенно.
И тут же, совсем рядом, за ширмой:
– Ну, давай. Попробуем, – бархатистый голос, от которого бросило в дрожь.
Артем! Вася! «Фокус»!
«Господи, я дома!»
Артем еще раз проверил состояние Ульяны по монитору пациента. Отходя от саркофага, покосился на приготовленный Наташей синий костюм и обувь, в какие навигаторы обычно переодевались в каютах. Задвинул ширму и вернулся к своему рабочему столу: на центральном мониторе уже белело загруженное Крыжем диалоговое окно, а в углу экрана – иконка активного вызова по внутренней связи.
Артем принял его:
– Да, Вась. Я готов, – он вывел на экран приготовленные диагностические карты и присланные айтишником пару минут назад резервные коды, на вспомогательном мониторе открыл реестр кодировок. Прищурился, намечая, на какие надо поставить флажки – их он считал наиболее вероятными источниками проблемы. Сел за стол и выдвинул дополнительную консоль: десять рядов джойстиков и рычагов частью окрашенных желтым, частью – зеленым и красным, цветовые экраны и выделенные мониторы. Сейчас активные. – Командуй.
– Я тоже готов, – прошелестел из динамика Авдеев и помахал рукой в видеочате.
– Тоже готовы, – Ираль мрачно кивнул, хохотнул: – Крыж нам с юнгой поручил особо важную миссию – не спускать глаз с главного монитора и разносить всем кофе.
– Согласен с расстановкой сил, – улыбнулся Пауков, потер подбородок, только сейчас вспомнив, что не брит. С сожалением вздохнул: жаль, Улька увидит его таким. Но времени прихорашиваться уже не оставалось. – На вахте Наташа?
– Так точно, – Натка широко улыбнулась из рубки.
– Подключайся в нейросеть «Фокуса», следи за изменениями изнутри. Почувствуешь дестабилизацию, маякуй, – напомнил Пауков. Натка кивнула.
Крыж уточнил:
– Натка, я тебе на рабочий монитор, который справа, вывел значки всех систем жизнеобеспечения. Они сейчас красивые, зелененькие. Это хорошо. Плохо, если пожелтеют. Совсем плохо, если покраснеют.
– Поняла, буду следить и кричать караул, – весело отозвалась Наташка.
– Причем кричать громко и четко, – в тон ей отозвался Василевс и сразу посерьезнел: – Так, Авдей, линия три и четыре: навигация и вооружение. Твой участок. Принимай реестр базовых кодов конфигурации, с которыми будешь сверяться. Находишь несоответствия, маркируешь прогой. Алгоритм такой: баг – стоп диагностика – ввод маркера – запуск диагностики. По завершении работы на линии, выкатываешь все маркированные баги и отсылаешь мне. Я смотрю, какие из них баг, а какие фича. Все ясно?
– Ясно, – Авдеев деловито шмыгнул, – хорошо задокументированный баг становится крутой фичей?
– А то. Зришь в корень, бро… Теперь ты, Паук…Алгоритм не объясняю, так и быть, учитывая, что ты его и придумал, – откашлялся в кулак. – На тебе первая линия – центральное управление и головной компьютер, линия два – жизнеобеспечение экипажа и живучесть судна, девятая – биомодуляция и органический функционал.
– Принимаю, – Артем кивнул, перебросил стартовые параметры в диалоговое окно – данные из него сформируют протокол диагностики.
– На всякий случай, всем напоминаю: восьмую линию не трогать ни при каких обстоятельствах, там бортовые регистраторы, система хранения данных и дубликаты системных показателей.
Авдеев почесал затылок:
– Слышь, мужики, а может, наоборот, восьмую и проверить. Там же должны быть сводные данные. Наверняка, баг тоже зачекало[1], если он есть.
Крыж покачал головой:
– Мартышкин труд. Нам все равно надо будет искать источник бага и перебирать всю систему. Она же может сформироваться из-за срыва кодировки в нескольких узлах, на нескольких линиях.
Авдеев разочарованно вздохнул:
– Ясно. А я уж обрадовался…
– Жизнь – боль, бро, одни обломы, – Крыж расплылся в улыбке. – Всё, мужики, поехали! Ираль, Тим – схема разводки нейросети «Фокуса» на главном мониторе. Авдей помечен зеленым, я желтым, Паук красным. Баги при выявлении мигают маячками. Ваша задача их ловить, как мушек.
– «Как мушек» – это моя тема, – Ираль плотоядно хмыкнул.
– Фуу, – Натка сморщилась.
– Это шутка, – Ираль покосился на девушку и вдруг смутился: – уже давно не практикую.
– Хорош трындеть, рубка! – Крыж прикрикнул на них. – Ваши глаза – все шесть – должны быть в мониторах.
Клириканец и Наташа хором засмеялись:
– Есть «хорош трындеть», старпом.
– Принимаю на диагностику линии три, навигация, и четыре, бортовое вооружение. Загрузочная панель на старт, начальные данные перевожу в диалоговое окно, – Авдеев перебросил стартовые показатели в общий чат.
Диалоговое окно постепенно заполнялось. Трехцветные строки из разномастных символов, цифр и значков в режиме реального времени фиксировались, маркировались.
Цепочка иконок системы жизнеобеспечения на правом от Наташи мониторе успокаивающе светилась зеленым. Девушка видела в нейросети три смешных «бегунка», которые деловито скользили по нейросети, где-то замедляясь, где-то ускоряясь. Зафиксировав расхождение с базовым кодом, оставляли, словно змея старую кожу, огонек на пораженном участке. Ираль и Тим тут же вписывали это в протокол, выгружали координаты ошибки и точное место расхождения. Система подавала короткий звуковой сигнал.
– Уфф, – пыхтел Тим, – это ж мука какая! Как вы с этим живете?
– Жизнь – боль, – повторил Крыж лениво и поучительно: – А, я уже это сегодня говорил. Это – не твои лингвистические канделябры, которые нормальным человеком вообще не фиксируются. Тут хоть все понятно.
– Да где ж понятно, – бормотал юнга, протирая глаза. – Абракадабра какая-то.
– Ты смотри, в этой абракадабре ничего не попутай. При копировании маркированного кода лишний пробел в начале-конце строки не захватите. А то повторную диагностику делать придется…
– Же-есть, – Тим протяжно вздохнул. – А чего ты сразу-то не сказал?
– Давай-давай, не отлынивай, – Ираль сердито сунул ему планшет. – Это и так ясно.
– А я гуманитарий…
– Сегодня ты гуманитарий, а завтра драишь планетарий, – хохотнул Авдей из динамика.
Пауков покачал головой:
– Крыж, я уже прошелся по самым сомнительным точкам. Там все чисто, что удивительно. Я грешил на двадцать четвертую зону на первой линии…
– Смена оператора?
– Ну да… Так там все спокойно.
– Странно. Все равно на смену Ульяны Наташей должен был отреагировать, – Крыж взъерошил волосы на макушке, задумался.
Артем уточнил у Авдеева:
– Кир, что у тебя с паспортом навигации? Много ошибок?
Навигатор отозвался рассеянно:
– Не поверите, мужики, все чисто, если не считать трех точек. Я их уже сбросил в общий протокол. Но там мелочь, по-моему…
Пауков включил выделенную связь со своего креоника, вызвал айтишника. Проговорил:
– Вась, такого не может быть. При таком сбое… выход из-под управления, произвольная навигация… И все чисто? Не верю.
– Думаешь, что-то глубже? – Крыж сосредоточено барабанил по столу. – Слушай, помнишь, в начале месяца «Фокус» тоже выходил из-под контроля? Когда мы апгрейд делали?
– Ну…
Короткий звуковой сигнал на креоник Паукова: «Завершение программы гиперсна». И следом второе: «Открыта крышка саркофага номер один». За ширмой послышалось движение.
Крыж продолжал:
– Давай сравним узловые параметры в момент того бага и этого?
Артем неуверенно пожал плечами, покосился на зону с креокапсулами:
– Ну, давай. Попробуем.
Из-за ширмы показалась укутанная в дендрогалевое одеяло Ульяна. Рыжие волосы рассыпались по плечам, на губах замерла полуулыбка.
Девушка проскользнула в рабочую зону, подошла к Артему со спины.
– О, нашему полку прибыло! Здорово, Ульяна! – первым приветствовал ее Крыж, заметивший через камеру. Ребята из рубки замахали руками.
Пауков обернулся, посмотрел снизу-вверх, перехватил тонкие девичьи пальцы:
– Как себя чувствуешь?
– Будто заново родилась, – она подошла ближе к столу. Так, чтобы ее было всем видно: – Ребята, привет. Я в норме. Спасибо, что вытащили меня…
– Может, прервемся? – предложила Наташа и преданностью мультяшного кота округлила глаза.
Артем тайком сжал Ульянину ладонь, проговорил в динамик:
– Первому навигатору привести себя в человеческий вид нужно, а нам передать ей судно в рабочем состоянии, без багов и сюрпризов. Так что продолжаем, коллеги, не расслабляемся, – он заметно повеселел.
Он встал из-за стола так, чтобы выйти из зоны включенных камер на мониторах, порывисто привлек Ульяну к себе, торопливо поцеловал в висок:
– С возвращением.
Девушка зажмурилась и с облегчением выдохнула, будто сбросила, наконец, с плеч тяжелую ношу.
Пауков подтолкнул ее к двери:
– Отдыхай, – и вернулся к монитору, с воодушевлением потер друг об друга ладони, будто разогревая их: – Иду на девятую линию.
Ульяна еще раз взглянула на него, улыбнулась. Подхватив синий навигаторский комбинезон, небрежно его скрутила, взяла приготовленную Наташей одежду и обувь и выскользнула из медблока.
Едва Крыж получил список обнаруженных ошибок и закрыл диалоговое окно, Наташа отсоединилась от сети и, спрыгнув с навигаторского кресла, поднырнула под локтем Ираля и прошмыгнула из рубки:
– Улька! – кричала она, пробегая по коридору.
Кают-компания пустовала. Наташка взлетела по крутой винтовой лестнице на жилой этаж, к каюте подруги, параллельно набирая ее по внутренней связи.
– Я на камбузе, – Ульяна отозвалась из динамика на креонике.
Наташка рванула вниз, по дороге едва не сбив с ног появившихся со стороны рубки Крыжа и Ираля.
Василий подхватил ее, улыбнулся:
– Стоило было так лететь… Мы тебя уже обогнали.
– А ну тебя! – отмахнулась Наталья, обогнала ребят и ворвалась на камбуз.
Ульяна и Артем стояли, обнявшись. Увидев подругу и торопившихся следом ребят, Ульяна подняла глаза на генетика, мягко высвободилась и шагнула к Натке. Та с силой ее обхватила, прижалась:
– Улька! Напугались за тебя… – отстранилась, заглянула в глаза серьезно: – Тут такое было…
Первый навигатор понимающе кивнула:
– Мне Артем уже начал рассказывать…
– Да уж, есть что рассказать, – Крыж, широко улыбаясь, протянул руку. Перехватив запястье девушки, потянул на себя, по-мужски крепко обнял, похлопал по предплечью. – Здорово, капитан. Рад, что ты на борту.
– Привет! – Авдеев кивнул, устроился за столом.
– Привет, Ульяна, – Тимофей засмущался, покраснел… и обнять не решился. Из-за его спины выдвинулся Ираль, протянул руку ладонью вверх:
– Приветствую, капитан, – оранжево-желтые глаза с тонкой вертикалью зрачка смотрели внимательно, чуть настороженно. – Рад, что жива.
Ульяна задержала его руку в своей, присмотрелась к клириканцу, будто ожидая увидеть прямо сейчас ответы на мучившие ее вопросы. Ираль невозмутимо выдержал ее взгляд, улыбнулся криво.
– Жива, – девушка кивнула, подумав, что сейчас не время выяснять отношения. – Благодаря вам…
– И «Фокусу», – Наташа многозначительно изогнула бровь.
– Так что все-таки произошло? Расскажете? А то я тут пирушку затеяла, – она показала на мигающие индикаторы готовности блюд в синтез-агрегатах.
Ребята радостно загудели. Авдеев вытащил из встроенного шкафчика коробку с приборами. Крыж на все это печально взглянул, поморщился:
– Ну, братва, просить вас помолчать и ничего не обсуждать, пока я запускаю отладку, бесполезняк, да? – он шумно втянул носом воздух.
Экипаж «Фокуса» замер с одинаковыми улыбками, Пауков уже открыл было рот, чтобы ответить…
Под потолком сработал сигнал раннего оповещения и вызов внешней связи:
– «Фокус» 01-00-15, с вами говорит патрульная служба подсектора, борт «Исма» 15-140-Клирик, старший дежурный офицер Трин Паравель. Вами нарушен Порядок СТП-переходов, превышена допустимая скорость горизонтального перемещения на сто двадцать единиц, – Ульяна округлила глаза, посмотрела на Паукова, потом на Наташу и Крыжа. Айтишник виновато развел руки. – Опасное маневрирование подпадает под пункт шестнадцать дробь один Кодекса об административных правонарушениях. В соответствии с Приказом 16-25ПМ прошу выключить двигатели движения, заблокировать маневровые, открыть стыковочные шлюзы и обеспечить доступ на судно дежурной бригады для составления протокола. Код стыковки сто сорок два.
Связь с щелчком отключилась.
– О, вот и вам занятие нашлось, пока я отладку запускаю, – коротко хохотнул Крыж, подхватываясь.
Пауков бросил:
– Погоди, Вась. Авдей, ты – в рубку, обеспечь стыковку. И переведи манипулятор с глаз подальше на запасную площадку, в ремблок. Только быстро. Крыж, помоги ему, отладку после, – парни рванули с камбуза. Пауков направился за ними следом: – Наташа, ты со мной, в стыковочный шлюз. Тим, ты тоже, берешь на себя функционал дежурного оператора и на подхвате, там три человека должны подписать протокол с нашей стороны. Помните, что клириканцы – синестетики и читают все ваши эмоции и переживания как в открытой книге… при чем цветной. Поэтому не паниковать, представляйте себя милыми зелеными облачками, – он посмотрел на Ульяну, перевел взгляд на Ираля: – А вы двое идите в каюты и не высовывайтесь.
Широко зашагал к выходу. Остановился, заметив, что Ульяна не пошевелилась:
– Чего стоим? Кого ждем?
– Ты думаешь, это повод? Будет обыск?
Он раздраженно отвернулся, шумно выдохнул, оправил полы белого кителя медслужбы:
– Какая разница, что я думаю? Это возможно…
– Я к тому, что в каютах тогда будут смотреть в первую очередь, – Ульяна закусила губу. – Везде будут смотреть…
Артем нахмурился.
– Может, под рубкой? В серверной искина? – предложила Наталья. – Проход там технический, ни двери, ни переборки.
Пауков кивнул:
– Верно говоришь! Дуйте туда, Крыж в рубке, поможет.
И выскочил с камбуза.
– Курс два ноля пятнадцать, продольное перемещение одиннадцать градусов, выравнивание на десять, – Кирилл руководил стыковкой с кораблем патрульной службы, когда Ульяна и Ираль влетели в рубку.
Крыж как раз завершал перемещение манипулятора в техотсек, нажал кнопку подтверждения команды.
– Вы чего? – округлил глаза.
– Вась, в серверную «Фокуса» открой вход, – Ульяна нырнула к ящику под центральным пультом, дернула за рычаг.
– Э-э, не бесчинствуй, – запротестовал Крыж, вставая с кресла. – Не там же вход.
– Угол правого дифферента снизить до ноль целых трех десятых, самый малый вперед, – Авдеев покосился на них, продолжая маневр стыковки.
Крыж подошел к глухой панели слева от своего рабочего кресла, выдвинул спрятанную панель управления. Вытащил из пазов пластинку креоника, поднес к сканеру и ввел код.
– Импульсный двигатель на ноль. Продольное перемещение по ходовым знакам до створок шлюза. Захват, – мягкий щелчок оповещения, корпус шлюпки чуть дернулся вперед и замер. – Завершение стыковки. Добро пожаловать на борт.
Авдеев повернулся к ним, сорвал переговорное устройство. Он успел заметить, как Ульяна и Ираль скрылись в серверной, нырнув через узкий технический проход в закрытые помещения.
Крыж крикнул им в след:
– Эй, не трогайте там ничего! Держитесь лучше правой стороны, подальше от чаши клайбионика, – покачав головой, он захлопнул за ними дверь и задвинул панель допуска. – Черти что.
– Что? Все норм? – поинтересовался Кир, устраиваясь удобнее в кресле. Он вальяжно откинулся на спинку, закинул руки за голову и вытянул ноги.
– Да вроде, – Крыж уклончиво отмахнулся, свернул диалоговой окно транспортировщика ремблока. – Я к себе, запускаю отладку, – и вышел из рубки.
Когда прозрачные мембраны гермопереборки захлопнулись за ним, Авдеев подключился к видеокамерам шлюзового отсека и увеличил громкость в наушниках. Просмотрел данные с внешних визиров – патрульный катер «Исма» 15-140-Клирик замер на рейде и ощетинился бортовым вооружением. Кир хмыкнул, включил запись.