Без автора

Январский дождь смывал пыль со старой черемухи, оголяя ветви черными пятнами на фоне тяжелого облака, которое постепенно истончалось, открывая за собой линию горизонта. Внизу, напротив моего подъезда стоял, облокотившись на подержанную, мокрую рабочую машину, мой бывший начальник, держа в руке свое помятое пальто.
Он не пытался укрыться от сырости, словно этот холодный ливень был именно тем, чего он ждал всю жизнь. Он стоял, подняв глаза вверх, словно ища кого-то на этих балконах облезлой хрущевки, расположенной на краю города над обрывом, над рекой…
Я задумался: он ведь явно по мою душу. Всех соседей своих я знал уже триста лет в обед, и никто с моей предыдущей работой связан не был. Я смотрел на него из-за полуприкрытых жалюзи, чувствуя, как внутри шевелится давнее, забытое раздражение. Бывший начальник - это ведь не бывшая жена, которой еще можно сдуру набрать по пьяни. Этому гаду я бы звонить не стал ни за какие коврижки. Это ведь он меня тогда уволил. Формально за нарушение субординации. Неформально за то, что я слишком настойчиво доказывал невозможное.
Он дернул головой, словно почуяв мой взгляд сквозь пластик, и вдруг полез в карман брюк за телефоном. Судя по всему, смска. Он, похоже, выругался и сменил телефон на пачку сигарет. Сигареты, конечно, тут же промокли, но он упрямо пытался выудить из раскисшей пачки хоть одну уцелевшую, судорожно щелкая зажигалкой, которая на таком ветру давала лишь бесполезные искры.
Он наконец бросил зажигалку в машину, так и не закурив, вновь достал мобильный, сердито ткнул в него и пошел прямо к дому.
В ту же секунду у меня в кармане раздался звонок, заставив меня вздрогнуть и отшатнуться от окна. Тот внизу тоже услышал этот звук и быстро забежал в подъезд. Экран мигал знакомым номером. Почему я его не заблокировал? Но было уже поздно. Снизу, из темноты первого этажа, донесся тяжелый стук хлопнувшей входной двери, а следом зазвенело раскатистое эхо шагов.
Шаги быстро приближались, и вот уже раздался звонок, сопровождавшийся тяжелыми ударами по двери.
- Открывай. Я знаю, что ты дома. Надо поговорить. Ну или хотя бы ответь на телефон!
Действительно, телефон все это время продолжал звонить. Я нажал на зеленую кнопку, но к уху мобильный подносить не стал - включил громкую связь, чтобы его хриплый от одышки голос разносился по всей прихожей одновременно со стуком в дверь.
- Алло. Слышишь? Нужно срочно поговорить. Даже не поговорить. Показать. Я тут. С машиной, - речь прерывалась одышкой с кашлем. - Поехали со мной. Срочно!
- Какая машина, Георгич? - глухо ответил я в динамик, даже не думая подходить к двери.
- Какая-какая, - передразнил он меня. - Наша, рабочая. Ты не представляешь: у нас получилось. Твоя идея сработала!
У меня внутри всё похолодело, а старое раздражение в секунду сменилось глухим, давящим недоумением. Та самая «моя идея», из-за которой он вышвырнул меня из компании, назвав её полным бредом и утопией, сейчас заставила его примчаться сюда посреди январского ливня.
Я распахнул дверь.
Он стоял на пороге - взъерошенный, мокрый насквозь, с покрасневшими глазами и раскисшей сигаретой, которую он так и не выбросил, а почему-то зажал между пальцами вместе с телефоном. Пальто висело на руке тяжелой, грязной тряпкой, с подола текла вода.
- Они существуют? - крикнул я. - Вы уже с ними общались? Вы их увидели?!
- Заткнись ты, не ори на весь подъезд, - сипло оборвал он меня, диковато оглянувшись на лестничный пролет, и, бесцеремонно протиснувшись мимо меня, шагнул прямо в комнату, оставляя на линолеуме мокрые, грязные следы.
Он замер посреди комнаты, тяжело дыша, и резко обернулся ко мне.
- Никто ни с кем еще не общался, - выдохнул он, и его руки, сжимавшие телефон, заметно затряслись. - Но приборы зафиксировали структуру. Нашу, ту самую, которую ты рассчитывал перед уходом. Они ответили на частоту. Понимаешь? Ответили!
- Я чертов гений! - выкрикнул я. - А с тебя ящик коньяка. Нет, сначала извинения. При всех. Точно так же, как ты меня тогда при всех размазывал… Ай да я. Ай да Пушкин. Ай да сукин сын!! Дай я тебя обниму!
Я рванулся к нему, готовый со всей дури сгрести в охапку это мокрое, жалкое чучело, но он резко отшатнулся, выставив вперед ладонь с зажатым в ней телефоном, словно защищался от удара.
- Тормози, - хрипло бросил он, и в его голосе вместо ожидаемого мной триумфа прорезался чистый, неразбавленный страх. - Рано обниматься. Рано радоваться. Ты не дослушал. Они ответили. Но дело не в этом. Дело в том, что ответ пришёл за двадцать три секунды до того, как мы подали сигнал.
У меня внутри всё мгновенно завязалось в тугой, ледяной узел. Ликование вымело начисто, как сквозняком. Я застыл с полусогнутыми для объятия руками, чувствуя, как глупо и дико выгляжу со своей ухмылкой.
- В каком смысле - за двадцать три секунды? - медленно, шепотом переспросил я. - Георгич, у вас синхронизация серверов полетела. Банальный рассинхрон тайм-штампов. Бывает же...
- Нет никакой ошибки, - так же тихо, почти мертвым голосом отрезал он, и раскисшая сигарета наконец выпала из его подрагивающих пальцев прямо на ковер. - Мы перепроверили логи трижды. Семь разных независимых модулей. Ответ пришел в тридцать минут. А импульс мы сгенерировали и отправили в тридцать восемь. С точностью до миллисекунды.
Он шагнул ко мне ближе, и я явственно уловил от него резкий запах перегара, дешевого табака и застоявшегося, звериного пота.
- Они не просто ответили, понимаешь? - он схватил меня за рукав мокрой рукой. - Они знали, какую именно частоту и структуру мы выберем. Знали до того, как мы сами это решили.
- Значит, мы приняли какой-то старый сигнал за ответ, - упрямо выговорил я, пытаясь вернуть почву под ноги. - Значит, утечка данных. Значит, кто-то подменил результаты. Или еще тридцать три других варианта. Ты же сам можешь их накидать.
- Да какие тридцать три варианта?! - Георгич почти сорвался на крик, но вовремя прикусил язык, ошалело зыркнув на тонкую стену, за которой ему почудились шпионы. - Какая, к черту, утечка?! В сигнале динамический ключ на основе реликтового шума. Его невозможно угадать заранее. Математически невозможно. А они угадали. До последнего бита.
Он отпустил мой рукав и бесцельно заходил по комнате, оставляя на полу темные влажные пятна.
- Я проверял логи, - глухо продолжал он, глядя куда-то в угол. - Первые пять секунд я орал точно так же, как ты. Думал - сбой, думал - шутники из отдела безопасности тестируют нас на уязвимость. Но структура совпала один в один. Вплоть до последнего бита в хвосте. Сигнал шел оттуда. Из глубокого вакуума. И он пришел раньше, потому что... потому что для них нашего «позже» просто не существует.
Он резко остановился и посмотрел на меня в упор:
- Они не ждали нашего звонка. Они сидели у аппарата и знали, что мы наберем именно этот номер. Поехали в лабораторию. Ты должен сам это увидеть.
Я закрыл глаза и попытался до мельчайших деталей вспомнить свой алгоритм и элегантно найти баг прямо здесь и сейчас, но бывший шеф не был настроен ждать.
Он грубо толкнул меня в плечо, вырывая из сонма мыслей, и сунул в руки мою куртку, сорванную прямо с вешалки в прихожей.
- Потом будешь жуков ловить! В машине додумаешь, - прохрипел он, уже разворачиваясь к выходу. - Обувайся. Живо. Время идет в обратную сторону, парень, а ты стоишь посреди комнаты и хлопаешь глазами.
Я на автомате сунул ноги в ботинки, даже не завязывая шнурки, и пошел вслед за ним в сырую темноту подъезда.
Машина тронулась с места, тяжело переваливаясь на колдобинах разбитого двора над обрывом. Где-то за стеклом шумела невидимая река. Дождь сплошной стеной лупил по крыше подержанной легковушки, создавая плотный, глухой гул, от которого салон казался тесной железной коробкой.
Георгич вел машину нервно, дергано. Передачи переключались с глухим скрежетом, а сам он то и дело бросал короткие, воспаленные взгляды на приборную панель. Не на дорогу, где в свете фар тускло блестели лужи, а именно вниз, на часы.
Я тоже к ним присмотрелся. Зеленые цифры показывали «18:12».
Что-то царапнуло взгляд. Я достал из кармана куртки телефон, чтобы проверить время, и на секунду завис. На экране, который автоматически синхронизировался с сетью, четко горело: «18:17».
- Георгич, у тебя часы в машине отстают на пять минут, - буркнул я, дотягиваясь до кнопки настройки под экраном. - Сбились, что ли?
Я нажал клавишу несколько раз, переводя минуты вперед, пока цифры на панели не сравнялись с телефонными. Георгич ничего не ответил, только еще сильнее сжал пальцами руль, так что побелели костяшки.
Прошла минута. Двор остался позади, машина выехала на пустую пригородную трассу. Я лениво скользнул взглядом по панели и нахмурился.
На часах машины было «18:18». На моем телефоне - «18:20».
Они снова разошлись. На две минуты.
- Да что за чертовщина у тебя с электроникой? - пробормотал я, снова потянувшись к приборной панели. Я опять выставил время вручную, сердито щелкая пластиковой кнопкой. - Генератор барахлит? Или предохранитель отходит?
Георгич молчал. Дворники с надрывным визгом размазывали потоки воды по лобовому стеклу.
Мы проехали еще сотню метров. Я не сводил глаз с приборной панели. Зеленые цифры замерли, словно неохотно перешагивая барьер, а потом на моих глазах «18:20» сменилось на «18:19». Время на табло машины пошло назад!
Внутри у меня что-то оборвалось. Мелкие волоски на руках встали дыбом. Это не предохранитель. Не генератор. И не барахлящая проводка. Часы на машине шли назад. Наш алгоритм, динамический ключ, двадцать три секунды форы… Картинка в голове начала складываться в уродливый пазл. И мне очень не нравилось то, что получалось: воемя внутри этой машины потекло в противоположную сторону, увязая в январском ливне, в те минуты когда внешний мир стремительно уносился вперед.
И именно в этот момент телефон в моей ладони коротко, вибрирующе звякнул.
Экран загорелся, отразившись в боковом стекле. Сообщение от неизвестного номера: «Не езжай».
Я тупо уставился на эти два слова, чувствуя, как к горлу подступает тошнота. Медленно, стараясь не делать резких движений, я повернул экран к Георгичу.
- Тормози, - тихо сказал я. - Георгич, смотри.
Шеф бросил взгляд на экран, и я увидел, как его лицо мгновенно, за долю секунды, потеряло остатки цвета, став землисто-серым. Машину ощутимо повело в сторону, колеса зашуршали по мокрой обочине, но он выровнял руль, судорожно глотая воздух.
- Это... это тебе только сейчас пришло? - его голос сорвался на сиплый фальцет.
- Только что. Разворачивай машину, Георгич.
Вместо ответа он одной рукой полез в карман своего мокрого пальто, брошенного на соседнее сиденье, и вытащил собственный мобильный. Кинул его мне на колени.
- Посмотри, — выдохнул он, упрямо вдавливая педаль газа в пол. - Посмотри входящие. Десять минут назад. Когда я еще у твоего подъезда стоял.
Я разблокировал его экран и прочитал: «Зря вы поехали».
Всего три слова. Никаких угроз. Никаких объяснений. Именно поэтому от них становилось настолько не по себе.
Машину качнуло на въезде на мост. Где-то под нами ревела невидимая в сгустившейся темноте река.
Я поднял глаза на приборную панель.
«18:15».
Секунду назад было «18:16». Цифры продолжали пятиться назад. Медленно. Уверенно. Будто так и должно быть.
- Георгич, остановись.
Он не ответил. Только сильнее вцепился в руль.
- Георгич!
- Не сейчас.
- Ты совсем охренел?
- Не сейчас! - голос сорвался почти на крик.
Я впервые увидел, что ему действительно страшно. Так боятся люди, которые уже знают ответ на незаданный вопрос, но очень хотели бы ошибаться.
Неожиданно включилось радио. Салон заполнило шипение. Потом сквозь помехи прорезался голос диктора.
«...движение на трассе восстановлено...»
Шум.
«...спасательная операция завершена...»
Снова шум. Я нахмурился.
- Что за станция?
- Не знаю.
- В смысле не знаешь?
- 666FM. Шутка. У меня радио в машине уже год не работает.
Я посмотрел на него. Он смотрел только вперед. Словно боялся моргнуть.
Диктор продолжал говорить тем самым менторским тоном, которым обычно сообщают о погоде и пробках.
«...эксперты продолжают работу на месте аварии...»
Меня словно кольнуло под ребра.
- Какой аварии?
Георгич промолчал.
«...автомобиль сорвался с моста в реку около двадцати двух часов...»
Я медленно повернулся к боковому стеклу. За ним чернели металлические конструкции моста. Того самого моста, по которому мы сейчас ехали.
«...предварительная версия - потеря управления...»
- Выключи это.
Георгич не пошевелился.
«...личности погибших установлены...»
У меня пересохло во рту. Голос диктора на мгновение утонул в треске помех. Потом снова стал отчетливым.
«...руководитель исследовательской группы Георгий...»
Остальное заглушил удар грома. Но я уже увидел лицо Георгича.
Он знал. Он слышал это раньше. Именно поэтому приехал за мной. Именно поэтому не хотел ничего объяснять по телефону. Именно поэтому сейчас гнал машину по мокрой трассе так, словно за нами кто-то гнался.
Потому что гнался. Только не кто-то. А что-то гораздо хуже.
Будущее.
Дождь, который, казалось, еще полчаса назад уже достиг своего пика, устроил по крыше такой барабанный концерт, которому позавидовал бы и сдвоенный пулеметный расчет. Хлесткие, тяжелые капли с такой силой вбивались в металл кузова, словно пытались пробить его насквозь и прижать машину к асфальту. Лобовое стекло превратилось в сплошной вибрирующий поток воды, сквозь который фары едва пробивали пару метров мутной, серой взвеси.
Мы съехали с моста на полной скорости. Железные стыки гулко ухнули где-то под днищем, и легковушку повело юзом по залитой трассе, но Георгич мертвой хваткой удержал руль, выравнивая курс. Навигатор моргнул, пересчитал маршрут обратно в бесконечность и окончательно погас.
- Приехали, - хрипло бросил шеф, резко выкручивая руль вправо.
Машина тяжело ткнулась колесами в бетонный бордюр у ржавых ворот. В темноте за ними угадывался приземистый, глухой куб нашего бывшего лабораторного корпуса. Ни одного светящегося окна, ни единой живой души на КПП. Только январский ливень, методично размывающий саму реальность вокруг этого места.
Георгич выключил зажигание, но радио в салоне даже не подумало замолкнуть. Сквозь плотный, белый шум из динамиков все так же буднично, мертвой петлей продолжал идти шепоток диктора: «...руководитель исследовательской группы Георгий...»
- Выметайся, - Георгич толкнул тяжелую дверь и первым шагнул под ледяные струи, даже не потрудившись накинуть помятое пальто.
Я выскочил следом. Ботинки тут же по щиколотку ушли в холодную жижу. Шнурки тащились по лужам, куртка намокла за секунду, но я этого почти не заметил. В голове набатом стучала одна-единственная мысль: если радио не врет, у нас осталось чуть меньше четырех часов до того, как эта машина окажется на дне реки. И мы только что добровольно вернулись туда, откуда всё началось.
Тяжелая гермодверь лаборатории поддалась не сразу, но все же через какое-то время со скрипом и скрежетом, она впустила нас в темноту, из которой пахнуло глухим, затхлым, ледяным воздухом. Так пахнет в брошенных домах, где отопление отключили несколько лет назад.
Я замер на пороге. Георгич, который уже занес ногу, чтобы шагнуть внутрь, тоже резко остановился.
— Георгич... — тихо сказал я. — Ты когда уезжал, вентиляцию выключал?
— Нет, — его голос в темноте прозвучал совсем слабо. — Я уехал сорок минут назад. Тут все гудело. Кондиционеры на полную молотили, дышать нечем было от тепла стоек.
Он нащупал на стене тумблер и щелкнул им. Ничего не произошло. Свет не загорелся, но в полумраке глубины зала тускло, на последнем издыхании мерцали аварийные диоды серверных стоек, выхватывая из темноты угловатые силуэты оборудования. Корпус казался вымершим.
Георгич швырнул мокрое пальто прямо на покрытый слоем осевшей пыли пол и почти подбежал к главному терминалу.
- Смотри.
Монитор вспыхнул холодным синим светом. По экрану бежал журнал событий.
Входящий сигнал.
18:30:14.
Исходящий сигнал.
18:38:02.
Восемь минут разницы.
Я молча отодвинул Георгича плечом и сел за клавиатуру. Страх куда-то исчез. Осталось только раздражение инженера, которому показывают фокус и утверждают, будто это физика.
Как говаривал мой первый преподаватель: «Чудес не бывает. Бывает плохо написанный код.»
Я открыл сетевые журналы. Пусто. Поднял дамп сетевой карты. Ноль входящих кадров. Проверил буфер контроллера. Пусто. Просмотрел журнал прерываний. Ни одного обращения. Комп вообще ничего не принимал. Я медленно повернулся к Георгичу.
- Нас никто не вызывал.
Он замер.
- Как это никто?
- Физически никто.
Я снова повернулся к экрану. Ответ действительно лежал на диске.
OUT_RESP.DAT.
Четыре мегабайта.
Я открыл низкоуровневые метаданные. Обычно файл оставляет следы. Кто создал. Когда. Какой процесс выделил место. Какая служба записала данные. Здесь не было ничего.
Created by:
00000000
Creation time:
NULL
Process ID:
NULL
Будто файл никогда не записывали. Он просто существовал. Я почувствовал, как во рту стало сухо. Запустил проверку файловой системы. Ошибок не было. Проверил журнал MFT. Записи о создании файла отсутствовали.
Словно кто-то аккуратно вырвал из истории единственный нужный лист.
- Что там? - тихо спросил Георгич.
Я не ответил. Открыл шестнадцатеричный просмотр. Внутри файла действительно лежал наш ключ. До последнего бита. Тот самый, который должен был появиться только через восемь минут. Я закрыл глаза. Если бы этот файл кто-то прислал, у него был бы автор. Если бы его подбросили, остались бы следы записи. Если бы система дала сбой, нарушилась бы структура диска. Но ничего этого не было. Файл не появился. Он просто был. Словно вместе с жестким диском его изготовили на заводе.
- Георгич.
Он поднял голову.
- Это не ответ.
- Тогда что?
Я несколько секунд смотрел на экран.
- Не знаю…
Я достал телефон. На дисплее по-прежнему светилось: «Не езжай.»
- Дай свой.
Он без слов протянул мобильник.
«Зря вы поехали.»
Я вынул из своего телефона SIM-карту. Потом аккумулятор. Связи больше не было. Вообще никакой. Но сообщения не исчезли. Я подключил телефон к терминалу и выгрузил содержимое памяти. Модем оказался пуст. Ни одного входящего SMS. Ни одного соединения с базовой станцией.
Строка «Не езжай» существовала только во флеш-памяти аппарата. Будто ее записали прямо в микросхему. Я проверил телефон Георгича. То же самое. Два сообщения. Ноль признаков передачи. Ноль признаков записи.
Я молча открыл OUT_RESP.DAT. Потом вывел дамп памяти телефона. Совпадение было побитовым. Символ в символ. Я долго смотрел на экран. Потом очень тихо сказал:
- Их никто не отправлял.
Георгич нервно усмехнулся.
- Тогда кто их написал?
Я не ответил. Потому что правильный ответ звучал гораздо страшнее. Никто.
В лаборатории стало так тихо, что было слышно, как дождь барабанит по вентиляционной шахте.
Курсор на экране мигнул.
Раз.
Еще раз.
Потом файловый менеджер едва заметно дрогнул.
В каталоге появился новый файл.
OUT_RESP_2.DAT
Размер: 64 байта.
Мы оба сидели неподвижно. Никто не прикасался к клавиатуре. Георгич первым нарушил молчание.
- Не открывай…
Я посмотрел на него. Он уже не отрывал глаз от экрана.
- Почему?
Он сглотнул.
- Потому что… если предыдущий файл существовал до того, как мы его получили…
Он не договорил. Не нужно было. Мы оба подумали об одном и том же.
Если новый файл уже появился, значит, события, о которых он рассказывает, тоже уже где-то существуют. Просто мы еще до них не добрались.
Я проигнорировал его слова. Палец сам опустился на клавишу F3. Просмотрщик открылся мгновенно.
Пусто.
Серое окно. Мигающий курсор в левом верхнем углу. Георгич шумно выдохнул.
- Пустой… Видишь? Господи… Он пустой…
Я ничего не ответил. Закрыл просмотрщик и открыл файл в шестнадцатеричном редакторе.
Шестьдесят четыре байта существовали. Все до одного были заполнены нулями. Никаких символов. Никакого текста. Просто память, в которую еще ничего не записали.
Только тогда я почувствовал облегчение. Совсем небольшое. Ровно настолько, чтобы успеть его потерять.
Я закрыл редактор. В этот момент где-то внутри системного блока коротко щелкнул жесткий диск. Не громче тиканья часов.
Мы с Георгичем одновременно подняли глаза на экран.
Строка OUT_RESP_2.DAT никуда не исчезла.
Но колонка времени последнего изменения, секунду назад пустая, теперь была заполнена текущим временем.
Георгич медленно попятился.
- Нет…
Я снова нажал F3. Просмотрщик открылся. Теперь по центру окна стояла всего одна строка.
«Файл прочитан».
Я несколько секунд смотрел на нее, не моргая. Потом снова открыл шестнадцатеричный редактор.Нулей больше не было. Их место занимали обычные байты текста. Самые обыкновенные. Такие же, какими кодируется любое слово в памяти компьютера. Файл действительно изменился. Физически. Без процесса записи. Без обращения к диску. Без программы, которая могла бы это сделать. Я медленно убрал руки с клавиатуры.
- Георгич?..
Он не ответил. Его взгляд был прикован к экрану. Я проследил за ним.
Ниже OUT_RESP_2.DAT появилась новая строка.
OUT_RESP_3.DAT
Размер: 0 байт.
Мы молча смотрели на экран. Никто не прикасался к клавиатуре. Жесткий диск молчал. И вдруг цифра дрогнула. 1 байт. Еще через секунду: 4 байта. Потом: 11 байт…
Размер увеличивался прямо у нас на глазах, словно невидимый наборщик медленно печатал текст внутри файла.
Я почувствовал, как по спине пробежал холодок.
- Не открывай, - едва слышно произнес Георгич.
Но я уже понял самое страшное. Первые два файла не пришли из будущего. Будущее создавалось прямо сейчас. И компьютер каким-то образом успевал записывать его раньше, чем оно происходило.
Размер замер на отметке в 194 байта. Счетчик остановился. Невидимый наборщик закончил печатать.
- Не надо, - почти шепотом сказал Георгич. Его рука тяжело легла мне на плечо. Пальцы мелко дрожали. - Слышишь? Хватит. Уезжаем. К черту лабораторию. К черту этот эксперимент.
Я не ответил. Внутри меня уже проснулся тот самый упрямый инженер, который однажды лишился работы только потому, что отказался признать невозможное невозможным.
Палец лег на F3. Просмотрщик открылся. На экране было уже три строки.
18:34:12. Игноририровние прямого распоряжения.
18:34:15. Открытие про смотровой программы.
18:34:18. Регистрация тревожной реакции.
Я застыл. Спина действительно была мокрой. Не потому, что куртка промокла под дождем. Именно потому, что меня только что прошиб холодный пот.
- Что там? - осторожно спросил Георгич.
Я молча отодвинулся. Он наклонился к экрану и начал читать.
- «Игнорирование прямого распоряжения…»
Голос сорвался. В ту же секунду жесткий диск коротко щелкнул. Мы одновременно перевели взгляд на файловый менеджер. Размер OUT_RESP_3.DAT изменился. 240 байт.
Я нажал обновление. Появилась новая строка.
18:34:40. Чтение журнала вслух.
Георгич медленно отступил на шаг.
- Нас кто-то пишет…
Он лихорадочно оглядел потолок.
- Камеры… Жучки…
Я автоматически открыл диспетчер процессов. Пусто. Нагрузка процессора нулевая. Жесткий диск не обращался к записи. Ни одной программы, которая могла бы изменять файл. Я уже собирался закрыть окно, когда взгляд сам собой скользнул в сторону толстого силового кабеля, уходящего от бесперебойника к розетке.
Одна короткая мысль вспыхнула в голове. Выдернуть питание. Все закончится. Я даже почувствовал, как напряглись мышцы ног. И в этот момент снова щелкнул диск. Размер файла увеличился.
Я медленно нажал обновление. На экране появилась новая строка.
18:34:46. Заметил кабель питания.
Следом возникла еще одна.
18:34:47. Решение выдернуть кабель.
Я так и не поднялся. Рука осталась лежать на столе. Я не испугался. Я просто перестал понимать, что происходит.
Эта мысль… Она ведь только что появилась у меня. Не секунду назад. Не минуту. Только что. Я был абсолютно уверен, что она принадлежит мне. Жесткий диск снова едва слышно щелкнул.
Еще одна строка. Без отметки времени.
«Признание решения собственным»
Мне показалось, что в лаборатории стало холоднее. Настолько, что я услышал собственное дыхание.
- Георгич…
Он не ответил.
Не отрывая взгляда от экрана, я тихо сказал:
- Только не думай сейчас про красный шар.
- Какой еще…
Он осекся. Я увидел это по его лицу. Представил. Диск снова щелкнул. Файл вырос еще на несколько байт. На экране появилась очередная строка.
18:34:55. Формирование образа: красный шар.
Несколько секунд никто из нас не произнес ни слова. Потом Георгич медленно опустился на стул.
- Если он знает мысли…
- Нет, - перебил я, - голос прозвучал неожиданно спокойно, - хуже.
Я сглотнул.
- Он не знает их.
Я поднял глаза на экран.
- Похоже, это он их пишет.
Капли дождя за стеной продолжали методично вбиваться в вентиляционную шахту, отсчитывая секунды чужого, кем-то заранее написанного хронометража.  А перед нами, строка за строкой, с безразличной точностью составлялся журнал событий, в котором мы были не авторами, а всего лишь исполнителями.
- Это бред, - Георгич резко встал, опрокинув стул. Тот гулко ударился о линолеум, но звук утонул в шуме ливня. - Это... это статистический фокус. Мы сами себя программируем. Ты прочитал строку про кабель и подсознательно захотел его выдернуть! Мышление пластично, оно подстраивается...
- Давай проверим, — перебил я. Голос был чужим, плоским.
Я развернулся к клавиатуре. Сердце колотилось где-то в горле, но пальцы замерли над клавишами. Я заставил свой мозг отключить логику. Никаких ассоциаций. Никаких воспоминаний. Полный хаос. Выплюнуть в пустоту то, что вообще невозможно предугадать.
Я закрыл глаза, сделал глубокий вдох и мысленно, наугад, выстроил дикую, абсурдную цепочку слов и цифр:
«Синхрофазотрон, ведро, мизинец, сорок два, фиолетовый».
Жесткий диск щелкнул. Дважды. Коротко, как сытый щелчок затвора.
Я открыл глаза и нажал кнопку обновления.
18:35:14. Синхрофазотрон, ведро, мизинец, сорок два, фиолетовый.
Буквы стояли ровно. Без единой ошибки. Без секундной задержки.
- Георгич, брось монетку, - хрипло сказал я, чувствуя, как внутри всё начинает медленно опускаться в какую-то бездонную, ледяную пустоту.
Он лихорадочно полез в карман брюк, выудил пригоршню мелочи, нашел двухрублевую монету. Рука его ходила ходуном.
- Не думай, - приказал я. - Просто подбрось.
Металл со звоном взлетел к темному потолку, ударился о край серверной стойки и с дребезжанием покатился по полу. Георгич накрыл его ладонью, замер, а потом медленно приподнял пальцы.
Орел.
Диск уже щелкнул. На экране, строкой выше, горело:
18:35:28. Результат броска: орёл.
- Нет, подожди... - я вцепился пальцами в край стола так, что заболели суставы. - Сейчас. Смотри на меня. Я сейчас сделаю то, чего сам еще не знаю. Мое тело сделает. Импульс.
Я занес правую руку над столом. Я намеренно удерживал мозг в абсолютном вакууме. Я собирался совершить хаотичное, судорожное движение в любую сторону - ударить по столу, щелкнуть пальцами, схватить Георгича за ворот, закричать. Я ждал, пока мышцы сами сорвутся в случайность, минуя фазу планирования.
И в этот момент, не дожидаясь моего движения, диск щелкнул снова. На моих глазах файл вырос еще на 18 байт.
Я медленно перевел взгляд на монитор.
18:35:42. Замер в попытке обмануть алгоритм. Остался неподвижен.
Моя рука так и осталась висеть в воздухе. Мышцы обмякли. Сигнал из мозга просто не пошел. Точнее... он пошел именно туда, куда его направила эта строчка.
Я медленно опустил руку. Страх пропал. На смену ему пришло странное, тупое оцепенение. Настоящий ужас был не в том, что компьютер знал будущее. И не в том, что он читал мои мысли или управлял монетой.
Ужас был внутри меня.
Если эта последовательность слов, этот бросок монеты, этот паралич воли существовали в файле за миллисекунду до того, как я их пережил... то кто я такой?
Мое сознание не производило решений. Мое «Я» не выбирало слова. Мой мозг был просто приемником, который с опозданием регистрировал уже случившийся факт. Я был зрителем в кинотеатре, который искренне верил, что это он крутит ручку проектора.
- Георгич, - тихо, почти беззвучно позвал я, глядя на то, как OUT_RESP_3.DAT продолжает медленно, байт за байтом, наливаться весом. - Если всё это уже записано... то кто прямо сейчас внутри моей головы чувствует, как мне страшно?
Размер файла снова изменился. Двести пятьдесят восемь байт.
Никакого щелчка жесткого диска. Никакой индикации записи. Просто цифры в колонке “Размер” спокойно сменились, будто так было всегда.Мы молча смотрели на экран.
Георгич первым отвел взгляд.
- Закрой его.
Я не пошевелился.
- Ты слышишь меня?
Я нажал F3. Просмотрщик открылся. Внизу уже знакомых строк появилась новая.
18:35:51. Попытка проверки случайности признана несостоятельной.
Следующая возникла прямо у нас на глазах.
18:35:56. Объект начинает формулировать неверный вывод.
Я почувствовал, как внутри что-то неприятно сжалось.
- Объект?
Георгич прочитал через мое плечо и тихо выругался.
- Это про кого?
Ответ появился раньше, чем кто-либо из нас успел произнести еще хоть слово.
18:36:01. Объект ошибочно считает, что текст описывает происходящее.
Я перестал моргать. Строка дрогнула. И сразу под ней появилась еще одна.
18:36:04. На данном этапе это допущение считается допустимым.
Я медленно положил ладони на стол. До этой секунды мне казалось, что файл ведет журнал происходящего. Потом казалось, что он предсказывает будущее. Теперь впервые возникло ощущение, что он… разговаривает.
Не с нами.
О нас.
Как лаборант, делающий пометки во время опыта.
Георгич резко наклонился к клавиатуре.
- Хватит.
Он схватил мышь и дернул провод.
Ничего.
Курсор продолжал спокойно мигать. Он выдернул USB-разъем. Мышь погасла. Курсор продолжал мигать. Я медленно перевел взгляд на экран.Новая строка уже была на месте.
18:36:12. Попытка воздействия на интерфейс зарегистрирована.
Еще одна.
18:36:13. На содержимое наблюдения не влияет.
- Нет… - едва слышно выдохнул Георгич.
Он нажал кнопку питания на мониторе. Экран погас.В лаборатории стало темно. Мы несколько секунд стояли молча. Потом из темноты донесся негромкий электронный щелчок. Монитор включился сам. Не было ни логотипа системы, ни загрузки.Сразу открылся просмотрщик файла. Только теперь текста в нем не было. В центре экрана светилась единственная строка.
«Окно наблюдения временно закрыто».
Под ней, спустя несколько секунд, появилась следующая.
«Наблюдатели продолжают находиться на своих местах».
Я почувствовал, как по позвоночнику медленно пополз даже уже не холод, к настоящий мороз. Это было первое предложение, которое не содержало времени. Оно существовало сейчас. Будто обращалось к кому-то, кто находился не в лаборатории. Не в машине. И даже не в будущем.
В полной тишине серверной откуда-то из глубины помещения вдруг донесся короткий металлический звук. Будто кто-то очень осторожно поставил чашку на стол.
Мы одновременно обернулись. Лаборатория была пуста, но аварийные диоды, которые еще минуту назад горели ровным красным светом, теперь один за другим начали менять цвет.
Красный.
Желтый.
Зеленый.
Словно кто-то последовательно включал оборудование. Хотя электричества в корпусе не было уже больше часа. Зеленый диод вспыхнул на третьей стойке. С тихим, утробным вздохом ожил старый осциллограф на дальнем столе - его лучевая трубка прочертила в темноте идеальную, мертвую горизонтальную линию. Напряжения в сети не было, но приборы включались один за другим, повинуясь чужой, неэлектрической воле. Они просыпались не для того, чтобы работать. Они просыпались, потому что их вносили в список присутствующих вещей.
Жесткий диск на главном терминале больше не издавал звуков, но экран просмотрщика обновился сам.
«Параметры среды стабилизированы».
- Георгич... - я попытался сделать шаг назад, но подошвы ботинок словно прилипли к покрытому пылью линолеуму. Ноги сделались чужими, тяжелыми, как у манекена.
Шеф не двигался. Он стоял, вытянув руки вдоль туловища, и смотрел на зеленеющий зал широко раскрытыми, немигающими глазами. В их отражении тускло светилась новая строка на мониторе.
«Объект Георгий перестал оказывать сопротивление ввиду исчерпания доступных сценариев».
- Это не мы приехали сюда, - сквозь зубы процедил я, борясь с накатывающей тошнотой. Рука потянулась к карману куртки, где лежал мертвый, лишенный аккумулятора телефон. - Георгич, слышишь? Мы не возвращались. Машина... радио в машине... Оно транслировало не то, что будет. Оно транслировало лог-файл, который был написан до того, как нас вообще создали.
Экран моргнул.
«Вывод близок к истинному».
Вентиляционная шахта над головой внезапно замолчала. Гул ливня, который всю дорогу казался оглушительным, пулеметным, от которого тряслась крыша легковушки, исчез за долю секунды. Словно кто-то повернул ручку громкости до нуля. Ни всплеска, ни затихающих капель. Просто абсолютная, вакуумная тишина, в которой звук нашего собственного дыхания казался неестественно громким, грубым и лишним.
За стеклом высокого лабораторного окна больше ничего не шумело. Там не было январского ливня. Не было пригородной трассы. Не было моста через реку, с которого нам только предстояло сорваться в двадцать два часа.
Я медленно повернул голову к окну.
Там, где должна была чернеть грозовая ночь, раскинулась ровная, матовая серая пустота. Без неба, без земли, без единого контура. Вся реальность за пределами этого бетонного куба была аккуратно стерта - или еще не скомпилирована.
На мониторе терминала лениво проступили последние 16 байт:
«Эксперимент переходит в финальную фазу. До запуска протокола осталось двадцать три секунды».
- Георгич… - позвал я.
Собственный голос вернулся с каким-то странным металлическим призвуком, будто его сначала сжали до предела, а потом небрежно распаковали обратно.
Георгич обернулся.
Не плавно.
Голова сместилась несколькими короткими рывками. Между ними словно отсутствовали промежуточные положения. Мир больше не рисовал движение целиком.
- Ты… тоже…
Губы шевельнулись сразу. Голос пришел спустя секунду.
Я не успел ответить.
Зеленый луч аварийного светодиода вдруг перестал быть светом.
Он застыл в воздухе тонкой стеклянной нитью. Я осторожно коснулся его пальцем.
Твердый.
Не холодный. Не теплый. Просто твердый.
Именно в этот момент я понял, что изменился не свет - изменились правила, по которым существовала реальность.
Где-то над нами сорвалась капля. Она пролетела несколько сантиметров и остановилась.
Навсегда.
Я медленно подошел ближе и увидел в ней собственное отражение.
Без малейшей ряби.
Без движения.
Словно время внутри крошечной водяной сферы уже закончилось.
Потом начали исчезать детали. Сначала пропала шероховатость бетона. Потом мелкие царапины на корпусах серверов. Кнопки клавиатуры стали идеально гладкими. Провода выпрямились. Даже складки на рукаве моей куртки постепенно разглаживались, словно миру больше не хватало сил поддерживать такую роскошь, как мелочи.
Он упрощался.
Не разрушался, а именно упрощался.
Монитор оставался единственным предметом, который выглядел абсолютно настоящим.
Все вокруг медленно теряло глубину. Экран, наоборот, становился все четче.
Последнее окно журнала исчезло.
OUT_RESP_3.DAT пропал, а на его месте появился новый файл SOURCE.DAT
Я долго смотрел на название. Потом перевел взгляд на размер. Он увеличивался прямо на глазах.
4 КБ.
16 МБ
1 ГБ.
Поле перестало помещать число. Я открыл файл. Внутри не оказалось ни текста, ни двоичных данных.
Я увидел дождь. Тот самый январский дождь, под которым Георгич ждал меня возле подъезда.
Потом мост.
Машину.
Лабораторию.
Свое увольнение.
Первый расчет.
Формулу динамического ключа.
Собственные руки.
Каждую мысль, которую я когда-либо принимал за свою.
Я листал файл дальше.
Там были не изображения.
Там были события.
И только тогда до меня дошло.
Ничего из этого не хранилось внутри файла.
Все это и было файлом.
Я медленно закрыл глаза.
Не получилось.
Веки больше не существовали отдельно от всего остального.
Они тоже были строкой данных.
Последняя мысль пришла неожиданно спокойно.
У этих сообщений действительно не было автора.
Не потому, что его невозможно найти.
Потому что автор не может существовать внутри собственного исходного кода.
Экран едва заметно дрогнул.
В самом низу появилась последняя строка.
Исходный код успешно выполнен.
После этого исчез курсор.
И только тогда исчезло все остальное


Рецензии

С 3 по 5 июля состоится Литературный фестиваль в Этномире. В программе – семинары известных поэтов и писателей, поэтический конкурс, посвященный Году единства народов России, книжная выставкая-ярмарка. Приглашаем принять участие →