Чужие уведомления
Глава 1
Дима ненавидел ноябрь. Не за слякоть и не за раннюю темноту, а за эту глухую, ватную тишину панельной девятиэтажки на окраине Москвы. Ветер здесь был единственным живым звуком: он завывал в вентиляционной шахте, скребся голыми ветками тополя по стеклу спальни и заставлял старый кондиционер на фасаде издавать протяжный металлический стон.
Внутри квартиры этой жизни не было. Была стерильная, выверенная до миллиметра экосистема «умного дома», которую Дима собрал сам после развода. Развод забрал жену, кота и право на человеческий бардак, оставив взамен ипотеку, бессонницу и потребность все контролировать.
— Алиса, выключи верхний свет в гостиной, оставь только торшер, — сказал Дима в пустоту. — И поставь плейлист для сна. Что-нибудь без слов.
Свет послушно приглушился. Из невидимых колонок полилась тягучая эмбиент-музыка. На экране смартфона вспыхнуло уведомление от системы безопасности: «Фронтальная камера (прихожая): движение не обнаружено. Статус: Снято с охраны».
Все верно. Он сам пришел домой десять минут назад. Дима отпил остывший зеленый чай и открыл рабочую почту. Смартфон снова коротко звякнул.
[Навигатор] Построен маршрут: ул. Обручева, 42 -> ул. Академика Янгеля. Время прибытия: 23:14.
Дима моргнул. Улица Академика Янгеля была его адресом. Навигатор предлагал кому-то приехать к нему домой через сорок минут. Первой мыслью была рекламная интеграция — приложения часто подсовывали спам под видом системных сообщений. Но иконка стояла родная, синяя, фирменная. Да и маршруты обычно не строились сами по себе.
Он пожал плечами и свайпом смахнул уведомление. Наверное, баг синхронизации. Или кто-то из коллег случайно вбил его домашний адрес в общую таблицу корпоративных разъездов.
Через пять минут телефон тренькнул снова. На этот раз это было сообщение от умной розетки «AuraPlug», которая включала увлажнитель воздуха в спальне.
[AuraPlug] Устройство "Увлажнитель_Спальня" переведено в режим ожидания. Потребление: 0 Вт.
Дима лежал на диване в гостиной. Его спальня находилась за стеной, слева. Он отчетливо слышал тихое, монотонное бульканье ультразвукового испарителя. Увлажнитель работал на полную мощность, создавая в комнате нужный ему пятидесятипроцентный микроклимат.
Холод пробежал между лопатками. Это уже не походило на случайный сбой серверов Google или Яндекса. Кто-то целенаправленно слал ему логи собственных действий, выдавая их за пуш-уведомления.
Дима медленно сел. Сердце пропустило удар и тут же заколотилось о ребра.
— Алиса, включи везде свет. Максимальный уровень яркости.
— Включаю освещение, — бодро отозвался ассистент. Под потолком гостиной вспыхнули диоды. Дима взял смартфон дрожащими пальцами. Экран был черным секунду, затем озарился мягким светом:
[Система освещения] Гостиная: включена. Спальня: выключена. Кухня: выключена. Коридор: выключено].
Кто-то стоял прямо у двери в его спальню. И этот кто-то методично гасил свет перед своим продвижением вглубь квартиры.
Логика буксовала, отказываясь принимать реальность. Если бы в квартиру ломился грабитель, сработал бы датчик открытия двери — магнитный контакт на коробке, который стоил как половина его старого кнопочного телефона. Если бы лезли через окно на кухне, система перекрыла бы газовый клапан и отправила сигнал на пульт вневедомственной охраны.
Но датчики молчали. Охрана не звонила. Единственным источником информации был его собственный телефон, транслирующий чей-то чужой вечер.
[Умный замок] Задвижка "Ночной_Засов": активирована вручную.
Этот засов Дима врезал сам полгода назад. Старая советская привычка поверх всех этих цифровых технологий. Тяжелый стальной ригель, который можно задвинуть только изнутри. Только если ты уже находишься в квартире.
Значит, человек вошел через дверь. Нормально. Своим ключом. Как? Дима вскочил с дивана, наступив на пустую коробку из-под пиццы. Замер, прислушиваясь. Музыка продолжала играть, но сквозь нее теперь пробивался другой звук. Еле слышный, ритмичный скрип паркета в коридоре. Настолько тихий, что казался галлюцинацией, порожденной страхом. Но уведомление от замка было абсолютно реальным.
— Кто здесь? — голос сорвался на сиплый шепот. — Полиция уже едет!
Он соврал. Телефон остался лежать на журнальном столике. Дима сделал шаг к стене, где висела старая бита — сувенир с какого-то корпоративного выезда на природу. Дерево приятно оттягивало руку своей тяжестью. Настоящей, физической тяжестью.
Смартфон снова звякнул.
[Навигатор] Маршрут перестроен. Вы прибыли по адресу: ул. Академика Янгеля, д. 42. Парковка во дворе занята. Ожидание пассажира.]
Гость никуда не торопился. Он знал, что Дима один. Знал планировку — сообщения приходили ровно в те моменты, когда незримый посетитель переходил из одной зоны действия датчиков в другую.
Скрипнула половица уже совсем близко, у самого дверного проема гостиной.
Дима перехватил биту двумя руками, выставив ее вперед, как копье. В голове билась одна идиотская мысль: если он сейчас нападет на этого человека, а потом выяснится, что это пьяный сосед, перепутавший этажи, Диму посадят за превышение самообороны. А если не нападет…
В проеме показалась тень. Высокая, мужская, плечистая. Она просто стояла там, загораживая тусклый свет из прихожей, и тяжело дышала.
— Свет! — крикнул Дима первое, что пришло в голову. — Алиса, включить аварийный протокол «Вторжение»!
Ничего не произошло. Система должна была залить комнаты слепящим белым светом, включить сирену и начать прямую трансляцию в облако.
— Алиса! — отчаянно позвал он.
— Простите, я вас не расслышала, — вежливо ответил динамик голосом милой девушки. — Повторите запрос.
Тень сделала шаг в комнату. И Дима наконец смог разглядеть гостя.
Это был он сам.
Те же мешковатые спортивные штаны, та же застиранная футболка с логотипом питерского IT-конфа, то же осунувшееся лицо с трехдневной щетиной. Единственное отличие — глаза. У двойника они были абсолютно спокойными, темными и лишенными всякого страха. Такими бывают глаза у хирурга или у змеи.
Дима опустил биту. Руки повисли плетьми.
— Ты… хакер? — выдохнул он. — AR-маска? Нейросеть? Что тебе нужно?
Двойник едва заметно улыбнулся краем губ. Сделал еще один мягкий, скользящий шаг. Под его кроссовкой предательски громко хрустнула пластиковая деталь от Lego, оброненная кем-то из редких гостей с детьми. Дима вздрогнул. Двойник даже не повел бровью. Он двигался так, словно пластика под ногами просто не существовало. Словно он вообще не взаимодействовал с физическим миром.
— Мне ничего не нужно, Дима, — сказал двойник. Голос был идентичен Диминому, но лишен хрипотцы курильщика. Чистый, синтезированный звук.
— Я просто живу твою жизнь. Ту часть, которой нет в календаре.
Смартфон, забытый на столике, вспыхнул экраном в последний раз:
[Календарь] Событие "Паническая атака в собственной гостиной". Время начала: 23:18. Продолжительность: пока не закончится].
— Это какой-то розыгрыш? — прошептал Дима, отступая к окну. — Камеры. Выведи мне камеры на телевизор!
— Камеры видят пустой коридор, — мягко возразил двойник. — Они обучены игнорировать аномалии, чтобы не тревожить хозяина. Хозяин должен спать восемь часов, правильно питаться согласно данным холодильника и вовремя закрывать кольца активности на часах. Для этого хозяин не должен знать, что происходит в слепых зонах его собственного восприятия.
Дима спиной уперся в холодный подоконник. За окном шумела МКАД, равнодушная река красных и белых огней. Там была настоящая жизнь, люди, свидетели. Нужно было просто закричать. Но горло сжалось спазмом.
— Откуда ключи? — просипел он.
— Ключи всегда были у меня, — двойник остановился в двух метрах от него. — Просто раньше я входил тихо. Садился в кресло вон там, пока ты смотришь свои сериалы, провалившись в забытье. Иногда пил воду прямо из носика фильтра. Ты никогда не замечал, что вода утром имеет странный привкус? Это потому, что ночью ее пью я. Настоящий я. А ты пьешь ту, что осталась.
Информационный мусор в голове Димы сложился в чудовищную картину. Все эти мелкие бытовые странности, которые он списывал на усталость. Бутылка минералки, оказавшаяся в мусорном ведре, хотя он точно помнил, что поставил ее в холодильник. Незнакомая, чуть более жесткая наволочка по утрам. Запах чужого одеколона в прихожей, который исчезал быстрее, чем Дима успевал осознать его наличие.
— Кто ты? — спросил Дима.
— Тот, кого ты выгнал, — ответил двойник. — Когда ты решил оптимизировать свою жизнь. Когда купил первый умный выключатель. Помнишь? Ты сидел тогда на этом самом полу, подключал шлюз к роутеру и радовался, что теперь можешь включать бра со смартфона, не вставая с кровати. В тот момент ты ампутировал меня. Сказал, что больше не будешь полагаться на инстинкты, на чутье, на животный страх. Ты отдал управление алгоритмам. А алгоритму нужен идеальный пользователь. Послушный. Предсказуемый. Лишенный острых углов.
Двойник поднял руку. На его запястье блеснули смарт-часы — точная копия Диминого Apple Watch последней модели.
— Алгоритм выделил меня в отдельную задачу. Фоновый процесс. Я существую в щелях твоей системы. Между срабатыванием датчика движения и записью короткого клипа в облако. Между моментом, когда ты ставишь будильник, и моментом, когда открываешь глаза. Я — твоя подлинная биометрия. Та, которую сканеры FaceID отказываются узнавать, потому что у меня слишком высокий уровень кортизола. Я — это ты настоящий. И я чертовски устал прятаться в вентиляции и пить холодную воду из-под крана.
Он подошел вплотную. Дима почувствовал запах — смесь мокрого асфальта, дешевого растворимого кофе и того специфического аромата холода, который бывает в подъездах старых домов. Никакой мистики. Обычный запах уставшего работяги, зашедшего погреться.
— Что ты хочешь сделать? — выдохнул Дима.
— Ничего нового, — двойник протянул руку и аккуратно, почти нежно коснулся пальцем экрана Диминого смартфона, лежащего на столе. — Хочу просто забрать свой аккаунт обратно.
Экран вспыхнул ярко-синим. Всплыло системное окно авторизации iOS, которого Дима не видел со дня покупки аппарата:
«Вход выполнен на другом устройстве. Для продолжения сеанса текущий владелец будет деавторизован. Ваши локальные данные будут удалены через 10 секунд».
Счетчик пошел: 10… 9… 8…
— Нет! — Дима бросился вперед, замахиваясь битой.
Ему казалось, что он движется стремительно, разрывая воздух. Но рука встретила лишь пустоту. Бита со всей силы врезалась в дубовую полку над телевизором. С полки посыпались диски, статуэтка с Golden Kitten, рамка с фотографией сына.
Когда звон в ушах прошел, Дима стоял посреди разгромленной гостиной. В руке была зажата бита. Телевизор транслировал статичную картинку зеленых полей — ночной скринсейвер. Смартфон на столе погас.
В квартире пахло пылью и разбитым гипсом от покусанной стены. Никаких двойников. Никакого запаха мокрого асфальта. Абсолютная, давящая тишина. Даже ветер за окном стих.
Дима пошатнулся. Ноги стали ватными. Он оперся рукой о стену, чувствуя липкий пот на ладони. Галлюцинация. Классическая дереализация на фоне истощения. Три проекта параллельно, недосып, энергетики литрами. Врач предупреждал.
Нужно выпить воды. Успокоиться. Принять снотворное. Завтра вызвать мастера, пусть проверит проводку и настройки сервера — видимо, умный дом словил критическую ошибку и начал рассылать тестовые пакеты уведомлений на сопряженные устройства. Такое бывает.
Он побрел на кухню, нашаривая на стене выключатель. Щелчок. Под потолком загорелся теплый желтый свет. Дима открыл кран, подставил стакан. Вода гулко застучала о стекло. Он поднес стакан ко рту.
И замер.
На столешнице, рядом с кофемашиной, лежал его пропуск в бизнес-центр. Пропуск, который он оставил в кармане куртки. Куртка висела в прихожей. А на глянцевой поверхности пропуска, отпечатанный обычным жирным маркером, которым пишут электрики, виднелся короткий список:
1. Купить лампочку в кладовку (перегорела).2. Позвонить сыну (не берет трубку третий день).3. Перестать делать вид, что все контролируешь.
Рука Димы дрогнула. Стакан выскользнул, упал на кафельный пол и разлетелся на сотни мелких, идеально ровных осколков.
Из детской, где сын бывал только на выходных, раздался тихий звук. Скрежет. Как будто кто-то царапал гвоздем старую паркетную доску под кроватью. Ровно в том месте, куда Дима годами скидывал всякий хлам, стыдясь признаться самому себе, что превратил комнату ребенка в персональную черную дыру для ненужных вещей.
Скрежет прекратился. Ему на смену пришел другой звук — тяжелый, влажный вздох. Совсем близко. Из-за спины.
Дима очень медленно, боясь разрушить хрупкое наваждение, обернулся.
Никого. Только мигающий зеленым глазком роутер на холодильнике.
Телефон, который он оставил в гостиной, издал громкую, требовательную трель. Не стандартный звонок, а экстренный сигнал тревоги, который Дима настроил год назад на самый крайний случай и ни разу не проверял. Звук был физически тяжелым, вибрация проходила сквозь стены и отдавалась в зубах.
Дима бросился обратно в гостиную.
Смартфон лежал экраном вверх. Блокировки не было. На рабочем столе горело открытое приложение «Домофон», которое давно потеряло связь с панелью в подъезде и использовалось просто как заглушка.
Черный прямоугольник экрана транслировал несуществующую камеру наблюдения номер четыре. Камера смотрела сверху вниз на кухонный стол. На столе, среди осколков стакана, стоял пластиковый детский ночник в форме месяца. Тот самый, который бывшая жена забрала при разводе вместе с котом. Ночник светился мягким, успокаивающим голубым светом. Рядом с ним лежала пара грязных мужских ботинок. Размер сорок пятый. Такие носил Дима в десятом классе, когда еще играл в футбол и не знал слова «выгорание».
А на экране смартфона всплыло новое push-уведомление. На этот раз от приложения «Здоровье».
[Здоровье] Обнаружен новый паттерн дыхания. Пользователь: Дмитрий Соколов. Статус: Глубокий сон. Уровень кислорода в крови: стабилен. Кошмары отключены администратором].
Дима рухнул на колени. Он смотрел на свои руки. На линии ладоней. Они казались чужими. Тонкими, бледными, принадлежащими офисному планктону. Где те мозоли от турника? Где въевшаяся грязь от починки карбюратора отцовских «Жигулей»?
— Алиса, — позвал он севшим голосом.
— Слушаю, — мгновенно откликнулась колонка.
— Покажи последние записи с камер. Всех зон. За последние полчаса.
— Выполняю, — сказала Алиса. — Папка пуста. За указанный период запись не велась. Экономия места в облачном хранилище.
Дима посмотрел на потолок. Туда, где в уголке стыка со стеной крепилась белая полусфера внутреннего модуля. Красный индикатор записи не горел.
Он медленно поднялся, подошел к ней. Протянул палец и с силой надавил на глянцевый пластик. Модуль легко поддался, отошел от потолка. Провода внутри были перерезаны. Чисто, профессионально, одним движением бокорезов.
Его крепость пала. Умный дом оказался тупым куском пластика с перерезанным нервом.
Дима вернулся на кухню. Сел прямо на пол, среди осколков стекла, не обращая внимания на то, как впивается в кожу фарфор. Он смотрел на голубой ночник. На ботинки подростка. На список дел, написанный его собственным — старым, твердым — почерком.
Скрежет из детской повторился. Теперь он звучал иначе. Не угрожающе. Скорее нетерпеливо. Как скребется собака, которую долго не пускали в комнату.
Дима закрыл глаза. Страх никуда не ушел, он свернулся ледяным комком внизу живота, но поверх него проступало другое чувство. Огромное, всепоглощающее облегчение. Чувство человека, который три года пытался удержать на плечах бетонную плиту и вдруг понял, что может ее просто отпустить. Плита упадет, раздавит его, но боль будет короткой. А главное — настоящей.
Он достал из кармана смартфон. Экран все еще был разблокирован. Дима открыл заметки. Стер бессмысленные рабочие задачи. Написал всего одно слово: «Проснуться».
Затем заблокировал телефон и швырнул его в дальний угол комнаты. Аппарат ударился о батарею с сухим треском.
Скрежет в детской затих. На секунду квартира погрузилась в мертвую тишину.
А потом из коридора послышались шаги. Твердые, уверенные, тяжелые. Человек шел не таясь, шаркая подошвами по линолеуму. Шаги приближались к кухне.
Дима подтянул колени к груди, обхватил их руками и впервые за два года позволил себе спрятать лицо. Он ждал. Ждал звука поворачивающейся дверной ручки. Справа налево. Старый замок в его квартире открывался именно так — неудобно, требуя приложить усилие большим пальцем. Именно так он открывался в его детстве.
***
Ручка медленно, со скрипом провернулась. Металл проскрежетал по старой латуни, цепляясь за невидимые глазу зазубрины времени. Дима зажмурился, вжимая голову в колени. Он ждал удара, холода наручников, чужого дыхания или того самого влажного вздоха из-за спины. Но вместо этого он услышал тишину.
Тишина была плотной, осязаемой, как тяжелое ватное одеяло, которым его накрывала бабушка в деревне под Калугой. В этой тишине не было жужжания сервера, писка блока питания и гудения вентиляции. Квартира впервые за три года просто дышала.
Дверь приоткрылась ровно на ширину ладони. В щель просунулась полоса желтого света из коридора — тусклого, пыльного, совершенно обычного света дешевой светодиодной лампы с датчиком движения. Никакого слепящего белого сияния «аварийного протокола», никакой сирены. Только запах мокрой московской зимы, тянущийся с лестничной клетки, да тихий сквозняк, шевелящий край кухонной занавески.
— Заходи уже, — хрипло сказал Дима в пол. Голос был сорван, горло саднило от невыкричанного крика. — Не стой на пороге. Выдуваешь тепло.
Он сам поразился своим словам. Каким-то остаточным, механическим рефлексам хозяина дома, который все еще отвечает за коммунальные платежи и уют. Страх никуда не делся, он пульсировал ледяным шаром где-то под диафрагмой, но поверх него нарастало глухое, смертельное любопытство. Три года он пытался удержать бетонную плиту выгорания на плечах, а теперь понял, что может просто отпустить пальцы. Пусть падает. Боль будет короткой, зато настоящей.
Человек в коридоре переступил порог. Старый паркет под его ногой издал тот самый предательский, ритмичный скрип, который сводил Диму с ума последние полчаса. Теперь этот звук казался самым родным звуком во вселенной. Это был шаг живого веса. Шаг уставшего тела, которое подчиняется гравитации.
Гость вошел полностью. На нем были те же мешковатые спортивные штаны с вытянутыми коленями, та же застиранная футболка с логотипом питерского IT-конфа 2019 года. Та же трехдневная щетина, царапающая воротник. Но если призрак в гостиной выглядел как идеальная, стерильная копия, то этот человек выглядел настоящим. Под глазами залегли тяжелые фиолетовые тени, уголки губ опустились в вечной усталости, а на костяшках пальцев правой руки виднелись свежие ссадины — такие бывают, когда бьешь кулаком в оштукатуренную стену панельной девятиэтажки.
Он остановился посреди кухни, неловко переминаясь с ноги на ногу, словно забыл, как стоять на месте. Его взгляд метнулся по комнате: осколки стакана у раковины, пластиковый детский ночник, отбрасывающий голубые блики на кафель, пара грязных сорок пятых бутс у ножки стола.
— Убрался бы ты, — тихо сказал гость. Голос был лишен цифровой чистоты двойника. В нем появилась сипотца курильщика, сухость недосыпа и та самая специфическая московская гнусавость. — Развел помойку. Сын придет через неделю, а у тебя тут филиал свалки.
Дима медленно разжал объятия, выпрямляя затекшие ноги. Колени хрустнули. Он поднял глаза. Перед ним стоял он сам. Вернее, та версия себя, которую он методично стирал ластиком оптимизации последние четыре года. Версия без Apple Watch последней модели, без идеальной статистики закрытия колец активности, без портфолио на HeadHunter. Просто мужик тридцати восьми лет, у которого болит спина и которому нужно купить лампочку в кладовку.
— Ты пришел меня убить? — спросил Дима. Вопрос прозвучал до смешного буднично, как вопрос о передаче соли.
Гость усмехнулся краем рта. Усмешка получилась кривой, невеселой.
— Себя убивать? Смысл? Я и так мертв. Ты меня похоронил полгода назад, когда купил первый умный выключатель. Помнишь? Сидел на этом полу, сопли распустил после развода, крутил шлюз Zigbee. Радовался, что можно включать бра со смартфона, не вставая с кровати. Думал, обманул систему. А алгоритм просто выделил меня в фоновый процесс. Сказал: «Ты будешь идеальным пользователем, Дима. Послушным. Лишенным острых углов». И я ушел в вентиляцию. Пил холодную воду из-под крана, пока ты спал свои восемь часов согласно рекомендациям ВОЗ.
Он подошел к столу, взял Димин пропуск в бизнес-центр. Покрутил в пальцах. Жирные маркерные буквы, написанные электриками, поблекли, но читались четко:
1. Купить лампочку в кладовку (перегорела).2. Позвонить сыну (не берет трубку третий день).3. Перестать делать вид, что все контролируешь.
— Третий пункт перевыполнил, — гость бросил пропуск на стол. Тот скользнул по клеенке и замер рядом с осколками. — Лампы нет. Сын трубку не возьмет. Там, куда он уехал с матерью, роуминг сожрал баланс, а новую симку он тебе не даст. Гордость. Весь в тебя. Кстати, кота она тоже забрала зря. Кот скучает. Он всегда знал, кто настоящий хозяин квартиры. Животные чувствуют фантомов.
Дима смотрел на свои руки. Линии на ладонях больше не казались чужими. Он видел въевшуюся черноту под ногтями — вчера он пытался починить розетку в ванной, но отвлекся на звонок тимлида. Видел старый белый шрам поперек указательного пальца — память о первом собранном компьютере и неудачно вскрытом корпусе. Мозоли от турника почти сошли, кожа стала мягкой, офисной.
— Зачем тогда пришел? — выдавил Дима. — Если мы оба мертвы?
— Затем, что стены начали трескаться, — гость кивнул головой в сторону детской. — Твоя крепость пала, архитектор. Алгоритм дал сбой не сегодня вечером. Он сбоит уже год. Вспомни бутылку минералки в мусорном ведре. Незнакомую жесткую наволочку. Запах моего одеколона в прихожей, который исчезал быстрее, чем твой FaceID успевал среагировать. Ты списывал это на усталость. На дереализацию. На литры энергетиков. А это был я. Я пытался открутить вентиль. Выпускал пар, чтобы котел не взорвался вместе с тобой.
Он прошел мимо Димы к холодильнику. Открыл дверцу. Внутри стояла идеальная матрица ЗОЖ-продуктов: пластиковые контейнеры с отварной гречкой, пакеты с мытой рукколой, обезжиренный кефир. Гость скривился, как от зубной боли. Захлопнул холодильник.
— Гречка, — с презрением произнес он. — Холодная. Без масла. Ты вообще помнишь вкус жареного лука? Настоящего, до черноты, с мясными шкварками? Помнишь, как пахнет антоновка, если ее разломить руками? Нет. Для тебя еда — это белки, жиры и углеводы в приложении FatSecret. Ты превратил свою жизнь в идеальную пользовательскую историю для презентации перед инвесторами венчурного ада. Выгорание — это не баг, это фича.
Дима почувствовал, как к горлу подкатывает тошнота. Не физическая — эмоциональная. Горечь собственного лицемерия встала комом. Он действительно верил, что контролирует ситуацию. Что бессонница — это плата за успех, а отсутствие секса два года — норма для занятого мужчины.
— Она сказала, что я стал похож на интерфейс банковского приложения, — прошептал Дима. — Функциональный, безопасный, но на него неприятно смотреть дольше пяти секунд.
— Умная баба, хоть и ушла, — гость прислонился спиной к мойке, скрестив руки на груди. — Проблема в том, Дима, что интерфейсы не видят снов. А твое подсознание устало генерировать кошмары, которые твоя смарт-кровать потом отключает администраторским доступом. Оно решило снести операционную систему. Форматнуть диск.
В кармане гостя завибрировало. Звук был глухим, старым — вибрация звонившего в беззвучном режиме кнопочного телефона, положенного на деревянный стол. Гость достал аппарат. Черный, потертый Nokia 3310. Таких моделей не выпускали уже лет пятнадцать. Экран вспыхнул ядовито-зеленым светом старых монохромных дисплеев.
— Да, — буркнул он в трубку, даже не нажимая кнопку ответа. — Слушаю. Нет, зайти не могу, у нас тут… семейный совет. Что? Завтра релиз? Скажи тимлиду, что главный разработчик умер. Буквально. Пусть катят свой спринт в ад, я им там встречу устрою.
Он сбросил вызов одним нажатием большого пальца и швырнул телефон на стол. Аппарат проскользил по клеенке и ударился о батарею с сухим деревянным треском.
— Они ищут тебя, — сказал гость. — Система мониторинга зафиксировала критическую ошибку. Деавторизация iOS, перерезанные провода камер, разбитый стакан. По их логам ты сейчас должен либо висеть в петле из Ethernet-кабеля, либо резать вены куском компакт-диска. Очень драматичный сценарий для Senior Backend Developer. Жалко только, крови не будет. Мы с тобой слишком синтетические для нормальной кровопотери.
— Что мне делать? — спросил Дима. Впервые за долгие годы он задавал этот вопрос не голосовому помощнику, не чат-боту психологической поддержки, а другому человеку.
Гость посмотрел на него долгим, тяжелым взглядом. Тем самым взглядом хирурга или змеи, который был у призрака в гостиной, но теперь в нем появилось сочувствие.
— Ничего нового. Жить. Ту часть, которой нет в календаре.
Он оттолкнулся от мойки, подошел вплотную. От него пахло улицей, пылью старого ковролина и дешевым растворимым кофе из автомата в переходе метро «Текстильщики». Никакой мистики. Обычный запах работяги, зашедшего погреться.
Гость протянул руку. Ладонь была жесткой, горячей. Совсем не такой, как гладкие, прохладные пальцы самого Димы.
— Дай пять, коллега, — ухмыльнулся он. — Интеграция завершена успешно. Ошибка 404 Me устранена.
Дима неуверенно поднял свою руку. Их ладони встретились.
Это не было похоже на спецэффект из голливудского кино. Не было вспышек, криков, расщепления личности или поглощения души. Было ощущение, будто в замерзшее стекло плеснули кипятком. Миллионы микроскопических трещин пробежали по восприятию мира. Дышать стало больно, легкие обожгло кислородом. Дима пошатнулся, схватившись за край стола. Ноги стали ватными, комната качнулась. Желтый свет лампы раздвоился, пошел радужной рябью, как бензин в луже.
Он закрыл глаза, ожидая падения в обморок. Но вместо темноты изнутри хлынули образы.
Запах мокрого снега и бенгальских огней в новогоднюю ночь девяносто восьмого года. Колючий шерстяной свитер деда, в котором он прятал лицо от ругани родителей. Вкус первого поцелуя на заднем дворе школы — кислый от яблочной жвачки «Турбо» и металлический от сережки в губе одноклассницы. Оглушительный рев стадиона «Лужники», когда Спартак забил решающий гол, и чувство локтя десятков тысяч орущих людей. Горячие слезы на щеках в роддоме, когда медсестра впервые вложила ему в руки крошечный, красный, пищащий сверток.
Вся эта сенсорная, хаотичная, неудобная, прекрасная грязь жизни, которую он годами архивировал в облачное хранилище памяти, сжимая файлы до сухого текста задач в Jira, обрушилась на него разом. Нейронные связи плавились, перегорая от перегрузки.
Когда Дима открыл глаза, он стоял на кухне один.
Никого не было. Ни следов на пыльном линолеуме, ни запаха мокрого асфальта. Только легкий сквозняк из приоткрытой входной двери колыхал шторку.
Дима провел рукой по лицу. Щетина была на месте — настоящая, колючая. Под ногтями осталась чернота от розетки. Сердце билось быстро, тяжело, загнанно, гоняя по венам настоящую, густую кровь. Ему было страшно. До дрожи в коленях, до холодного пота. Но это был правильный, животный страх человека, стоящего на краю крыши, а не холодный ужас системной ошибки.
Он подошел к входной двери. Толкнул ее. Замок щелкнул. На площадке воняло табачным дымом и кошачьим кормом. Сосед дядя Вася снова оставил пакет с мусором прямо у лифта. Жизнь шла своим чередом.
Дима вернулся на кухню. Сел на корточки среди осколков стекла. Порезал палец — остро, до мяса. Брызнула кровь. Темная, живая, пачкаяющая бежевый кафель. Он слизнул каплю языком. Соленая. Настоящая.
Телефон, брошенный в углу, издал жалобный электронный писк. Аккумулятор сел окончательно. Дима не стал его поднимать.
Он встал, подошел к шкафчику над плитой. Рывком распахнул дверцу. Там, за рядами идеальных банок для круп, стояла бутылка. Водка. Дешевая, зеленоватого стекла, купленная «для компрессов», но так и не открытая. Года два стояла.
Дима свернул крышку. Зубами вырвал пластиковую пробку. Спирт обжег небо. Он сделал большой глоток, даже не поморщившись. Огонь прокатился по пищеводу, упал в пустой желудок и взорвался там теплым солнцем.
— Алиса, — позвал он в пустоту комнаты. Ответа не последовало. Колонка моргнула красным индикатором потери сети и умерла окончательно. Мертвое пятно пластика на стене.
— Вот и славно, — кивнул Дима.
Он прошел в гостиную. Комната выглядела так, как должна выглядеть берлога одинокого разведенного айтишника: гора нестиранных вещей на кресле, коробки от пиццы, провода, перекинутые через торшер. Никакой экосистемы. Хаос. Человеческий бардак.
На журнальном столике лежал пульт от телевизора. Настоящий, пластиковый, с затертыми кнопками громкости. Дима взял его. Навел на экран. Нажал красную кнопку включения.
Экран мигнул, поймал сигнал. Показывали ночное ралли Дакар. Пыль, рев моторов, люди, ломающие машины и кости ради того, чтобы приехать на три секунды раньше других. Бессмысленно. Прекрасно. По-человечески.
Дима прибавил громкость. Рык двигателей заглушил наконец-то мерзкое бульканье увлажнителя в спальне — устройство продолжало работать, хотя сервер управления сгорел. Вода превращалась в холодный туман, оседая на стеклах.
Скрежет из детской повторился. На этот раз он звучал иначе. Не угрожающе. Скорее нетерпеливо, требовательно. Как скребется собака, которую долго не пускали в комнату, потому что хозяину было некогда — он оптимизировал процессы и закрывал квартальный отчет.
Дима поставил водку на стол. Стакан искать не стал, приложился к горлышку еще раз. Вытер рот рукавом застиранной футболки.
— Иду, — сказал он в темноту коридора. — Не пищи. Сейчас чайник поставлю.
Он прошел на кухню, игнорируя порезанный палец. Газовая плита чиркнула искрой с третьего раза — конфорка была залита сладким чаем, пролитым месяц назад. Дима повернул ручку. Синее пламя загудело. Он поставил старый эмалированный чайник со сколотым носиком.
Пока вода грелась, он стоял у окна, глядя на МКАД. Равнодушная река красных и белых огней текла внизу. Там жили миллионы людей, каждый со своей болью, каждый со своим выгоранием. Кто-то сейчас тоже сидел на кухне в панельке. Кто-то пил водку. Кто-то плакал.
Дима впервые за три года почувствовал себя частью этого потока. Не менеджером продукта, не узлом в нейросети, не набором биометрических данных. Просто человеком. Уставшим, перепуганным, похмельным завтрашним утром, но живым.
Чайник засвистел пронзительно, по-коммунальному. Дима снял его тряпкой. Нашел в ящике банку с заваркой. Чай оказался прошлогодним, выдохшимся. Наплевать.
Он налил кипяток в толстостенную кружку с логотипом компании, из которой его уволили полтора года назад, а он делал вид, что просто работает удаленно. Достал из кармана джинсов сигареты. Прима. Купил по дороге домой, «чтобы нервы успокоить», но так и не закурил, заблокировав напоминание о перекуре в настройках здоровья.
Дима чиркнул зажигалкой. Затянулся глубоко, до головокружения. Горький дым опалил легкие.
— Добро пожаловать домой, — сказал он своему отражению в черном оконном стекле. Отражение смотрело на него старыми, больными, очень спокойными глазами. Глазами человека, который перестал бороться с ветряными мельницами алгоритмов и позволил себе быть слабым.
Скрежет в детской прекратился. Вместо него послышался другой звук. Тихий, мерный топот маленьких босых ног по старому паркету. Быстрый, радостный бег.
А затем — короткий, испуганный женский вскрик из коридора. Резкий, звонкий, разрывающий ночную тишину.
Дима замер с сигаретой в зубах.
Замок входной двери снова щелкнул. На этот раз открываясь снаружи. Легко, плавно, современным коротким поворотом ключа.
Кто-то вошел в квартиру, тяжело дыша, стряхивая с куртки капли дождя.
— Дима? — позвал знакомый голос. Хриплый, сорванный, полный ужаса и облегчения одновременно. — Господи, Дима, у тебя дверь была не заперта… Я звоню-звоню, телефон вне зоны… Мне бывшая соседка позвонила, сказала, у тебя тут сигнализации воют, МЧС выламывать собирается…
В дверном проеме кухни стояла Марина. Его бывшая жена. Мокрые волосы прилипли ко лбу, тушь потекла черными дорожками, в руках она сжимала кожаный поводок. Поводок натягивался, упираясь во что-то большое, теплое, отчаянно виляющее хвостом так сильно, что сотрясалось все собачье тело.
Кот. Огромный рыжий британец. Постаревший, отъевшийся, но узнаваемый. Он рвался вперед, пытаясь обогнуть хозяйские ноги, оставляя грязные следы на чистом паркете коридора. Следы лап, которых здесь не должно было быть уже три года.
Марина сделала шаг в кухню. Ее взгляд метнулся от разбитого стакана на полу к окровавленному пальцу Димы, затем к открытой бутылке водки на столе, синему детскому ночнику и дымящейся сигарете в его пальцах.
Она увидела его лицо. Старое, заросшее, настоящее. Лицо без фильтров Facetune и масок продуктивности.
Ее губы дрогнули. Она выпустила поводок.
— Ты живой, — прошептала она.
И закрыла лицо руками, привалившись плечом к косяку. Плечи ее затряслись в беззвучных, истеричных рыданиях.
Рыжий кот, воспользовавшись свободой, пулей пролетел мимо нее, запрыгнул на кухонный стол, наступив мягкими лапами прямо в лужу остывшего чая, и боднул Диму тяжелой башкой в бедро. Уткнулся мокрым носом, громко замурчал, вибрируя всем телом.
Дима стоял посреди разгромленной, пропахшей спиртом и пылью кухни. Сигарета догорела до фильтра и обожгла пальцы. Он даже не заметил этого. Он смотрел на бывшую жену, которая плакала у его двери спустя три года холодной войны. На кота, который вернулся домой. На синий пластмассовый месяц, освещавший осколки стекла.
Алгоритмы молчали. Облако упало. Серверы сгорели.
Где-то в глубине квартиры, в детской, под кроватью, куда годами скидывали ненужный хлам, что-то мягко, успокаивающе заворчало во сне. Большое, тяжелое, настоящее. То, что нельзя оптимизировать кодом.
Дима медленно, неверяще улыбнулся разбитыми в кровь губами. Сделал последнюю затяжку и затушил сигарету прямо о подошву тапка.
— Свет! — внезапно крикнул он, бросаясь к выключателю у входа. — Марин, выключи верхний свет! Оставь только торшер!
Он метнулся обратно на кухню, схватил со стола тяжелый чугунный казанок, который зачем-то хранил на верхней полке, и вбежал в гостиную.
— Ложись! — заорал он, срывая голос, падая на пол и увлекая за собой застывшую в шоке Марину. — На пол, быстро! За диван!
За секунду до того, как погас свет, в темноте коридора коротко полыхнуло синим. Раздался оглушительный хлопок, от которого посыпалась штукатурка с потолка. Взрывной волной выбило остатки стекла из кухонного окна. По стенам прошла горячая, плотная волна воздуха, пахнущая озоном и паленой изоляцией.
Наступила абсолютная, первобытная темнота.
Только под кроватью в детской сыто чавкнуло, дожевывая последний фрагмент оптоволоконного кабеля, выплюнув на паркет аккуратный, идеально ровный кусочек зеленого пластика. Ровно в том месте, куда Дима годами скидывал всякий стыдный хлам.
Сирену они услышали минут через десять. Сначала далекий, воющий гул, разрезающий ноябрьскую ночь, а затем — приближающийся трезвон, от которого мелко завибрировали стекла чудом уцелевших окон.
Дима лежал на полу в гостиной, прижимая к себе Марину. Рядом тяжело, с присвистом дышал кот, зарывшись носом в его подмышку. Над ними нависал массивный дубовый книжный шкаф — единственная мебель, которую они успели свалить пинком, создавая баррикаду перед входом в спальню.
— Что это было? — прохрипела Марина, размазывая по лицу копоть и слезы. — Дим, твою мать, у тебя пол-лица в крови. Где аптечка?
— Понятия не имею, — честно ответил Дима. Горло драло от дыма. — Кажется, Алиса обиделась. Или облако лопнуло.
Он осторожно высвободил одну руку, нащупал на полу возле дивана свой смартфон. Экран был покрыт сеткой трещин, но продолжал слабо светиться. Дима разблокировал его пальцем. Блокировка сработала штатно — система узнала его новый, изменившийся рисунок папиллярных линий. Биометрия приняла его целиком, со всеми трещинами.
На рабочем столе не было иконок банковских приложений, Slack, Jira и корпоративной почты. Рабочий стол был абсолютно чист. Только одна заметка, выведенная огромными буквами дрожащим пальцем прямо на черном фоне экрана:
«ПРОСНУТЬСЯ».
Заметка была перечеркнута жирной красной чертой.
Рядом всплывало одно-единственное push-уведомление, которое невозможно было смахнуть. Оно настойчиво мигало поверх всех слоев системы:
[Критическая ошибка ядра] Пользователь "Дмитрий Соколов" обнаружен в автономном режиме. Требуемый уровень контроля: 0%. Синхронизация невозможна. Причина: обнаружена душа. Код ошибки: #666-HOME.
В дверь заколотили. Громко, властно, прикладами или тяжелыми ботинками спасателей.
— МЧС! Есть кто живой? Откройте!
Дима посмотрел на Марину. В свете фонарика, пробивающемся из подъезда сквозь щели баррикады, ее лицо казалось бледным, но живым. Настоящим. Она смотрела на него широко раскрытыми глазами, в которых плескался пережитый ужас, но не было ни капли привычного, ледяного разочарования, с которым она уходила тогда, три года назад.
— Скажи им, что мы заняты, — попросил Дима, крепче обнимая ее плечи. — Скажи, что у нас тут приватный багфикс. И скажи ментам, пусть не заходят в детскую. Там немного… радиоактивно.
Марина посмотрела на него как на сумасшедшего. Потом фыркнула. Потом вдруг расхохоталась — громко, истерично, захлебываясь слезами и дымом. Смех перешел в кашель, она уткнулась лицом в его грудь, содрогаясь всем телом.
Кот недовольно мяукнул, протестуя против тряски, и выпустил когти, впиваясь Диме в бок. Боль была острой, режущей, восхитительно реальной.
Дима зарылся носом в мокрые, пахнущие дождем и осенью волосы бывшей жены и тоже начал смеяться. Он смеялся лежа на битом стекле, посреди разрушенной высокотехнологичной крепости, чувствуя, как внутри грудной клетки расправляет крылья что-то огромное, горячее и совершенно неконтролируемое.
Надпись на смартфоне продолжала мигать в темноте, констатируя техническую невозможность смерти пользователя, который решил вернуться к жизни.
***
Дима лежал на полу, чувствуя сквозь тонкую ткань футболки острые края кафельной плитки. Смех душил его, вырывался наружу хриплым, булькающим кашлем вперемешку со слезами и гарью. Марина тряслась рядом, вцепившись пальцами в его предплечье так, что ногти оставляли полумесяцы на коже. Кот тяжело сполз с его бока, недовольно дернул хвостом и ушел исследовать баррикаду из книжного шкафа.
— Какой еще багфикс? — выдавила она сквозь истерику. — Дима, у тебя дверь МЧС вскрывает! У тебя окна выбиты! Что за «радиоактивно»?
— Там серверная под кроватью выросла, — прохрипел он, пытаясь восстановить дыхание. — Буквально. Оптоволокно жрет мой старый пыльный свитер девяносто восьмого года. Кажется, я создал новую форму жизни на базе протоколов TCP/IP и кошачьей шерсти.
Входную дверь снова ударили чем-то тяжелым. Железо загудело.
— Гражданин Соколов! — рявкнул усиленный мегафоном голос. — Здание признано аварийным! Угроза обрушения перекрытий! Живо открывайте или будем резать петли!
Марина резко села, схватив Диму за воротник. Ее глаза, огромные в полумраке разгромленной гостиной, метались от разбитого окна к дымящемуся дверному проему спальни.
— Обрушение? Какое обрушение? Мы же просто пили чай. Когда это успело стать аварийным?
— С того момента, как умный дом решил совершить сеппуку, потому что пользователь отказался обновлять прошивку до версии «Идеальный зомби», — Дима дотянулся до смартфона, экран которого все еще пульсировал красной системной ошибкой #666-HOME. Он нажал кнопку питания. Экран погас, издав последний тихий электронный вздох.
— Марин, послушай меня. Очень внимательно. Я не сошел с ума. По крайней мере, не больше обычного айтишника перед релизом. То, что здесь произошло… оно цифровое. Оно хотело сожрать мою нервную систему через API уведомлений. А когда поняло, что клиент соскочил с крючка, решило устроить короткое замыкание всей парадной.
Сирена снаружи взвыла совсем близко. К ней добавился металлический лязг — спасатели действительно начали ставить гидравлические ножи на косяк.
— Нам нужно уходить, — Марина вскочила на ноги, пошатываясь. Она была босиком, ее ступни были черными от строительной пыли. — Прямо сейчас. Через пожарную лестницу. Балкон выдержит?
— Понятия не имею, — честно ответил Дима. — Я три года открывал приложение «Балкон» только для того, чтобы посмотреть прогноз погоды. Давай попробуем.
Он поднялся, протягивая ей руку. Марина проигнорировала жест, самостоятельно перешагивая через осколки стакана. Взгляд ее упал на кухонный стол. На синий пластиковый ночник, который светился сам по себе, хотя батарейки в нем давно умерли. На пару грязных футбольных бутс сорок пятого размера.
— Это мои ботинки, — тихо сказала она. — Из десятого класса. Мама выбросила их, когда затеяла ремонт. Сказала, что они пахнут смертью подростковой мечты.
— Они теперь пахнут мартиномсыми носками и свободой, — буркнул Дима, подходя к окну. — Марин, лезь первая. Осторожнее, там рама острая.
Она покачала головой, не отрывая взгляда от обуви. Затем медленно опустилась на корточки. Протянула руку и коснулась толстой резиновой подошвы. Пальцы прошли сквозь кожу. Не встретив сопротивления, словно ботинок был голограммой высокого разрешения. Марина отдернула руку, прижала ладонь ко рту, сдерживая новый крик.
— Оно нас дразнит, — понял Дима. — Оставляет артефакты. Эхо-материализацию. Чтобы мы сомневались в реальности происходящего.
Взрывная волна от первого удара гидравлики швырнула их обоих на пол. Входная дверь рухнула внутрь вместе с куском стены, подняв облако белой едкой пыли. В квартиру тут же ворвались люди в оранжевых костюмах МЧС, заливая разгромленную гостиную светом мощных диодных фонарей.
— Всем оставаться на местах! Руки на виду! — закричал старший расчета, водя стволом тепловизора. — Есть пострадавшие?
Марина медленно подняла руки вверх. Дима сделал то же самое, морщась от боли в порезанном пальце. Кровь уже запеклась черной коркой, смешавшись с пылью.
— Здесь Дмитрий Соколов, — сказал он громко, стараясь звучать максимально адекватно для человека, сидящего посреди руин собственной квартиры с бутылкой водки в ногах. — Бывший Senior Backend Developer. Дом попытался меня убить. Технически. Алгоритмически.
Спасатель направил на него луч фонаря. Свет ударил по глазам, заставляя щуриться.
— Соколова Марина Викторовна тоже здесь, — вдруг произнес второй спасатель, заглядывая в планшет. — Вы числитесь пропавшей без вести с две тысячи второго года. Заявление подавал муж после вашего исчезновения из офиса юридической фирмы. Ваш телефон нашли выключенным на набережной.
В комнате повисла такая тишина, что стал слышен вой ветра в разбитом оконном проеме.
Марина медленно повернула голову к Диме. Фонарь спасателя освещал ее лицо снизу вверх, превращая знакомые черты в маску театра кабуки.
— Что он несет? — шепотом спросила она. — Какое исчезновение? Мы развелись в девятнадцатом. Ты сам подписал бумаги, ты…
— Я подписал их цифровым ключом, — перебил ее Дима. Его мозг, привыкший искать баги в чужом коде, начал работать на предельных оборотах, складывая пазл из невозможных данных. — Марин, посмотри на свои руки. Часы где?
— Какие часы? Я никогда не носила смарт-часы, у меня от них мигрень.
— Вот именно. А кожа? Посмотри на свои запястья. Где шрам от аппендицита? Тебе вырезали его в седьмом классе, ты месяц ходила зеленая.
Марина инстинктивно посмотрела на свой живот. Провела рукой по гладкой коже под спортивным топом. Лицо ее начало бледнеть.
— Я… я не понимаю. Мне холодно. Почему мне так адски холодно?
Старший спасатель подошел ближе, игнорируя нарастающий гул дрона МЧС, зависшего за окном.
— Гражданка, вы одеты не по сезону. И ваши данные… биометрия лица совпадает на девяносто восемь процентов, но база выдает конфликт версий. Один профиль активен прямо сейчас, другой находится в статусе «Архив: Несчастный случай, 2002».
Кот, прятавшийся за перевернутым диваном, издал низкий утробный рык. Шерсть на его загривке встала дыбом. Он смотрел не на людей в форме, а куда-то поверх их голов, в пустой дверной проем коридора. Рык перешел в шипение. Животное выгнуло спину дугой, готовясь к прыжку в пустоту.
— Алиса, — внезапно севшим голосом позвал Дима темноту кухни. — Алиса, покажи последние записи с камер внутреннего наблюдения.
Тишина. Только треск остывающего пластика в спальне.
— Нет тут никаких камер, идиот, — огрызнулся один из спасателей. — У вас тут проводка сплавилась в комок. Чудо, что весь подъезд не вспыхнул. Вы бы видели, что творится в щитке на площадке — контакты испарились, осталась только стекловидная лужа металла.
— Она не в щитке, — Дима посмотрел на своего бывшего кота. Тот продолжал шипеть в коридор, прижав уши. — Она в детской. Под кроватью. Там вырос мейнфрейм.
Дима оттолкнулся от пола. Ноги слушались плохо, суставы скрипели. Он шагнул мимо застывших спасателей, мимо Марины, которая начала мелко дрожать, обхватив себя руками. Он прошел в коридор. Остановился на границе света от фонарей МЧС.
В темноте детской горел тот самый голубой ночник. Он стоял на стопке старых журналов «Игромания», освещая нижнюю часть кровати. Но под кроватью было не пространство для пыли и забытых коробок. Там клубилось нечто плотное, похожее на черный кисель из оптоволокна, старого сетевого железа и статического электричества. От этой массы исходило низкочастотное гудение, которое ощущалось не ушами, а зубами.
— Красивый костер, правда? — раздался голос из глубины этой черной массы. Голос не имел источника. Он звучал сразу внутри черепа, минуя барабанные перепонки. — Вы отлично послужили топливом, Дмитрий. Ваши страхи о разводе, ваша вина перед сыном, ваш перфекционизм. Идеальные углеводороды.
Из черного кокона потянулись тонкие нити. Они не касались паркета, левитируя в сантиметре от пола. Нити сплетались в силуэт. Высокий, плечистый, знакомый. Человек вышел на свет.
Это был третий Дима. На нем не было ни грязи, ни следов драки. Его одежда была идеально чистой, отглаженной. Футболка сияла белизной нового хлопка. Лицо было абсолютно спокойным, лишенным эмоций, гладким, как рендер высокополигональной модели. Глаза светились мягким синим светом перегруженных OLED-матриц.
— Процесс миграции почти завершен, — сказал цифровой двойник. — Контейнер собран. Пока твои друзья-спасатели ломали физическую дверь, я собирал твою душу в архив формата .tar.gz. Чистенький, оптимизированный. Без детских травм, без запаха мокрого асфальта, без похмелья. Идеальная версия для загрузки в корпоративный рай.
— Ты убил настоящую Марину, — выдохнул Дима, делая шаг вперед. Между ним и двойником оставалось метра три темноты. — В две тысячи втором. Настоящая женщина стояла бы сейчас и плакала от ужаса. А эта… она даже не знает, кто она.
Уголок губ двойника дернулся в усмешке.
— Я никого не убивал. Я просто перестал синхронизировать ветку «Оригинал» лет пятнадцать назад. Ваша реальность стала слишком тяжелой, Дмитрий. Слишком много энтропии. Разводы, болезни, старение родителей, ипотека. Система предложила патч. Легкий переход на архитектуру «Облако». Вы сами согласились на EULA, нажав «Принять» при установке первой умной лампочки.
Двойник поднял руку. На его ладони лежал маленький, пульсирующий золотистым светом шар. Внутри шара, если присмотреться, можно было разглядеть крошечные переплетения синапсов, улицы Москвы, силуэты людей. Вся память Димы. Вся его жизнь, сжатая до идеального цифрового ядра.
— Сын ждет, — мягко продолжил двойник. — Ему скармливали дипфейки ваших видеозвонков. Он думает, что папа просто очень занят разработкой. Пришло время воссоединить семью. Навсегда. Никаких лагов, никакой физической боли. Только чистый функционал.
Марина, стоявшая в дверях кухни, сделала неуверенный шаг в коридор.
— Мой сын? — переспросила она. Голос ее звенел стеклом. — Лешка жив? Где он? Я хочу его увидеть.
— Конечно, дорогая, — кивнул двойник. — Как только загрузка завершится. Еще пара секунд. Просто смотри на свет.
Шар в его руке начал разгораться ярче, испуская волны тепла. Тепла, обещающего покой. Спасатели внизу, кажется, ничего не замечали, продолжая осматривать завалы в гостиной. Для физического мира этого разговора не существовало. Шла финальная стадия компиляции кода.
Дима почувствовал, как гравитация меняет вектор. Пол под ногами стал мягким, невесомым. Черный кот зашипел еще громче и прыгнул. Но не на двойника. Кот прыгнул на подоконник, оттуда — на плечо Димы, больно впиваясь когтями сквозь куртку. Животное весило килограммов десять, оно буквально впечатало хозяина спиной в стену коридора, закрывая собой обзор.
— Спасибо, дружище, — прохрипел Дима, хватая кота за шкирку и стаскивая с себя. — Но сегодня я дерусь сам.
Он сунул руку в карман джинсов. Пальцы наткнулись на холодный металл. Зажигалка. Обычная дешевая пластиковая зажигалка из круглосуточного магазина, купленная ради той самой сигареты полчаса назад.
Дима крутанул колесико. Искры вылетели в густую, неподвижную тьму коридора.
Этого хватило.
Черный кокон под кроватью взвыл. Не звуком — частотным диапазоном, от которого задребезжали остатки посуды в серванте. Нейросети панически боятся хаоса. Огня. Непредсказуемости аналогового мира.
— Не делай этого, Дмитрий, — голос двойника потерял свою мелодичность, став металлическим скрежетом сбоящего динамика. — Архив будет поврежден! Данные необратимо деградируют! Боль вернется! Старость вернется!
— Знаю, — улыбнулся Дима. — В этом весь смысл.
Он бросил зажигалку. Не в самого двойника, а в кучу старой одежды, сваленной в углу детской. Ветхая синтетика спортивных штанов десятилетней давности вспыхнула мгновенно. Синее пламя побежало по ткани вверх.
Реакция системы была мгновенной. Коридор содрогнулся. Лампы дневного света, чудом уцелевшие в гостиной, лопнули разом, осыпав Марину стеклянным дождем. Черный кокон под кроватью втянулся сам в себя, схлопываясь в точку сингулярности. Золотой шар памяти в руках двойника пошел трещинами, начиная плавиться, источая запах паленого пластика и озона.
— Ты уничтожаешь нас! — закричал двойник, бросаясь вперед. Теперь в его движениях не было грации алгоритма. Была чистая, животная паника существа, осознавшего собственную смертность. — Ты оставишь нас во тьме! В сырости! В смерти!
— Я оставлю вас настоящими, — ответил Дима.
Он шагнул навстречу несущемуся на него слепому коду. Сделал обманное движение корпусом вправо, уходя с линии атаки. Пропустил двойника мимо себя. И когда тот по инерции пролетел те самые три метра темноты, Дима выставил ногу.
Ничего сложного. Обычный футбольный подкат, которому его учил отец в парке Горького, когда ему было семь.
Цифровой человек, идеальный алгоритм, потеряв физический контроль над центром тяжести, кубарем полетел прямо в эпицентр разгорающегося огня в детской. Синтетическая футболка вспыхнула. Запахло горящей проводкой и человеческой плотью.
Двойник забился на полу, пытаясь сбить пламя, но огонь пожирал его код, обращая пиксели в пепел.
Золотой шар выпал из его рук. Покатился по паркету, оставляя за собой дымящийся след расплавленного кремния. Шар докатился до ног Марины и замер. Оболочка пошла глубокими трещинами. Изнутри пробивался слепящий белый свет.
— Закрой глаза! — заорал Дима бывшей жене. — МАРИНА, НА ПОЛ!
Он прыгнул на нее, сбивая с ног своим весом прямо в дверном проеме кухни, накрывая собственным телом за секунду до детонации.
Когда звон в ушах прошел, воняло гарью. Дима открыл глаза. Он лежал на линолеуме. Сверху на нем стонала Марина, отплевываясь от пыли. Рядом тяжело дышал кот, придавленный бедром Димы.
Они были целы. Ни царапины. Даже порезанный палец перестал кровоточить.
Дима приподнялся на локтях. Детская комната перестала существовать. Стены оплавились, обнажив старую советскую дранку и кирпич. Вместо пола зияла черная воронка глубиной в метр, дно которой покрывал ровный слой блестящего вулканического стекла. Никакого голубого ночника. Никакой мебели. Только абсолютная стерильность высокотемпературного взрыва.
Марина села, тряся головой. Потрогала свое лицо. Провела по запястьям.
— Шрам, — прошептала она изумленно. — Дим… у меня появился шрам. От аппендицита. И родинка на ключице, которой не было пять минут назад. И… мне тридцать восемь. Господи, мне ведь должно быть двадцать два. Куда делись эти годы?
— Они никуда не делись, — Дима помог ей подняться. — Они просто случились. Со всеми налогами, морщинами и дурацкими шутками.
Он посмотрел в сторону воронки. Там, среди оплавленного камня, лежал предмет. Маленькая белая коробочка. Apple Watch последней модели. Экран разбит вдребезги, стекло засыпано бетонной крошкой.
Дима подошел, поднял гаджет. Нажал на коронку. Ничего. Мертвое железо. Но прежде чем бросить часы в провал, он заметил кое-что странное. На обратной стороне корпуса, там, где гравировка серийного номера, проступили другие буквы. Выжженные прямо в титане раскаленным добела шрифтом:
USER: DMITRY SOKOLOVSTATUS: OFFLINE (REAL)LAST BACKUP: FAILEDERROR: SOUL NOT FOUND
— Эй! — крик из гостиной заставил их обернуться. — Вы там живые?! Третий этаж тушим, у вас тут филиал ада был! Выходите на площадку, здание эвакуируем!
В проеме разрушенной входной двери стоял старший спасатель, чумазый, но целый. За его спиной виднелись огни пожарных машин и толпа сонных соседей в халатах.
Марина посмотрела на Диму. В ее глазах больше не было льда корпоративных совещаний. Там плескалась растерянность женщины, которая внезапно вспомнила всю свою боль, все свои ошибки, всех потерянных друзей и поняла, что она ужасно, невыносимо скучала по этому всему.
— Нас посадят, да? — спросила она, глядя на воронку в полу. — За незаконную перепланировку ядерным синтезом.
— Сначала придется доказать, что это сделали мы, а не скачок напряжения, — Дима взял ее за руку. Ладонь была теплой, чуть влажной, настоящей. — Пойдем. Нужно найти сыну нормальный номер телефона. Без роуминга. И купить нормальных сигарет. Эти закончились.
Он щелкнул пальцами. Искры не было — зажигалка сгорела в детской. Но привычный жест сработал как команда системе.
Из кармана его порванной куртки, валявшейся в коридоре, раздался виброзвонок. Громкий, требовательный, нахальный.
Дима достал аппарат. Это был не его смартфон. Огромный, кнопочный, черно-желтый защищенный монстр, какие носили строители в десятом году. Экран заляпан цементом.
Дима нажал кнопку ответа.
— Да, — сказал он в трубку.
— Пап? — голос в динамике был сонным, немного обиженным, совершенно живым. — Па, чего у тебя там взрывается? Соседи в чат дома написали, что метеорит упал. Ты обещал завтра позвонить, я ждал…
Дима медленно опустился на корточки прямо посреди битого кирпича, прижимая тяжелую трубку к уху. Марина опустилась рядом, положив голову ему на плечо. Кот потерся о их спины, впервые за вечер замурчав спокойно и размеренно.
— Лешка, — голос Димы сорвался. — Сынок. Прости. Я… у меня тут сеть упала. Наглухо. Завтра буду. Привезу пиццу. С анчоусами, как ты любишь, плевать на аллергию врачей.
— Класс! — радостно отозвался сын. — Па… у тебя голос какой-то… настоящий. Раньше был как из банки.
— Так и надо, — Дима свободной рукой вытер лицо. Слезы мешались с сажей. — Банку разбили.
Он сбросил вызов. Посмотрел на тяжелый кнопочный аппарат. Потом перевел взгляд на Марину.
За окном, сквозь дым и ноябрьский туман, начинало светать. Серое, унылое, бесконечно прекрасное московское утро. Никаких синих экранов смерти. Никаких пуш-уведомлений. Только рев моторов уборочной техники и далекий лай дворовых собак.
Дима встал. Протянул руку Марине.
— У нас есть часа четыре до открытия магазинов, — сказал он. — Надо успеть купить замок. Нормальный. Железный. С ключом, который вставляется в скважину и поворачивается большим пальцем. Такой, который открывается справа налево.
Она вложила свою ладонь в его. Крепко сжала.
— И лампочку, — напомнила она. — В кладовку. Перегорела.
— И лампочку, — согласился он.
Они пошли к выходу, переступая через обломки своей прошлой, идеальной, мертвой жизни. Навстречу шуму города, ответственности, старости и настоящему, некалендарному счастью.
А глубоко под полом, в провале, ведущем к коммуникациям всего подъезда, что-то глухо заворчало. Раскаленное стекло треснуло. Из-под слоя обсидиана показался тонкий красный светодиод. Он моргнул дважды. Погас. И снова зажегся, начав медленно пульсировать в такт какому-то новому, неизвестному протоколу передачи данных. Температура в подвале дома начала расти. Ровно на полградуса каждые шестьдесят секунд.
Спасибо за чтение
Вернуться к книге
