列入纪要。
“她的陈述像一个存档动作。三份文件各自独立、互相矛盾,被一个表决压进同一个记录里。文件之间的裂缝没有被弥合。它们只是被压在一起。
“而物理断层在那个记录的空白处继续延伸。八号断层北端的位移在十一点十一分出现微阶跃,方向指向四号断层新裂隙。
“系统预建了纪要条目的档案编号。编号本身就是一个容器。它在等待内容被填入。
“内容已经被程久用四分钟陈述完。数字、日期、条款编号、矛盾陈述。四分钟就说完。但条目编号现在是空的。
“它会在五天后被填满。
“在那之前,空白编号本身会留在索引里。”
他停了笔。扬声器里第九项议程开始宣读。念稿声平稳地继续,语调没有变化。
他又想起日内瓦那个掩体。在拆迁前一个月,他去那里取一台退役的数据服务器,用于项目的技术文档存档。掩体的入口已经围了施工围挡。他走进去的时候,看见一个工人正用刷子在墙上涂覆盖漆,打算把冷战时期那行字盖掉。那行字还剩最后两个字露在外面:“六级。”他问工人:为什么盖掉?工人说:要刷新。他又问:刷新成什么?工人说:还没说,但先把旧的盖掉。
他补了一句:
“委员会确认了三份文件。其中两份彼此矛盾。确认动作将矛盾存档。”
他合上日志本。钢笔帽拧上的声音很轻,像某种标点符号。
扬声器里第九项议程念到第三段。备用机房窗外,十一点四十分的阳光照在白板上,在时间线和粉笔字上投下斜斜的光。程久发言结束的时间戳被阳光照亮,粉笔在光照下显得比刚才更白。
陈路把冲好的咖啡倒进五个杯子里。他用的是保温壶里的热水,温度刚好,不太烫。杯子是备有机房的公用杯,白色瓷杯,杯壁上印着gcs项目的旧版标识。
他把杯子一个个放在各人的桌角。第一杯给顾远,放在键盘右侧。第二杯给伊琳,放在地质图旁边,没有压到图。第三杯给周启明,放在活页夹边上。第四杯给林序,放在日志本的左侧。第五杯给自己,他端在手里,没有喝。
没有人说话。咖啡的热气在阳光下慢慢升起来,在杯口上方扭动。
陈路在vote_log_offset.db里又加了一条记录。这次不是时间戳,是空白时间——从第八项议程开始到现在,备用机房里没人开口的秒数。他还没算完。扬声器里念到第九项了。他想起两年前那个网络攻击调查的最后一步。他翻遍了路由器日志,最后找到的东西不是攻击包的格式,不是c2服务器的域名,是一段长达七个月的静默期。攻击者在第一天就拿到了系统权限,但直到第七个月才第一次使用。不是技术延迟。是等。对方在等一个特定的时机。他问对方的技术负责人(后来在联合调查组里见到的):你们在等什么?对方说:等你们确认系统运行正常。当你们自己都觉得一切正常的时候,你们的网络就没人盯着了。
系统每四十七秒发送一次心跳信号。陈路屏幕上的监控窗口里,心跳指示灯规律地闪,绿色,间隔均匀。每次心跳的末端都带着同样的回执确认:“已同步。继续。”
但今天,第十二次心跳末尾多了一行。
林序注意到时,已经是心跳循环到第十三次了。他在终端上把心跳日志往上翻,翻到第十一次同步的记录。记录末尾,在“已同步。继续。”的后面,多出来的文字是:
“第一百四十条陈述已存档。档案条目编号已生成。等待内容。”
十六个字。放在心跳回执的末尾,没有单独成行,没有加标注。
林序把这行字抄进日志本。他先抄了原文,然后在下面另起一行:
“系统也在等五天后。它用了‘等待’这个词。系统在心跳信号的末端等待一个空白编号被填满。”
他合上日志本。这次钢笔帽没有拧。他把笔放在日志本的封面上。
他又打开日志本,翻到今天的日期。他在刚才那段记录的下面又加了一行:
“日内瓦掩体墙上的字被涂掉了。新漆还没刷。它现在是一堵空白的墙。掩体已经不在了。但空白在。”
顾远站起来走到白板前。他拿起粉笔,在林序的时间线右侧又画了一条竖线。竖线下方写:五天。竖线上方写:编号已生成。内容尚未填入。
然后他退后两步,看着满白板的线、字、圈。时间线从左边拉到右边,程久的时间戳,断层的微阶跃,五天后空编号的标记。粉笔灰在他手指上留了一层白。
伊琳端起咖啡喝了一口。她把杯子放回地质图旁边,杯底在桌面上磕出一声轻响。她的视线落在地质图八号