蘇晴先簡單介紹了事故的經過和造成的損失。
“……所幸,沈皓在短時間內通過熱修複恢複了服務,沒有造成更嚴重的用戶流失。”
“但是,事故的原因必須查清,責任必須明確。”
她說完,看向我。
“沈皓,你是補丁的提交者,你先說。”
所有人的目光再次聚焦到我身上。
周子昂靠在椅背上,雙手抱胸,一副看戲的姿態。
我站起來,沒有緊張。
“各位領導,我的結論很簡單。”
“這次事故的直接原因,是我的補丁在上線時,被植入了惡意代碼。”
“根本原因,是有人惡意破壞,蓄意陷害。”
我的話一出口,會議室裡一片嘩然。
王副總皺起了眉頭。
“陷害?年輕人,說話要負責任。”
周子昂立刻接話,一臉痛心疾首。
“沈皓,我知道你壓力大,不想承擔責任。但是,把自己的失誤推脫成別人的陷害,這……這不是一個工程師該有的品質。”
他演得真好。
“我是不是推脫,大家看了證據就知道了。”
我把電腦連接上投影。
第一頁,是兩份代碼包的哈希值對比。
紅色的“不一致”刺眼奪目。
“這是運維組提供的哈希值,證明了部署的代碼,和測試的代碼,不是同一個東西。”
周子昂的臉色微變,但還算鎮定。
“這隻能說明流程有疏漏,不能說明是人為陷害。”
“說得好。”我點點頭,放出第二頁。
“經過對部署日誌的徹查,我發現,在部署前,係統執行了一條非法的腳本注入指令。”
我展示了那條`source/tmp/temp_patch.sh`的日誌。
“這個腳本,用一行`sed`命令,篡改了我的代碼,然後自動刪除,手法非常專業。”
會議室裡,懂技術的人已經開始交頭接耳。
周子昂的表情,終於有了裂痕。
“那也隻能證明有黑客攻擊,或者內部人員誤操作。”
“是不是誤操作,我們看看這條指令的來源就清楚了。”
我放出了第三頁PPT。
上麵是一個IP地址,和那個刺眼的賬戶名——Wang_VP_Office_Guest。
整個會議室,瞬間安靜下來。
所有人的目光,都下意識地飄向了王副總。
王副總的臉色變得很難看。
“胡鬨!我辦公室的訪客賬戶,怎麼可能……”
“王副總,別急。”我打斷他。
“我知道,光有這個,還不能說明什麼。”
“所以,我還找到了這個。”
我按下了翻頁鍵。
大屏幕上,出現了周子昂和運維工程師李浩的聊天記錄截圖。
“王副總特批的。”
“出了事,我擔著。”
“做得乾淨點。”
那幾行字,像聚光燈一樣打在周子昂的臉上。
他臉上的血色,“唰”地一下全退了,變得慘白。
他猛地站起來,指著我。
“你……你偽造證據!你這是誹謗!”
“偽造?”我笑了。
“公司的通訊軟件,所有記錄都在服務器上存檔,加密保存。”
“是不是偽造,請公司的技術安全部門來鑒定一下,立刻就能出結果。”
“或者,我們現在就把運維工程師李浩叫進來,當麵對質一下?”
周子昂張著嘴,一個字也說不出來。
他身體晃了一下,差點沒站穩。
王副總的臉色,已經從難看變成了鐵青。他狠狠地瞪著周子昂,眼神裡全是怒火。
整個會議室,落針可聞。
沒有人是傻子。
到了這一步,真相已經不言而喻。
最後,我把目光投向蘇晴。
“蘇總監,我的彙報完了。”
“誰是那隻‘黑手’,我想,現在已經很清楚了。”
我坐下來,看著對麵失魂落魄的周子昂,心裡沒有報複的快感,隻有一片冰冷的平靜。
蘇晴站了起來。
她看了一眼王副總,又看了一眼周子昂,最後,目光落在我身上。
她的眼神很複雜。
有驚訝,有審視,還有……讚許?
“今天的複盤會,到此結束。”
她的聲音不大,但異常清晰。
“關於周子昂的問題,公司監察部會立刻介入調查。”
“在調查結果出來之前,他所有的工作權限和門禁權限,全部凍結。”
“散會。”
她說完,第一個走出了會議室。
人們陸陸續續地離開,沒人敢和王副總或周子昂說話。
最後,會議室裡隻剩下我們三個人。
王副總走到周子昂麵前,一言不發,抬手就是一記響亮的耳光。
“廢物!”
他從牙縫裡擠出兩個字,然後頭也不回地走了。
周子昂捂著臉,站在原地,像一尊雕像。
我收拾好電腦,準備離開。
經過他身邊時,他突然開口,聲音嘶啞。
“我不會就這麼算了的。”
他抬起頭,眼睛裡布滿血絲,像一頭受傷的野獸。
“沈皓,我們走著瞧。”
我停下腳步,看著他。
“我等著。”
07
周子昂被停職調查。
這個消息像風一樣,一天之內傳遍了整個公司。
我成了風暴的中心。
走在公司裡,總能感覺到各種各樣的目光。
有好奇,有敬畏,也有幸災樂禍。
老張見到我,重重地拍了我的肩膀,什麼也沒說,但一切儘在不言中。
蘇晴把我叫到辦公室。
“這次你做得很好。”
這是她第一次明確地表揚我。
“從今天起,你轉為天穹項目組的正式工程師。”
“之前周子昂負責的架構評估工作,你接手一部分,先從數據模塊的鏈路優化開始。”
我愣住了。
從數據清洗,到架構評估。
這在職級上,是三級跳。
“蘇總監,我……”
“不用懷疑自己。”她打斷我,“我不管你用什麼方法找到了證據,我隻看結果。”
“你證明了你不但有技術,還有腦子,和膽子。”
“在星塵,這就夠了。”
“下去吧,別讓我失望。”
我走出辦公室,感覺像踩在雲端。
巨大的喜悅和不真實感包圍著我。
我終於,靠自己的能力,在這個地方站穩了腳跟。
然而,我高興得太早了。
周子昂的調查,雷聲大,雨點小。
監察部介入了一周,最後給出的結論是:
“周子昂作為項目顧問,在新方案的推行上,與執行工程師沈皓存在溝通不暢,采用了不恰當的技術測試手段,對線上服務造成了影響。”
“鑒於其入職時間短,對公司流程不熟悉,且未造成不可挽回的損失,給予內部警告處分,扣除當季獎金。”
“調離天穹項目組,另行安排。”
我看到這份通報的時候,簡直不敢相信自己的眼睛。
蓄意陷害,變成了“溝通不暢”。
惡意破壞,變成了“不恰當的測試手段”。
王副總的能量,比我想象的還要大。
他硬生生地把一件刑事案件,定性成了一次工作失誤。
果然,沒過兩天,周子昂回來了。
他沒有被開除,而是被調去了公司的另一個核心部門——“方舟”雲服務平台。
級別沒降,甚至可以說,去了一個更有前景的地方。
他在公司餐廳見到我,端著餐盤,徑直坐到了我的對麵。
他瘦了些,眼神裡的傲慢被一種陰沉的狠厲取代。
“沈皓,驚喜嗎?”
他笑著問我,叉子在餐盤上劃出刺耳的聲音。
“我告訴過你,我不會就這麼算了的。”
我放下筷子。
“靠山硬,就是不一樣。”
“這不是靠山,這是規則。”他糾正我,“這個世界的規則,不是你這種人能懂的。”
“你以為你贏了?你隻是讓我換了個賽道而已。”
“而你,還在這片泥潭裡。”
他湊近了些,壓低聲音。
“你接了我的活兒,感覺怎麼樣?”
“是不是覺得前途一片光明?”
“好好享受吧。因為,你很快就會知道,什麼叫絕望。”
他吃完最後一口牛排,用餐巾擦了擦嘴,站起來。
“順便提醒你一句,天穹項目的數據底層,依賴的是‘方舟’平台的存儲服務。”
“祝你工作順利。”
他走了。
我看著盤子裡的飯菜,瞬間沒了胃口。
一種強烈的不安攫住了我。
他的話是什麼意思?
接下來的幾天,我投入到新的工作中。
我負責的第一個任務,是優化“天穹”係統的數據調用鏈路,降低延遲。
這是一個硬骨頭。
我熬了幾個通宵,查閱了海量資料,終於設計出了一套新的緩存和預取方案。
理論上,這套方案可以將數據訪問的平均延遲,降低百分之二十。
我把方案提交給了蘇晴。
她審核通過,批準我進行小範圍的線上灰度測試。
測試開始。
一切順利。
監控數據顯示,延遲確實顯著下降。
我稍微鬆了口氣。
就在我準備擴大測試範圍的時候,災難發生了。
所有參與測試的服務器,數據開始出現大規模的、隨機性的損壞。
用戶的個人資料、曆史記錄、行為標簽……全部變成了亂碼。
警報聲在辦公室裡瘋狂響起,比上次還要密集。
我的大腦嗡的一聲,一片空白。
怎麼可能?
我的方案隻涉及數據讀取,根本沒有寫入操作,怎麼會損壞原始數據?
我瘋了一樣衝到電腦前,排查問題。
老張也跑過來,臉色慘白。
“怎麼回事?”
“我不知道!我的代碼不可能寫壞數據!”
我一邊檢查代碼,一邊調取底層日誌。
很快,我發現了問題所在。
所有的數據損壞,都發生在一個特定的時間點——緩存係統進行數據同步的瞬間。
而數據同步,調用的是“方舟”雲平台提供的標準接口。
是接口出錯了?
我立刻查看“方舟”平台的接口文檔和狀態公告。
沒有任何異常。
我嘗試著手動調用那個接口,傳入正常的參數,返回的數據也是正常的。
可為什麼,在我的程序裡,它就會出錯?
我百思不得其解,冷汗順著額頭往下流。
蘇晴站在我身後,聲音冷得像冰。
“沈皓,又是你。”
“這次,你還有什麼證據,證明是別人陷害你嗎?”
我嘴唇發乾,說不出話。
沒有證據。
所有的日誌都顯示,是我的程序發起了錯誤的調用。
看起來,就像是我自己寫了一個巨大的BUG。
可是,我沒有。
我死死地盯著那段調用接口的代碼,一遍又一遍地看。
突然,我想起了周子昂在餐廳裡說的話。
“天穹項目的數據底層,依賴的是‘方舟’平台的存儲服務。”
“祝你工作順利。”
一個可怕的念頭,像閃電一樣擊中了我。
周子昂!
他在“方舟”平台!
難道……
他修改了雲平台的接口?
不,這不可能。修改這麼核心的接口,需要層層審批,他剛過去,不可能有這麼大的權限。
那問題到底在哪?
一定有什麼細節被我忽略了。
我強迫自己冷靜,把整個調用過程在腦子裡重新過了一遍。
我的程序>調用“方舟”SDK>SDK封裝請求>發送到“方舟”服務器>服務器執行操作>返回結果。
問題,會不會出在SDK上?
SDK,軟件開發工具包,是“方舟”平台提供給我們這些開發者,用來方便調用他們服務的代碼庫。
我立刻去查看我項目裡引用的那個SDK版本。
最新版,v2.1.5。
我再去“方舟”的官方倉庫,查看這個版本的源代碼。
我逐行閱讀那個數據同步接口的實現代碼。
看了十幾分鐘,沒發現任何問題。
邏輯清晰,代碼規範。
難道我猜錯了?
就在我準備放棄的時候,我的目光掃過了一段看起來很正常的錯誤處理代碼。
`if(request.user_id!=null&&request.user_id.length()>32){`
`log.error("Invaliduser_idformat");`
`returnnewCorruptedDataResponse();`
`}`
如果用戶ID的長度超過32位,就記一條錯誤日誌,然後返回一個數據損壞的響應。
這看起來很合理,是在做參數校驗。
我們公司的標準用戶ID,是32位的UUID。
根本不可能超過32位。
我正要跳過。
等等!
我猛地坐直了身體。
天穹項目!
為了兼容一個早期的曆史係統,我們天穹項目組的用戶ID,在標準的32位UUID後麵,額外拚接了一個4位的業務代碼!
所以,我們係統的用戶ID,是36位的!
這個SDK,被動了手腳。
它裡麵埋了一個專門針對我們天穹項目的“地雷”!
隻要是我們係統發起的調用,用戶ID長度一定是36位,一定會觸發這個看似正常的“參數校驗”,然後返回一個數據損壞的響應!
而我的新方案,因為引入了緩存和預取,大大增加了這個接口的調用頻率。
於是,地雷被引爆了。
好一招借刀殺人!
我立刻查看這個SDK版本的發布記錄。
發布者:周子昂。
發布時間:三天前。
就在他調去“方舟”平台的第二天。
我渾身冰冷。
他不是修改了核心接口。
他是發布了一個有毒的SDK版本,然後等著我,主動把它用到我的項目裡。
而我,為了追求性能,想都沒想就用了最新版的SDK。
我親手把毒藥,喂給了我的係統。
08
證據確鑿。
但我心裡沒有絲毫輕鬆。
反而,一股寒意從腳底升起。
這次的情況,和上次完全不同。
上次,周子昂是“違規操作”。
而這次,他是在自己的職權範圍內,發布了一個“有缺陷”的SDK版本。
他完全可以辯解。
他可以說,這是為了代碼的健壯性,做的參數校驗。
他可以說,他不知道天穹項目的用戶ID是36位,這是部門間的溝通問題。
他甚至可以反咬一口,說是我作為使用者,沒有仔細閱讀文檔,沒有做好兼容性測試。
從流程上看,他沒有任何問題。
所有的鍋,都會扣在我的頭上。
蘇晴還在等我的答複。
整個辦公室的人都在看我。
我如果現在拿出這個證據,不但扳不倒周子昂,反而會坐實我“能力不足”和“推卸責任”的罪名。
怎麼辦?
我的大腦飛速旋轉。
不能就這麼認輸。
認輸,就是死。
我必須找到一個方法,讓周子昂無法辯駁。
我需要一個局。
一個讓他自己跳進來的局。
我抬起頭,看向蘇晴,臉上擠出一個慘淡的笑容。
“蘇總監,是我的錯。”
我開口,聲音沙啞。
“我在方案設計時,忽略了新版SDK的兼容性問題,引發了數據損壞。”
“我願意承擔全部責任。”
我看到蘇晴的眼神裡帶著失望。
老張在我旁邊,急得直跺腳。
辦公室裡響起一陣竊竊私語。
“我就說嘛,肯定是他自己的問題。”
“太年輕了,剛有點成績就飄了。”
我沒有理會這些。
我繼續說:“請求給我一個補救的機會。我現在立刻回滾版本,恢複數據。然後,我會連夜修改代碼,解決這個兼容性問題。”
蘇晴盯著我看了很久,久到我以為她會直接讓我滾蛋。
最後,她點了點頭。
“好。”
“我再給你最後一次機會。”
“明天早上九點之前,如果服務沒有完全恢複,數據有任何一條找不回來,你就自己去人事部。”
“滾。”
最後那個字,她幾乎是從牙縫裡擠出來的。
我立刻開始操作。
回滾服務,從備份中恢複被損壞的數據。
一直忙到深夜,辦公室的人都走光了。
老張給我泡了杯咖啡。
“你小子,到底怎麼想的?真就自己扛了?”
我接過咖啡,喝了一大口。
“張工,有時候,退一步,是為了進兩步。”
他沒聽懂,還想再問。
我擺擺手。
“放心吧,張工。我不會就這麼算了的。”
他歎了口氣,拍拍我的肩膀,走了。
辦公室裡隻剩下我一個人。
我看著電腦屏幕,眼神變得銳利。
周子昂,你以為你贏了嗎?
你發布的這個有毒SDK,確實很巧妙。
但它有一個致命的弱點。
就是那個`user_id.length()>32`的判斷。
這個“32”,寫得太死了,太有針對性了。
它就像一個獵人專門為某種動物設計的陷阱,尺寸不大不小,剛剛好。
我要做的,就是把這個陷阱,展示給所有人看。
我開始寫代碼。
但我寫的不是修複方案。
我寫的,是一個自動化測試腳本。
這個腳本的功能很簡單:
它會遍曆公司內部所有接入了“方舟”雲平台服務的項目。
獲取這些項目的用戶ID格式。
然後,用這些不同格式的用戶ID,去調用那個有毒的SDK接口。
最後,生成一份詳細的測試報告。
報告會清晰地顯示出:
當用戶ID長度小於等於32位時,接口正常。
當用戶ID長度大於32位時,接口返回數據損壞。
這個腳本,就是一個“照妖鏡”。
它能把周子昂那個看似合理的“參數校驗”,變成一個專門狙殺天穹項目的“精確製導導彈”。
淩晨四點,腳本寫完。
我沒有立刻運行它。
如果我現在運行,周子昂會立刻收到警報,他有足夠的時間去修改SDK,銷毀證據。
。機時個一要需我
。機時的駁辯法無,應反法無他讓個一
。統係件郵部內的司公了開打,想了想我
。件郵封一了寫我
。晴蘇……及以,員成體全組發開心核台平雲舟方,員成體全組目項穹天:人件收
。室公辦OTC司公:送抄
。》警預急緊的壞損據數線務業多致導能可,陷缺性容兼大重在存本版5.1.2vKDS台平舟方於關《:題標件郵
。業專常非,觀客常非得寫我,容內件郵
。象現的故事次這了述描細詳我
。擊打性滅毀成造線務業的式格DI準標非用使些某對會能可,”切刀一“於過輯邏驗校數參個某的KDS是疑懷我,查排步初過經,出指我,後然
”。員人關相有所給步同時實將果結試測,畢完發開已本腳試測。試測描掃性容兼的圍範司公全個一行執,整點九午上天今在將我,圍範的響影能可陷缺該估評並,想猜的我證驗了為“:道寫我
”。級升慎謹,前來出案方複修在,事同的線務業他其請也。碼代關相查排急緊並,載下的本版5.1.2v停暫刻立台平舟方議建烈強我,此在“
。接鏈碼代源的本腳試測的我了上附我,後最
。開公,明透
。下光陽了在放都切一把我
。昂子周說地姓道名指有沒我
。的”意故“是陷缺個這說有沒至甚我
。師程工通普的題問決解圖試並、險風在潛了現發、忡忡心憂個一是隻我
。送發時定了置設我,件郵完寫
。分十五點八上早,間時
。色天的亮微外窗著看,上子椅在靠我,切一這完做
。了你給遞刀把我,昂子周
。出發件郵,分十五點八
。行執動自會本腳試測,整點九
。間時的鐘分十有你
。”821“如比,字數的理合更個一成改”23“個那把,碼代的裡KDS改修刻立,擇選以可你
。”常正切一“是會就果結,來出跑試測的點九,樣這
。做大題小是我,天憂人杞是我,的錯是我明證會你
。錄記的晰清下留會,改修次這的你,時同但
。KDS的本版個這了改修急緊,昂子周,你,前行執試測的我在,後出發件郵警預的我在
。兩百三銀無地此
。務業的響影受他其到不找本腳試測的我賭,做不都麼什,擇選以可也你
。層高的司公全給送發會,告報的”GUB發觸會目項穹天有隻“份一,後之點九,麼那
。揭若然昭,阱陷的製定們我為門專個一
。局死個一是這
。擇選個兩你給我
。了拆它把手親你但,雷了埋你認承是,個一
。了炸雷著看地睜睜眼後然,生發沒都麼什裝假是,個一另
?選麼怎會你
90
。司公了到回我,半點八上早
。異詭氛氣裡室公辦
。緒情的雜複了滿充裡神眼,我著看們他,件郵了到收都人多很
。裡那OTC到捅接直,大麼這鬨情事把敢然竟,了瘋我得覺人的有
。焚自火玩在是次這我得覺,憂擔露麵則人的有
。音聲低壓,邊一到拉我把張老
”?嗎罪得裡死往昂子周把是不這你?麼什乾是這你,皓沈“
”。死等下躺能不總我,死我讓想他“,他著看我”。箭頭回有沒弓開,工張“
。出發時準件郵的我,分十五點八
。跳狗飛雞是定肯,裡室公辦的台平”舟方“,刻此時此,到象想能我
。件郵了到看定一昂子周
?做麼怎會他
。鐘時著盯直一睛眼的我,上際實,作工尾收的複恢據數理處在上麵表,腦電了開打,位座的己自到回我
。分五十五點八
。庫倉碼代的KDS台平”舟方“了開點我
。新刷
。化變有沒
。分六十五點八
。新刷
。化變有沒是還
。速加始開跳心的我
。賭在他
。者害受個二第到不找我賭在他
。DI戶用的”葩奇“個二第有沒,目項穹天們我了除裡司公賭在他
。分九十五點八
。麵頁新刷次一後最我
。改修被有沒然依,碼代
。擇選的他了出做昂子周
。扛硬擇選他
。好很
。笑冷起浮角嘴我
。整點九了到跳,間時
。行運始開時準,上群集器務服的司公在,本腳試測化動自的置設我
。件郵入湧地狂瘋始開,裡箱郵的我
。告報度進時實的出發本腳試測是那
”……台中商電:目項描掃始開“
”。過通試測。字數位42:式格DI戶用“
”……統係告廣:目項描掃始開“
”。過通試測。DIUU位23:式格DI戶用“
……
。過通部全,目項個幾十連一
。論議聲小始開人有經已,裡室公辦
”。DI葩奇多麼那有哪,嘛說就我“
”。題問的己自他是真來原,天半了搞,了尬尷皓沈下這“
。們他會理有沒我
。幕屏著盯地死死,睛眼的我
。題問有定一,目項個一有,道知我
。構架的務業心核他其究研去,間時量大了花還我,檔文的組目項己自看了除,後司公來我
。”識標源據數上接拚DIUU“是,式格DI戶用的們他,據數單名黑的部外合整了為,目項”腦大全安控風“的司公,楚清很得記我
!位04是,度長
。來出了跳件郵封一下,然果
”……腦大全安控風:目項描掃始開“
”。串符字位04:式格DI戶用“
。了滯停吸呼的我
。秒一下
!箱件收的我了進砸地狠狠,件郵的簽標”報警危高“著帶、的色紅封一
”!敗失試測“
”!’esnopseRataDdetpurroC‘回返,時口接5.1.2vKDS舟方用調’腦大全安控風‘目項“
”!高極:險風壞損據數在潛“
。件郵封這了到收都,佬大有所的裡表列送抄我,間時一同在乎幾
。了響機手的晴蘇
。了變就色臉,句一了聽隻,話電起接她
”?了題問出也據數控風?麼什“
。聲無雀鴉間瞬,裡室公辦
。腦大全安控風
。估評用信和詐欺反的易交有所責負,子根命條一另的司公是這
。倍十重嚴瘓癱統係薦推比果後,題問了出是要它
。了誤失作工是不經已這
。洞漏全安大重的基根司公搖動以足是這
。昂子周的KDS版新了布發剛剛是就,者造製的洞漏個這而
。央中室公辦到走,來起了站我
。人有所著看我
”。了來出果結試測,位各“
”?嗎題問的人個一我是這,得覺人有還,在現“
。話說人沒
。頭了下低都,人的我論議在還前之些那
。前麵我到走步快,話電了掛晴蘇
。刀如利銳神眼的她
”?的好劃計你是不是這“
。答回地靜平我”。事的做該我了做是隻我“
”。事的做該應,時洞漏的司公個整害危能可個一現發在,師程工的任責負個一“
。秒十足足了看我著盯她
。了笑她,後然
。實真麼這得笑她見次一第我是那
”。亮漂得乾“
。話電起拿身轉,完說她
”。晴蘇,我是,對。室公辦OTC接“
”。組查調的別級高最立成刻立,議建我,洞漏全安大重的KDS台平舟方於關“
”。頭牽OTC由,對“
”。查調待等,來起製控門部保安由,限權有所的他製限,備設有所的他存封刻立,議建我,昂子周,人任責關相“
”。步一司公開離能不他,前之楚清查情事在“
。了束結都切一道知,令指的斷果而靜冷晴蘇著聽我
。了你住不保也誰,次這,昂子周
。行不也總副王
。裡渦漩大巨的”全安司公害危“個這進拖也己自把是就,價代的昂子周護保他為因
。會不也,敢不他
。了棄拋底徹,子主的他被經已,子棋顆這昂子周
。了來下就告公條頭色紅的司公,午下
。理處關機法司交移並,除開司公被,”全安息信司公害危,輯邏意惡入植中碼代心核在嫌涉“因,昂子周
。我了到提還,裡告公
”。’獎獻貢術技度年司公‘予授並,揚表報通予給,失損的重嚴更生產司公了免避,患隱全安大重了警預並現發時及,力察洞術技和心任責的度高出現表,中查排故事在,皓沈師程工“
。瀾波的大太有沒裡心,告公著看我
。了贏我
。鬆輕不並得贏但
。人通普的運命變改力努己自靠想,作工好好想個一是隻我
。邊崖懸了到逼我把,步一步一,昂子周是
。人的計心於工,的生陌得覺都己自我,個一了成逼我把
。事壞是還,事好是底到這,道知不我
01
。雨著下,天那的走帶被昂子周
。車的色黑輛一了上,他著”陪“地右一左一,人的服製著穿個兩,到看裡戶窗從我
。頭回有沒也,紮掙有沒他
。紙張一像得白蒼,臉的下鏡眼絲金
。見不失消,流車的市城了入彙就快很車輛那
。幕帷了下落樣這就,爭戰的月個幾了續持場一
。覺感的禍樂災幸何任有沒也,他送去有沒我
。的落落空裡心