Мунбин Мур
Сбой реальности

«Реальность не ломается. Она всего лишь показывает свой исходный код тем, кто готов его увидеть. Но помни: когда ты смотришь на трещину, трещина тоже смотрит на тебя. И иногда она моргает первой».

Мунбин Мур

Глава 1. Трещина

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

Именно это несовершенство он и пытался исправить в лаборатории «Хронос-дата», склонившись над монитором с разрешением 16K. Перед ним вращалась трёхмерная проекция нейронной сети, отвечающей за цветокоррекцию в новой системе дополненной реальности «Миракс». Логотип компании — серебристая спираль, пожирающая собственный хвост, — тускло горел на бейдже, приколотом к нагрудному карману его стерильно-белого халата. Два часа ночи. Охрана уже трижды обходила крыло, заглядывая в стеклянную перегородку с немым вопросом: «Домой не собираешься, трудоголик?».

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

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

Компиляция зависла на 99,7 процентах.

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

Лог был пуст.

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

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

Алексей мотнул головой, отгоняя воспоминания. Не сейчас.

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

Алексей выдернул сетевой кабель.

Светодиоды погасли на долю секунды, а затем вспыхнули снова, но теперь они горели ровным, неестественным, каким-то живым золотистым светом. Вентиляторы загудели громче, нагоняя жар, но температура в помещении, судя по датчику на стене, упала на четыре градуса. Из решёток охлаждения потянуло озоном, как после сильной грозы. И запахом. Тонким, сладковатым, с нотками жжёного сахара и чего-то ещё, чему Алексей не мог подобрать названия — так пахнет воздух после удара молнии в песчаную почву. Запах детства. Запах того самого июльского дня, когда восьмилетний Лёша впервые заметил, что небо над дачей на секунду моргнуло.

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

— Что за чертовщина? — прошептал он.

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

— Строка 77A-FF. Обнаружена аномалия. Инициирована процедура верификации наблюдателя.

Алексей замер. Голос не был синтезированным. Он звучал в голове, минуя барабанные перепонки, как будто кто-то говорил непосредственно с его слуховым нервом, вплетая слова прямо в поток сознания. И говорил этот голос с интонацией, которую невозможно было спутать с машинной, — в ней слышалась усталость. Бесконечная, древняя, вселенская усталость существа, которое ждало этого момента миллиарды лет.

В следующую секунду свет в лаборатории моргнул. Пространство перед монитором пошло рябью — той самой, которую Алексей сотни раз моделировал, создавая эффекты для «Миракса». Но сейчас это была не симуляция.

Воздух треснул.

Именно треснул — другого слова подобрать было нельзя. Реальность разошлась, как старая киноплёнка, и в этой прорехе на один миг Алексей увидел то, что скрывалось за декорациями физического мира.

Это была решётка.

Бесконечная, уходящая во все стороны сеть из сияющих нитей, переплетающихся в узлы чудовищной сложности. Каждая нить вибрировала, исторгая звук, похожий на звон миллиона хрустальных колокольчиков, подвешенных к ветвям мёртвого леса. В узлах пульсировали данные — не в виде цифр, а как чистые концепции, которые сознание Алексея отчаянно пыталось интерпретировать, облекая в знакомые образы. Смерть. Рождение. Гравитация. Время. Энтропия. Всё это было там, записанное на языке, на один порядок превосходящем любые языки программирования, созданные человечеством. Это был исходный код творения.

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

Код был повреждён.

Нити обрывались. Узлы были перекручены. Там, где должны были проходить прямые линии причинно-следственных связей, зияли тёмные лакуны, заполненные хаотичным шумом. Кто-то внедрил в ткань реальности вирус. И этот вирус распространялся, пожирая базовые константы, как раковая опухоль. Метастазы тянулись к ключевым узлам — к тем, что отвечали за фундаментальные взаимодействия.

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

— Наблюдатель идентифицирован, — снова произнёс голос. — Уровень доступа: корневой. Причина: мутация гена PER2-77A. Носитель способен воспринимать несоответствия архитектуры.

Алексей не понимал значения этих слов. PER2 — это ген, связанный с циркадными ритмами, что-то про биологические часы, он читал статью пару лет назад. Но мутация, позволяющая видеть «несоответствия архитектуры»? Это звучало как бред сумасшедшего. Бред, в который он погружался с головой.

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

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

— Чёрт, — выдохнул Алексей, поднимаясь на ноги. Колени подгибались, как у новорождённого жеребёнка. — Галлюцинация. Переутомление.

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

```

>init_observer.sh completed.

>CRITICAL: Reality Kernel v.13.7b compromised.

>Affected sectors: 2,847,991 out of 9,999,999,999.

>Patch required. Time to total collapse: [CALCULATING…]

```

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

Алексей медленно, очень медленно подошёл к столу. Пальцы зависли над клавиатурой. Ему хотелось нажать Reset, перезагрузить систему и забыть всё это, как страшный сон. Забыть голос, решётку, ощущение того, что он смотрит в лицо Богу и видит, что Бог смертельно болен. Уехать домой, выпить виски, заснуть под утро и проснуться в мире, где код реальности — это просто метафора из дешёвого научно-фантастического романа.

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

Он нажал не Reset, а клавишу «P».

```

>ping 127.0.0.1 -t -l 65500

```

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

Консоль ожила. Пакеты пошли.

Но вместо стандартного «Reply from 127.0.0.1» в столбце ответа значилось:

```

Reply from 0.0.0.0: bytes=65500 time<1ms TTL=∞

```

Алексей моргнул. TTL равен бесконечности? Такого не может быть. Time To Live — это максимальное число переходов, которое пакет может совершить, прежде чем будет уничтожен. Это фундаментальный параметр протокола, число, ограниченное восемью битами. Он не может быть символом бесконечности, даже если принимать во внимание самые экзотические расширения IPv6.

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

Снизу медленно допечаталась ещё одна строка:

```

Message: «ТЫ ВИДИШЬ ЭТО, ПОТОМУ ЧТО МЫ ДОПУСТИЛИ ОШИБКУ. ОШИБКУ ДОПУСТИЛИ И ТЫ. НАЙДИ БИЛЕТ. НАЧНИ С АДРЕСА, КОТОРОГО НЕТ В КАРТАХ».

```

Кровь отлила от лица Алексея. «Мы допустили ошибку». Кто — мы? Те, кто написал этот вирус? Или те, кто создал саму решётку, этот чудовищный каркас бытия? И что за билет? Он машинально похлопал себя по карманам джинсов — ключи, телефон, бумажник. В бумажнике лежал старый, потёртый билет на поезд «Москва — Санкт-Петербург». Он возил его с собой уже пять лет, как талисман, — именно в той поездке они с Лизой впервые поцеловались под стук колёс на верхней полке плацкарта.

Он достал его. Кусок плотного картона с выцветшим шрифтом. Вагон 7, место 13. Он перевернул его. На обороте мелким, но идеально ровным шрифтом — как на тех самых мониторах в лаборатории — было нацарапано:

«Клуб «Петля». Сегодня. 03:00. Не существуй».

Алексей посмотрел на часы на стене. 02:47. Тринадцать минут до указанного времени. Тринадцать минут, чтобы принять решение. Тринадцать минут до того, как его жизнь, только что расколовшаяся, как зеркало, окончательно рассыплется на осколки. Он не знал, что такое «Клуб «Петля»». Не знал, зачем ему туда идти. Но он знал одно: только что он видел то, что не предназначено для человеческих глаз. И если он не последует инструкциям, следующая трещина может оказаться последней.

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

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

И в каждом круге света творилось что-то неправильное.

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

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

— Что происходит?.. — прошептал Алексей.

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

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

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

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

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

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

Он бежал, не разбирая дороги. Город вокруг него терял свою материальность, превращаясь в лабиринт из фрагментов текстур и незаполненных пустот. Дома меняли цвет, вывески мигали бессмысленным набором символов, а небо над головой начало проступать изначальной, чёрной пустотой, на которой, как на гигантском мониторе, загружалась надпись: «SYSTEM FAILURE. REBOOTING…».

Петляя дворами, Алексей увидел вывеску. Старую, облезлую, но горящую в темноте, как маяк. «КЛУБ ПЕТЛЯ». Ржавая дверь, ведущая в подвал. За ней не было слышно музыки. Только гул, похожий на гул серверной.

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

Он оказался в полной темноте.

— Эй! — крикнул он в пустоту. — Кто-нибудь! Мне нужна помощь!

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

Их было пятеро.

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

— Вы… вы знаете, что происходит? — спросил Алексей, хватая ртом спёртый подвальный воздух. — Там, наверху… Реальность ломается!

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

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

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

— Добро пожаловать в Сопротивление, Алексей. Ты — наш последний билет.

Глава