Юрий Мейд
Яндекс.Сны

Глава 1. Заказ

Год с лишним без неё

Будильник ещё не прозвенел.

Утро вошло через грязное стекло и сразу нашло пыль.

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

За стеной хлопнула дверь подъезда.

На улице заурчал мусоровоз. Кто-то у контейнеров коротко выругался. Живо. Зло. Буднично.

Алексей открыл глаза за минуту до сигнала.

Так повторялось почти каждое утро. Телефон лежал на табурете рядом с кроватью, экраном вниз. Если не брать его в руки, не увидишь дату.

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

Алексей поднялся раньше, чем успел додумать за неё.

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

В стакане у раковины стояла её зубная щётка.

Розовая. С выцветшей резиновой вставкой. Щетина давно разошлась в стороны. У основания пластик потемнел от старой воды.

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

Дальше всё просто.

Мусорное ведро под раковиной. Новый стакан. Один человек — одна щётка.

Он закрыл воду.

Взял свою — Катину не задел.

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

Алексей поставил турку на плиту, включил газ.

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

Дверца шкафа скрипнула.

Свою кружку он достал на ощупь: белая, с отколотой ручкой. За ней стояла вторая.

Катина.

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

Он поставил обе кружки на стол.

Свою — справа.

Её — слева.

Кофе начал подниматься. Алексей снял турку слишком поздно. Тёмная пена сбежала на плиту и зашипела.

Он вытер её тряпкой, налил себе.

Сначала поставил турку в раковину. Потом взял Катину кружку и убрал обратно.

Дверцу шкафа закрыл не до конца.

В щели остался белый край.

На холодильнике висел жёлтый магнит:

«Ты моё утро».

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

— Слишком пошло, чтобы пройти мимо.

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

Под ним открылся прямоугольник чистой эмали.

Белый. Резкий.

Прижал обратно.

Ноутбук проснулся сам, когда он поднял крышку.

Рабочий чат мигал непрочитанными сообщениями.

Менеджер: «Алексей, где статус?»

Заказчик: «?»

Через двадцать минут ещё одно:

«??»

Коллега в личку: «Лёх, ты живой?»

Алексей поставил курсор в поле ответа.

Написал:

«Да».

Стёр.

Написал:

«Сегодня доделаю».

Стёр.

Курсор мигал на пустой строке. Тонкая вертикальная черта. Ровная, деловая, упрямая.

Он открыл IDE.

На экране висела чужая ошибка в чужом коде. Лог падал на одном и том же месте: доступ, запрос, пустой ответ.

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

Строка с exception висела на экране. Знакомые буквы. Чужой язык.

В правом нижнем углу браузера всплыло рекламное окно.

Белый фон. Мягкие синие дуги. Аккуратная фраза:

«Вы ещё можете поговорить».

Ниже мелко:

«Яндекс.Сны: безопасная реконструкция значимого образа».

Алексей ткнул в крестик.

Промахнулся.

Реклама открылась в новой вкладке.

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

Алексей захлопнул вкладку.

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

Плед остался.

И светлое пятно за его плечом.

Алексей обернулся.

Локоть ударил по столу. В кружке плеснул кофе. Горячая капля попала на пальцы.

Никого.

Кресло пустое.

Плед лежал на спинке.

Он повернулся к ноутбуку и закрыл рабочий чат.

В ту же секунду прозвенел дверной звонок.

Сухо.

Чисто.

Нетерпеливо.

Сергей

За последний год люди отучились приходить.

Курьеры оставляли пакеты у двери и писали в приложение. Соседи не заглядывали. Сергей обычно звонил заранее и спрашивал:

— Ты дома или опять изображаешь мебель?

Звонок повторился.

Алексей прошёл в коридор, открыл.

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

— Ты хоть бы пол вымыл.

Сергей переступил порог.

Почти как раньше.

Только после такой фразы Катя высунулась бы из кухни и ответила за Алексея. Что-нибудь короткое. Убийственное. С улыбкой.

Поставил пакет на тумбочку.

— Я продукты принёс.

Из пакета торчали хлеб, пельмени, мандарины и бутылка кефира.

— Мандарины зачем?

— Не знаю. Рука взяла.

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

— Я звонил тебе вчера.

— Видел.

— Позавчера.

— Видел.

— И в прошлую пятницу.

— Серёж...

— Не серёжкай. Я не с лекцией.

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

— Я взял сертификат.

На матовой плёнке проступал логотип: две пересекающиеся дуги, похожие на волну, которая догоняет саму себя.

— Что это?

— «Яндекс.Сны».

Алексей не взял коробку.

— Там доступ. Код. Если не захочешь — выбросишь.

— Для чего доступ?

Сергей сжал её сильнее. Плёнка тихо хрустнула.

— Чтобы поговорить.

Сергей разгладил смятый край.

— С Катей.

В подъезде за его спиной кто-то спускался по лестнице. Шаги прошли мимо двери и стихли ниже.

— Ты серьёзно?

— Нет. Я год выбирал момент, чтобы смешно пошутить.

— Это программа.

— Да.

— Не она.

— Да.

— Тогда зачем?

— Потому что ты разговариваешь с кружкой.

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

— С каким?

— С венком, Лёх.

Куртка в его руках скрипнула. Он смял её в кулаке и не бросил.

Алексей взял коробку.

Она оказалась лёгкой.

— Ты понимаешь, что я могу после этого окончательно поехать?

— А сейчас ты, по-твоему, куда едешь?

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

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

— Пельмени свари. Кефир выпей. Душ прими.

— Ты теперь мой соцработник?

— Нет. Друг. Это хуже. Мне за это не платят, и уволиться нельзя.

Усмешки не получилось. Только короткий вдох.

У двери Сергей остановился.

— Лёх.

Алексей обернулся.

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

— Почему?

Сергей посмотрел в сторону холодильника.

Не на магнит.

— Потому что там слишком вежливо обещают невозможное.

Он взялся за ручку двери.

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

— Или что войдёт?

Дверь открылась. В дом вошёл холод с лестницы. На секунду запахло мокрыми куртками, железными перилами и чужими квартирами.

Потом дверь закрылась.

Коробка осталась на тумбочке рядом с ключами от машины.

Ключи Алексей не брал со дня похорон.

Сопротивление

Сергей ушёл, но в коридоре ещё стоял холод с лестницы.

Алексей отнёс продукты на кухню. Пельмени бросил в морозилку. Кефир поставил на полку. Мандарины остались в пакете.

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

«У них характер лучше».

Алексей вынул один мандарин, покатал по столу и убрал обратно.

Пакет зашуршал слишком громко.

Он вернулся в коридор.

Коробка лежала на тумбочке.

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

Подержал коробку над ведром.

Плёнка на углу резанула по глазам светом из окна.

Алексей закрыл ведро.

Положил коробку на стол.

Открыл ноутбук.

На экране IDE темнела недописанная функция. Деньги заканчивались. Заказчик уже не спрашивал — давил. Ничего сложного: задача, ошибка, исправление, оплата.

Алексей набрал:

function

Стёр.

Набрал:

const

Стёр.

Открыл лог: авторизация, токен, ответ сервера, пустой объект.

Где-то в чужой системе не хватало одного звена.

Рабочий чат мигнул.

Менеджер: «Нам нужно понимать сроки. Клиент нервничает».

Алексей ответил:

«К вечеру дам результат».

Отправил.

Слово «результат» осталось на экране.

С улицы поднялся женский смех. Быстрый, звонкий. Потом — мужской голос, хлопок дверцы машины, скрип тормозов.

Не Катя.

Алексей открыл браузер.

Ввёл:

«Яндекс.Сны отзывы».

Палец завис над Enter.

Потом опустился.

Поисковик выдал рекламные ссылки, обзоры, интервью с нейропсихологом, статьи с мягкими заголовками:

«Как технологии помогают пережить утрату».

«Цифровая терапия памяти».

«Последний разговор: почему это не страшно».

Ниже — форум.

Алексей открыл.

Чужие признания шли неровными строками.

«После сеанса стало легче. Я наконец сказала маме то, что не успела».

«Папа просил не продавать гараж. Даже программа знала, какой он упёртый».

«Это не они. Не ждите чуда. Хорошая мимика, хороший голосовой движок, всё».

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

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

Под ним короткий ответ модератора:

«Не используйте реконструкцию как доказательство. Читайте соглашение».

Алексей закрыл вкладку.

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

Открыл мессенджер.

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

Тринадцать месяцев без новых сообщений.

Он пролистал вниз.

Последние сообщения:

Катя: «Я выхожу из метро, сейчас буду».

Алексей: «Ок».

Ниже — голосовое.

23 секунды.

Непрослушанное.

Чёрный треугольник Play в круге.

Большой палец лёг на экран, но не нажал. Подушечка чуть влажно прилипла к стеклу.

Он убрал руку.

Вытер её о джинсы.

Встал.

Прошёлся по кухне.

Вернулся.

Сел.

Нажал Play.

Сначала — шипение.

Потом шум улицы, гул метро, короткий сигнал закрывающихся дверей.

И её голос.

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

Запись оборвалась.

Наушники слетели с ушей. Провод дёрнул телефон, тот стукнулся о край стола. Экран мигнул.

Голосовое стало прослушанным.

Файлом.

Он взял коробку.

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

Записка от Сергея лежала отдельно.

«Просто активируй. Дальше сам решишь».

Алексей оставил её рядом с телефоном.

Дальше.

Сам.

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

Пластик стукнулся о пустую консервную банку.

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

Анкета

Сайт открылся быстро.

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

«Яндекс.Сны. Верните то, что потеряли».

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

Подпись обещала:

«Безопасная реконструкция значимого образа на основе ваших воспоминаний и цифрового следа».

Значимого образа.

Не человека.

Алексей ввёл код с карты.

Система поприветствовала его по имени, попросила согласие на обработку данных и показала длинное предупреждение.

Сервис не является медицинской услугой.

Не заменяет психотерапию.

Не является религиозной практикой.

Не является способом связи с умершими.

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

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

Потом поставил галочку.

Первый шаг — фотография.

Он открыл папку «Катя».

Сотни снимков.

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

Курсор остановился на свадебном фото.

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

Это фото Алексей сделал сам, пока фотограф менял объектив.

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

Он выбрал свадебное фото.

Второй шаг — голос.

Система предложила варианты:

«Загрузить аудио».

«Разрешить доступ к голосовым сообщениям».

«Подключить облачную архивную копию».

Алексей загрузил последнее голосовое.

Без повторного прослушивания.

Файл ушёл на сервер за три секунды.

Катя — за три секунды.

Третий шаг — расширение образа.

«Для повышения достоверности реконструкции разрешите доступ к дополнительным источникам данных».

Список выглядел буднично:

Социальные сети.

Переписки.

Фотографии.

Геолокация.

История покупок.

Плейлисты.

Календарь.

Документы.

Рядом с каждым пунктом — аккуратный переключатель.

Катина жизнь легла в столбик.

Алексей разрешил доступ к фотографиям.

Плейлистам.

Календарю.

На «переписках» остановился.

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

Он оставил переключатель выключенным.

Система вежливо подсветила предупреждение:

«Без доступа к перепискам эмоциональная достоверность реконструкции может снизиться на 37%».

37%.

Словно у Кати можно измерить недостающую часть.

Он включил переписки.

Для входа в её аккаунт понадобился пароль.

Алексей сначала не вспомнил.

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

Три попытки.

После третьей система попросила подтвердить вход.

Код ушёл на её старый телефон.

Алексей встал.

Номер он так и не отключил. Деньги списывались каждый месяц автоматически, вместе с интернетом, электричеством и прочими вещами, которые продолжали работать после смерти человека.

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

Раз в месяц Алексей заряжал его.

Без причины.

Экран включился не сразу.

Потом дрогнул. Под треснутым стеклом проступило их общее фото с моря и сообщение с кодом.

Алексей ввёл цифры.

Доступ открылся.

Система начала собирать Катю.

Фото.

Голос.

Маршруты.

Покупки.

Лайки.

Чеки.

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

Собирались данные.

Система запросила историю покупок.

Алексей нажал «Разрешить».

Открылся чек за два дня до аварии.

«Пятёрочка».

Клубничный йогурт.

Конфеты «Коровка».

Влажные салфетки.

Хлеб.

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

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

Влажные салфетки таскала в сумке, потому что Алексей всегда пачкался в самый неподходящий момент.

Сервис знал: йогурт, конфеты, салфетки.

Этого ему хватало.

Из неё делали модель.

Последний шаг — сценарий.

«Выберите пространство встречи».

Дом.

Кафе.

Прогулка.

Море.

Собственный сценарий.

Алексей выбрал «Прогулка».

Система предложила уточнить место.

Он указал парк.

Тот самый, где они гуляли осенью, за неделю до аварии.

Ничего важного там не случилось.

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

Катя тогда испачкала пальцы кремом от пирожного.

Алексей достал влажные салфетки.

— Какой же ты предусмотрительный.

Она умела произносить «предусмотрительный» так, что это означало сразу «зануда», «люблю» и «дай ещё одну».

Алексей нажал «Оформить сон».

Кнопка мигнула.

«Сон запланирован. Ожидайте курьера. Нейромодуль будет доставлен в течение 45 минут».

На старом телефоне Кати светилось последнее уведомление:

«Код подтверждения использован».

Курьер

Он переоделся в чистую футболку.

Потом понял, для кого.

Сел на край кровати.

Ткань пахла порошком и шкафом. Не Катей.

Он всё равно пригладил волосы.

На телефоне горело 23:11.

Потом 23:14.

Потом 23:19.

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

«Ваш заказ рядом».

Если сейчас нажать отмену, деньги спишут частично.

Сергей завтра спросит.

Алексей соврёт.

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

Палец лежал рядом с кнопкой «Отменить».

Не нажал.

Звонок прозвучал в 23:27.

Мелодичный, новый, электронный. Не старый дребезг.

На пороге стоял курьер в тёмно-синем комбинезоне.

Молодой. Гладкое лицо.

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

На на ней стояло: