顾铮连续工作了三十六个小时。
修复一个外行写的程序对他来说不叫工作。他的日常是还原被物理销毁的硬盘、从损毁的监控里提取最后几帧画面、在二进制层级比对数百G数据找到唯一的篡改痕迹。他经手的部督大案有三起,省厅的表彰证书压在抽屉最底层,从来没有挂出来过。
但这个程序,他写了删,删了写,写到一半停下来,又重写。
不是程序难。
是他一直在想,修好之后,那个孩子会听到什么。
凌晨三点十二分。技术科只有他的屏幕亮着。他重新校准投影亮度,在模拟环境里跑了一遍。一个成年人等比例的数字模型出现在虚拟空间里,蹲下身,视线与一个七岁孩子的卧姿齐平。模型伸出手,做了个揉头发的动作。
顾铮把模拟关掉。
他打开周明留下的那段练习视频。第十七遍。周明的眼睛已经很红了,不是哭,是熬夜。他的衬衫领口比第一遍更皱。背景里那盏灯一直亮着,从深夜亮到凌晨。
这次他没有说生日快乐。
他直接看着镜头,说了一句完整的话。
“小宇。爸爸要走了。你要好好长大。听妈妈的话。爸爸爱你。”
说完他愣了一下。然后他笑了,笑得眼睛眯起来,眼镜片后面的眼纹挤成一团。
“哎,录上了。”
他伸手去够鼠标,视频结束。
顾铮靠回椅背。
周明录成了。在第十七遍的最后,他不小心录完了。但他以为自己没录上。程序文件夹里有一个被命名为“birthday_message_final”的视频文件,但他没有把它加载进程序主体。他把加载路径指到了第一遍练习版本,那段话最磕巴、最长、最说不清楚的版本。
他太累了。累到忘了自己在最后一次按下了录制键。
顾铮把这段视频拖出来,把加载路径更正,在代码备注栏打了一行字:
“已修复:视频源替换为‘birthday_message_final’。原加载文件为练习版本,推测为操作者疲劳导致路径错误。”
他盯着“操作者疲劳”五个字,删掉,重新打。
“操作者误操作。”
又删掉。
最后他打了两个字。
“他忘了。”
他保存文件,关闭编辑器。
窗外开始发白。滨城在苏醒,远处的高架桥上陆续有车灯划过。他趴在桌上,闭上眼睛。屏幕上代码的残影还在视网膜里跳动。
三个小时后,林深语推开技术科的门。
顾铮趴在桌上睡着了。屏幕还亮着,定格在一行日志上。
她把早餐放在他桌上,豆浆是热过的,老板帮她微波了两次。包子换了新的。
然后她看到屏幕上那行字。
不是日志。
是备注栏里的一行注释。
“// 他在第十七遍录完了。但他忘了。他以为自己没说好。其实他说好了。”
她站了很久,没有叫醒顾铮。
然后她把视线移到另一台显示器上。主屏幕上是被修复的程序界面,干净简洁。投影模块、音频模块、视频源文件,全部调试完毕。一行绿色的状态提示:
“程序就绪。等待手动触发播放。”
林深语在椅子上坐下。她把桌上的外接硬盘挪开,腾出空间放她的笔记本。
翻开笔记本,在周明案那页的末尾,她加了一行字:
“第十七遍,他录完了。他不知道自己说好了。”
然后她翻到新的一页。页首写着三个字:林海生。
她合上笔记本。
窗外天已经大亮了。楼下的早餐摊收了,换成报刊亭支起遮阳伞。阳光打在技术科的地板上,和昨天是同一个角度。
顾铮醒来的时候,第一眼看到的是那杯还冒热气的豆浆。
然后他闻到了包子。
再然后他看到了林深语,坐在他对面,在看自己那个旧笔记本。
“你没叫醒我。”
“你睡了不到三个小时。”
顾铮没说话。他拿起豆浆喝了一口。烫。他皱眉,没放下。
“程序修好了。”他说。
“我看到了。”
“不是只修了bug。他留了两段视频。给儿子的那段练习,最后一遍其实录完了。他自己忘了加载进去。”
林深语点头。
“还有一段,是给他妻子的。”
“我知道。”
顾铮把豆浆放下。屏幕转向林深语。
“修复之后的功能:视频源替换为录制成功的最终版本,投影亮度校准到室内微光环境可见,音频正常输出,程序设定手动触发播放。播放完毕后自动终止。不会循环。”
他停顿了一下。
“如果播放,小宇会看到什么。”
“他的爸爸。清晰的人影。蹲下来,和他一样高。说话。”
“说什么。”
“说爸爸要走了。好好长大。爸爸爱你。”
林深语没有说话。她看着屏幕,屏幕上的代码在反射阳光。
过了很久,她开口。
“顾铮。你修的这段程序,不是你写的鉴定报告。你不用负责播放。”
顾铮没有回答。
“但你也没有删掉那段备注。”林深语站起来,走到他屏幕前,“你在代码里写,‘他忘了’。你不写代码也会说这种话吗。”
顾铮摘下眼镜,用衬衫下摆擦镜片。这是他尴尬时的习惯动作。
“程序不是我写的。我只是修bug。”
“你修好了一个死人留给儿子的最后一句话。这不叫修bug。”
顾铮把眼镜戴上。戴上之后他不知道该看哪里。
“他给妻子的那段视频,你看了吗。”
“看了。”
“怎么说。”
顾铮沉默片刻。然后把for_chen视频的窗口点开,没播放,只是停在封面上。
“他不看镜头。一直在看手机上的照片。她和他儿子的照片。”
封面上,周明低着头。光线很暗,但他在笑。
林深语看着这张脸。
“他在道歉。说对不起,不是故意走的。说这四年谢谢你。说我没什么能留给你。”
她说完这些,停了一下。
“他把程序叫‘告别’。把密码设成儿子的生日加上‘爱你’。他录了十七遍祝福,每一遍都没说完。他录了道歉,不到两分钟就说完了。”
她转过头,看着顾铮。
“你觉得这是两种告别吗。”
“一种是对儿子的。一种是对妻子的。”
“不。是同一个告别。”
顾铮看着她。
“他给儿子的是没说完的话。给妻子的是说不出口的话。他用程序把两种都留下了。一种反复练习,一种一次录完。但都是同一句话。”
“什么话。”
“我不是故意走的。”
窗外,阳光很亮。办公室里的灰尘在光柱里慢慢飘浮。
顾铮很久没有说话。
他把for_chen的视频窗口关掉。然后打开一个新的文档。标题栏写着“技术鉴定结论”。
他打了两行字。
停住。
然后把文档最小化。
“程序修好了。你什么时候去放。”
“今晚。”
“我跟你去。”
林深语看着他。
“我可以自己去。”
“你当然可以自己去。”顾铮站起来,拿起桌上的车钥匙,“但有人得告诉那个孩子的妈妈,这个程序是怎么跑起来的。这不是闹鬼。是有人拼了命也没说完的话。”
他走向门口。
“今晚几点。”
“十点之前到。”
顾铮点了一下头。
他走出技术科。
走廊里和昨天一样安静。保洁阿姨在擦窗台,抹布划过瓷砖的声音很规律。阳光从走廊尽头的窗户照进来,把地面分成明暗两半。
顾铮站在走廊里,拿出手机,翻到林深语昨晚发的那条消息。
“程序找到了。”
“他把程序叫‘告别’。密码是他儿子的生日加上‘爱你’。”
他往上翻。翻到很久以前,林深语第一次找他做监控鉴定那天。她发了一张截图,附了一句话。
“这个角度,能不能看清车牌。”
他当时的回复是:“能。明天出结果。”
那是他的标准回复。对所有人都是。
但今天早上,他在一个死去程序员的代码里写了一行备注。
“他忘了。”
顾铮把手机收起来,走向楼梯口。
他想,他可能也忘了。忘了他不是只会写鉴定报告。
他也会写备注。
林深语一个人坐在技术科。
她没有走。她坐在顾铮的椅子上,看着屏幕。
屏幕上,程序界面还亮着。那行绿色的提示静静闪烁:
“程序就绪。等待手动触发播放。”
她点开for_chen视频,按下播放。
周明的脸出现在屏幕上。他低着头,在看照片。他说了很多,又说很少。他最后抬起头,看着镜头。
“对不起。我不是故意走的。”
画面定格。
林深语把手放在鼠标上,没有点关闭。
她从口袋里拿出那个旧笔记本。翻开到夹着父亲照片那一页。
林海生穿着警服。抱着她。她那时候很小,不记事。
照片背面有一行字:
“有些案子,是要用一辈子去解的。”
她把照片翻过来。
父亲的脸。笑起来眼纹很深。
她忽然想起早上小宇问她的那句话:“你会把爸爸抓走吗。”
” 她说不会。
但她没有告诉小宇,她自己也没有听过爸爸的最后一句话。
她的手机震动。
消息来自顾铮。
“晚上十点。我到。”
林深语把照片放回笔记本。合上笔记本。关掉电脑屏幕。
然后她站起来,走出技术科。
走廊尽头的保洁阿姨在拧拖把。水流进塑料桶里,声音很响。
林深语走出市局大楼。
外面是滨城十月的阳光。很亮,不热。
离零点还有十三个小时。