Утро пришло через звук - генераторы сменили частоту, гул поднялся на полтона. Пирамида подключила первую нагрузку. Через стены потянуло сухим теплом из вентиляционных каналов - верхние уровни прогревались, и город внизу получал их выдох. Где-то хлопнули шлюзы Технички: утренняя смена шла обслуживать то, что кормило и кормилось Пирамидой.
Он не ложился. Мигрень сместилась из висков в затылок и пульсировала ровно, как второй метроном. Глаза сухие, жжение под веками. Перчатки снял - тремор вернулся, мелкий, постоянный. Пальцы без стимулятора - чужие пальцы.
Термос пуст - он не помнил, когда допил. Сполоснул, залил последнюю порцию синт-кофе из пакета. Горячий, обжёг нёбо, не заметил.
На экране - сигнатура. Три параметра: формат маскировки, метод генерации метки, паттерн размещения. Файл, который он создал ночью. Знание, которое никуда не делось за шесть часов.
Открыл журнал.
* * *
Сорок одна запись по облегчению хэшей за три года. Сорок один раз кто-то приносил тяжёлый хэш, и он срезал вес. Ни разу не проверял, почему хэш тяжёлый.
Написал скрипт фильтрации - грубый, три параметра сигнатуры, поиск по метаданным архивных копий. Перед каждым облегчением он снимал слепок - профессиональная привычка. Не все копии полные. Часть ранних - только заголовки, без процедурного уровня. Запустил по тем, что были.
Бормотание:
- Так... первая партия... чисто... чисто... вторая...
Индикатор полз по экрану медленнее, чем должен - старые форматы, конвертация на лету, и мигрень стучала в затылок в такт полосе прогресса.
Первое совпадение.
Одиннадцать месяцев назад. Вывел архивную копию, открыл обёртку - тот же формат, тот же метод, тот же паттерн. Сигнатура совпала. Поднял запись с камеры по дате. Камера над дверью - страховка. Женщина с тёмными кругами под глазами. Усиленный контейнер. Просидела на стуле у стены два часа и ни разу не шевельнулась.
Второе совпадение. Семь месяцев назад. Та же сигнатура. На записи - лицо из Технички, стандартный контейнер, стандартная плата. Безымянная строчка в журнале.
Третье. Четыре месяца. Парень, молодой. На записи видно - руки тряслись, когда ставил контейнер на стол. Стимуляторы. Может, и стимуляторы.
Скрипт дошёл до конца. Три из двадцати шести проверенных. Пятнадцать записей остались непроверенными - неполные архивы, ранние форматы, битые копии. Три - это пол. Не потолок.
Осколок из Резерва всё ещё торчал в диагностическом порту - подключённый вчера утром, забытый. Пепельщик посмотрел на него. Потом на скрипт. Потом снова на осколок.
Запустил.
Сигнатура совпала.
Саркофаг-кластер сгорел три года назад. Инъекция в его обёртке была старше мастерской.
* * *
Профессиональный брак.
Слово ударило не в голову - в диафрагму. Пепельщик обнаружил, что не дышит, и не мог вспомнить, когда перестал. Вдох дался с усилием, как первый после погружения. Руки лежали на столе ладонями вниз, и он смотрел, как мелко дрожат пальцы, и не мог их остановить.
Потом мигрень разжала хватку - не отпустила, а провалилась глубже, туда, где боль перестаёт быть сигналом и становится фоном, и вместе с ней ушла резкость, контуры экрана поплыли, буквы на мониторе стали мельче, потом крупнее, потом перестали быть буквами, и он понял, что стимулятор кончился окончательно, не час назад и не два - сейчас, в этот момент, последний остаток выгорел, и тело собирало счёт за бессонную ночь, за кофе вместо еды, за шесть часов без перерыва перед экраном, и руки на столе уже не дрожали, они просто лежали, тяжёлые и чужие, как после наркоза.
Потолок. Пятно сырости в углу. Он не помнил, когда откинулся на спинку кресла.
Гул генераторов вернулся первым. Шестьдесят герц, Delta, ровный и постоянный, как всегда. Потом - запах. Синт-кофе, остывший, кислый. Металлический привкус на языке - стимулятор на выходе. Пятно на потолке обрело края, стало просто пятном.
Сел. Экран перед ним. Журнал. Скрипт. Три совпадения из двадцати шести.
Сколько ещё мастеров в серой зоне принимают заказы на облегчение. Сколько из них проверяют вход. Ноль. Он сам не проверял три года.
Бормотание, тихое, почти без голоса:
- Три. Достаточно.
Закрыл журнал.