Renegade Project安装指南:修订间差异

来自Uotan Wiki · 刷机百科
(创建页面,内容为“本文档是使用Renegade Project EDK2 UEFI在受支持的高通Snapdragon ARM64设备上安装ARM上的Windows的指南。 我们对您的设备造成的任何损坏不承担任何责任。遵循本指南,即表示您同意对自己的行为承担全部责任。<ref>https://github.com/edk2-porting/renegade-project.tech</ref> == 0. 警告 == 请慢慢仔细阅读!!在开始之前一定要理解整个指南!!请注意,某些步骤仅适用于某些…”)
 
无编辑摘要
 
第70行: 第70行:


您需要解压缩7z档案以获得文件,如parted.7z->parted) 然后将工具推到您的设备上并输入ADB shell:
您需要解压缩7z档案以获得文件,如parted.7z->parted) 然后将工具推到您的设备上并输入ADB shell:
<code>adb push parted /cache/</code>


<code>adb push parted /cache/</code>
<code>adb push gdisk /cache/</code>


<code>adb push gdisk /cache/</code>
<code>adb shell "chmod 755 /cache/parted /cache/gdisk"</code>


<code>adb shell "chmod 755 /cache/parted /cache/gdisk"</code>
<code>adb shell</code>
 
进入ADB后:
<code>adb shell</code>
<code>cd /cache</code>
 
<code>After entering ADB shell:</code>
 
<code>cd /cache</code>
 
<code>./parted /dev/block/sda</code>
 
<code>Print the current partition table:</code>
 
<code>(parted) print</code>


<code>./parted /dev/block/sda</code>
打印当前分区表:
<code>(parted) print</code>
然后您将看到当前分区表,其中userdata是最后一个分区。下面是输出的示例:         
然后您将看到当前分区表,其中userdata是最后一个分区。下面是输出的示例:         
  .........
  .........
第100行: 第94行:
|}
|}
现在让我们继续分区:在这里,用户数据的大小可以由您自己决定。在本指南中,我们以30G为例
现在让我们继续分区:在这里,用户数据的大小可以由您自己决定。在本指南中,我们以30G为例
 
<code>(parted) resizepart 22</code>
<code>(parted) resizepart 22</code>
 
<nowiki>#</nowiki> 22 是userdata的分区号
<nowiki>#</nowiki> 22 是userdata的分区号
 
End? [122GB]? 32GB
End? [122GB]? 32GB
 
32GB是新userdata分区的结束值。由于userdata的起点是2048MB=2GB,因此新的大小将是32G-2G=30G。
32GB是新userdata分区的结束值。由于userdata的起点是2048MB=2GB,因此新的大小将是32G-2G=30G。


第112行: 第102行:


<nowiki>#</nowiki> esp 分区用于启动
<nowiki>#</nowiki> esp 分区用于启动
 
<code>(parted) mkpart esp fat32 32GB 32.5GB</code>
<code>(parted) mkpart esp fat32 32GB 32.5GB</code>
 
<nowiki>#</nowiki> 将esp分区设置为 `EFI system partition type`
<nowiki>#</nowiki> 将esp分区设置为 `EFI system partition type`
 
<code>(parted) set 23 esp on</code>
<code>(parted) set 23 esp on</code>
 
这里的esp分区大小为512MB,从32G到32.5G不等
这里的esp分区大小为512MB,从32G到32.5G不等


<nowiki>#</nowiki> 用于安装Windows的分区
<nowiki>#</nowiki> 用于安装Windows的分区
 
<code>(parted) mkpart win ntfs 32.5GB 122GB</code>
<code>(parted) mkpart win ntfs 32.5GB 122GB</code>
 
这里32.5GB是esp分区的末尾,122GB是原始userdata分区的末尾
这里32.5GB是esp分区的末尾,122GB是原始userdata分区的末尾


最后退出分开的工具。
最后退出分开的工具。
 
<code>(parted) quit</code>
<code>(parted) quit</code>
 
现在,用户数据大小调整已经完成。返回您的设备并使用recovery来格式化新的userdata分区:
现在,用户数据大小调整已经完成。返回您的设备并使用recovery来格式化新的userdata分区:


第152行: 第134行:


从TWRP的终端或adb shell转储<code>fsc</code>、<code>fsg</code>、<code>modemst1</code>和<code>modemst2</code>分区:
从TWRP的终端或adb shell转储<code>fsc</code>、<code>fsg</code>、<code>modemst1</code>和<code>modemst2</code>分区:
<code>dd if=/dev/block/by-name/fsc of=/sdcard/fsc</code>


<code>dd if=/dev/block/by-name/fsc of=/sdcard/fsc</code>
<code>dd if=/dev/block/by-name/fsg of=/sdcard/fsg</code>


<code>dd if=/dev/block/by-name/fsg of=/sdcard/fsg</code>
<code>dd if=/dev/block/by-name/modemst1 of=/sdcard/bootmodem_fs1</code>
 
<code>dd if=/dev/block/by-name/modemst1 of=/sdcard/bootmodem_fs1</code>
 
<code>dd if=/dev/block/by-name/modemst2 of=/sdcard/bootmodem_fs2</code>


<code>dd if=/dev/block/by-name/modemst2 of=/sdcard/bootmodem_fs2</code>
使用这些命令将分区备份转储复制到您的电脑 <code>adb pull /sdcard/fsc</code>, <code>adb pull /sdcard/fsg</code>, <code>adb pull /sdcard/bootmodem_fs1</code> 和 <code>adb pull /sdcard/bootmodem_fs2</code> ,或者通过使用MTP复制.
使用这些命令将分区备份转储复制到您的电脑 <code>adb pull /sdcard/fsc</code>, <code>adb pull /sdcard/fsg</code>, <code>adb pull /sdcard/bootmodem_fs1</code> 和 <code>adb pull /sdcard/bootmodem_fs2</code> ,或者通过使用MTP复制.


第166行: 第146行:


== 2. 安装 ==
== 2. 安装 ==
There are currently two recommended methods for installing Windows:
目前有两种建议的Windows安装方法:
 
Use Step 2.1 if the UEFI you're using supports Mass Storage Mode.
 
Use Step 2.2 if you failed to find Mass Storage Mode in UEFI, or it doesn't work for you (see Step 4.1)
 
2.1 Installing using mass storage mode
 
2.1.1 Access Windows partitions on your PC
 
Enter fastboot mode, boot the UEFI image:
 
fastboot boot name-of-uefi-image
 
Then you should see the boot menu. Choose UEFI Boot Menu using volume keys, then choose USB Attached SCSI (UAS) Storage to enter mass storage mode. You should hear the connection notification on your PC.
 
Open a terminal as admin, type diskpart and enter
 
DISKPART> lis dis
 
<nowiki>#</nowiki> It will print out all disks on your computer, find the largest one on your device
 
DISKPART> sel dis 6
 
<nowiki>#</nowiki> Disk 6 for example
 
DISKPART> lis par
 
<nowiki>#</nowiki> It will print out all partitions on UFS Lun 0, check if they are correct
 
DISKPART> sel par 23
 
<nowiki>#</nowiki> Select the ESP partition, in this case it's 23 for our device
 
DO NOT EXECUTE THE FOLLOWING COMMAND IF YOU ONLY WANT TO MOUNT PARTITIONS
 
DISKPART> format quick fs=fat32 label="System"
 
<nowiki>#</nowiki> Format ESP as fat32
 
DISKPART> assign letter="S"
 
<nowiki>#</nowiki> Assign drive letter
 
DISKPART> sel par 24
 
<nowiki>#</nowiki> Select Windows partition, in this case it's 24 for our device
 
DO NOT EXECUTE THE FOLLOWING COMMAND IF YOU ONLY WANT TO MOUNT PARTITIONS
 
DISKPART> format quick fs=ntfs label="Windows"
 
<nowiki>#</nowiki> Format Windows partition as NTFS
 
DISKPART> assign letter="W"
 
<nowiki>#</nowiki> Assign drive letter
 
DISKPART> exit
 
2.1.2 Deploy Windows image
 
Don't forget to use USB 3 ports on your PC and an USB 3 cable on your device to speed the installation process a lot! Please note that not all devices have USB 3 ports! You can check this in the specs sheet on your device specific guide. {.is-info}
 
Firstly, we need to get the install.wim file, to do this:
 
Mount the Windows on ARM .iso file
 
Open the sources folder
 
Find install.wim
 
Copy this file to your PC or mark the location of this file.
 
In the same powershell command prompt you have opened execute:
 
<nowiki>#</nowiki> <path/to/install.wim> should use either the path to the copied install.wim or path to the install.wim from the mounted iso
 
<nowiki>#</nowiki> W: is the assigned letter for the Windows partition
 
dism /apply-image /ImageFile:<path/to/install.wim> /index:1 /ApplyDir:W:\
 
Wait until the process finishes and after it's done execute:
 
<nowiki>#</nowiki> W: is the assigned letter for the Windows partition
 
<nowiki>#</nowiki> S: is the assigned letter for the EFI partition
 
<nowiki>#</nowiki> if you use different ones, be sure to replace them!
 
bcdboot W:\Windows /s S: /f UEFI
 
This will create the BCD configuration in the EFI partition.
 
2.1.3 Installing drivers
 
There are currently two ways of installing drivers:
 
Installing drivers using dism
 
Insatlling drivers using DriverUpdater
 
2.1.3.1 Install drivers using dism
 
Note, this part applies to Qualcomm Snapdragon 845 (SDM845) devices but can also be used for other Qualcomm Snapdragon SoC devices. {.is-info}
 
Unpack the driver pack previously downloaded from WOA-Drivers to a folder.
 
Change directory of the already opened powershell window to the extracted folder.
 
Execute:
 
<nowiki>#</nowiki> W: is the assigned letter for the Windows partition
 
<nowiki>#</nowiki> if you use a different one, be sure to replace it!
 
dism /Image:W: /Add-Driver /Driver:<path to the driver folder> /Recurse
 
Wait until it finishes.
 
2.1.3.2 Install drivers using DriverUpdater
 
Note, this part applies only to Qualcomm Snapdragon 855 (SM8150) devices. {.is-info}


The driver pack you downloaded could contain a tool called DriverUpdater (by @gus33000). If you didn't find it there, download it from the link above.
如果您使用的UEFI支持大容量存储模式,请使用步骤2.1。


Now, do the following:
如果在UEFI中找不到Mass Storage Mode(大容量存储模式),或者该模式不适用,请使用步骤2.2(请参阅步骤4.1)


Extract the driver pack
=== 2.1 使用大容量存储模式安装 ===
2.1.1 访问电脑上的Windows分区


Copy DriverUpdater.exe to this folder if it isn't there
进入快速引导模式,引导UEFI映像:
<code>fastboot boot name-of-uefi-image</code>
然后您应该会看到引导菜单。使用卷键选择UEFI引导菜单,然后选择USB连接SCSI(UAS)存储以进入大容量存储模式。您应该在电脑上听到连接通知。


Change directory of the already opened powershell window to the extracted folder.
以管理员身份打开终端,键入<code>diskpart</code>并输入
<code>DISKPART> lis dis</code>
<nowiki>#</nowiki> 它会打印出你电脑上的所有磁盘,在你的设备上找到最大的一个
<code>DISKPART> sel dis 6</code>
<nowiki>#</nowiki> 例如磁盘6
<code>DISKPART> lis par</code>
<nowiki>#</nowiki> 它将打印出UFS Lun 0上的所有分区,检查它们是否正确
<code>DISKPART> sel par 23</code>
<nowiki>#</nowiki> 选择ESP分区,在这种情况下,我们的设备为23


Execute:
如果只想装载分区,请不要执行以下命令
<code>DISKPART> format quick fs=fat32 label="System"</code>
<nowiki>#</nowiki> 将ESP格式化为fat32
<code>DISKPART> assign letter="S"</code>
<nowiki>#</nowiki> 分配驱动器号
<code>DISKPART> sel par 24</code>
<nowiki>#</nowiki> 选择Windows分区,在这种情况下,我们的设备是24


<nowiki>#</nowiki> W: is the assigned letter for the Windows partition
如果只想装载分区,请不要执行以下命令
<code>DISKPART> format quick fs=ntfs label="Windows"</code>
<nowiki>#</nowiki> 将Windows分区格式化为NTFS
<code>DISKPART> assign letter="W"</code>
<nowiki>#</nowiki> 分配驱动器号
<code>DISKPART> exit</code>


<nowiki>#</nowiki> if you use a different one, be sure to replace it!
=== 2.1.2部署Windows映像 ===
别忘了使用电脑上的USB 3端口和设备上的USB3 来大大加快安装过程!请注意,并非所有设备都有USB 3端口!您可以在设备特定指南的规格表中进行检查。


.\DriverUpdater.exe -d .\definitions\Desktop\ARM64\Internal\your_device_codename.txt -r . -p W:\
首先,我们需要获取install.wim文件,这样做:


Wait for the process to finish
挂载<code>Windows on ARM .iso</code> 文件


2.1.4 Enable test signing and disable Automatic Repair
打开 <code>sources</code> 文件夹


All drivers for supported Renegade Project devices are currently not properly signed, thus they require you to enable driver test signing mode before proceeding next with the installation process.
找到 <code>install.wim</code>


Execute following commands in the already opened powershell window:
将此文件复制到您的电脑或标记此文件的位置。


<nowiki>#</nowiki> S: is the ESP partition mounted in step 2.1.1
在打开的同一个powershell命令提示符中执行:


cd S:\EFI\Microsoft\Boot
<nowiki>#</nowiki> <path/to/install.wim> 应该使用复制的install.wim的路径,或者使用已安装iso的install.wim的路径


bcdedit /store BCD /set "{default}" testsigning on
<nowiki>#</nowiki> W: 是为Windows分区分配的字母
<code>dism /apply-image /ImageFile:<path/to/install.wim> /index:1 /ApplyDir:W:\</code>
等待进程完成,完成后执行:


bcdedit /store BCD /set "{default}" nointegritychecks on
<nowiki>#</nowiki> W: 是为Windows分区分配的字母


bcdedit /store BCD /set "{default}" recoveryenabled no
<nowiki>#</nowiki> S: 是EFI分区的分配字母


2.1.6 Misc fixes and rebooting your device
<nowiki>#</nowiki>如果你使用不同的,一定要更换它们!
<code>bcdboot W:\Windows /s S: /f UEFI</code>
这将在EFI分区中创建BCD配置。


You may want to flash devcfg image if your device needs one. Always check your device specific user guide for more details. {.is-info}
=== 2.1.3 安装驱动 ===
目前有两种安装驱动程序的方法:


You can now reboot your device by long-pressing the power button on your device.
* 使用dism安装驱动程序
* 使用DriverUpdater检查驱动程序


2.2 Installing using Windows PE
=== 2.1.3.1 使用dism安装驱动 ===


This section needs proper expansion. {.is-danger}
* 请注意,此部分适用于高通骁龙845(SDM845)设备,但也可用于其他高通骁龙SoC设备。
* 将之前从WOA Drivers下载的驱动程序包解压缩到文件夹中。
* 将已打开的powershell窗口的目录更改为提取的文件夹。
* 执行:


This installation method is usually not worth all the time to mess with. But we still leave it here for anybody who is curious enough. {.is-warning}
<nowiki>#</nowiki> W: 是为Windows分区分配的字母


You can inject necessary drivers into the boot.wim in the Windows ISO, then unpack all the files in the ISO to an NTFS partition on the UFS.
<nowiki>#</nowiki> 如果你使用不同的,一定要更换!
<code>dism /Image:W: /Add-Driver /Driver:<path to the driver folder> /Recurse</code>


However, UEFI can't boot from NTFS partition. You'll need to extract files from <nowiki>https://github.com/pbatard/rufus/blob/master/res/uefi/uefi-ntfs.img</nowiki> to a FAT32 partition on the UFS.
* 等它结束。


After booting into Windows PE, open a command prompt from the Recovery panel, then follow the usual installation guide steps
=== 2.1.3.2使用DriverUpdater安装驱动程序 ===
请注意,此部分仅适用于高通骁龙855(SM8150)设备。


3. Post-installation
您下载的驱动程序包可能包含一个名为[https://github.com/WOA-Project/DriverUpdater/releases/ DriverUpdater]的工具(由[https://github.com/gus33000 @gus33000]提供)。如果你在那里没有找到,请从上面的链接下载。


This part of the installation guide covers some useful post-installation steps.
现在,执行以下操作:


3.0 No WiFi in OOBE
* 提取驱动程序包
* 将<code>DriverUpdater.exe</code>复制到此文件夹(如果不存在)
* 将已打开的powershell窗口的目录更改为提取的文件夹。
* 执行:


also sometimes known as "Oops, you've lost internet connection" This usually happens when your device doesn't have working WiFi drivers. You get stuck on the Let's connect you to a network part of OOBE with a greyed out Next button.
<nowiki>#</nowiki> W: 是为Windows分区分配的字母


The easiest fix is to:
<nowiki>#</nowiki> 如果你使用不同的,一定要更换!
<code>.\DriverUpdater.exe -d .\definitions\Desktop\ARM64\Internal\your_device_codename.txt -r . -p W:\</code>
等待过程完成


Open On Screen Keyboard in OOBE or connect a USB keyboard.
=== 2.1.4 启用测试签名并禁用自动修复 ===
受支持的Renegade Project设备的所有驱动程序当前都没有正确签名,因此它们要求您在继续下一个安装过程之前启用驱动程序测试签名模式。


Press Shift + F10 and wait for command line window to open.
在已打开的powershell窗口中执行以下命令:


Write oobe\bypassnro and press enter (or try cd oobe and bypassnro.cmd if the first command fails)
<nowiki>#</nowiki> S: ESP分区是否安装在步骤2.1.1中
<code>cd S:\EFI\Microsoft\Boot</code>


Your device should restart and you should later find a text button in OOBE's Let's connect you to a network part that says I don't have internet
<code>bcdedit /store BCD /set "{default}" testsigning on</code>


3.1 Modem provisioning on Qualcomm Snapdragon 845 phones
<code>bcdedit /store BCD /set "{default}" nointegritychecks on</code>


As we already should have a backup, that we made in Step 1.3 Backing up essential partitions, do now the following:
<code>bcdedit /store BCD /set "{default}" recoveryenabled no</code>


Reboot your phone back to recovery
=== 2.1.6错误修复和重新启动设备 ===
如果您的设备需要,您可能需要刷<code>devcfg</code>映像。请始终查看特定于设备的用户指南以了解更多详细信息.


Copy over back the dumped partitions from your PC to /sdcard/ either using adb push <path to the copied backups folder> /sdcard/ or by using MTP
现在,您可以长按设备上的电源按钮重新启动设备。


Restore the dumped partitions back using TWRP's terminal or adb shell:
=== 2.2 使用Windows PE安装 ===
此部分需要适当扩展


dd if=/sdcard/fsc of=/dev/block/by-name/fsc
这种安装方法通常不值得花那么多时间来搞砸。但我们仍然把它留给任何好奇的人.


dd if=/sdcard/fsg of=/dev/block/by-name/fsg
您可以在Windows ISO中向boot.wim注入必要的驱动程序,然后将ISO中的所有文件解压缩到UFS上的NTFS分区。


dd if=/sdcard/bootmodem_fs1 of=/dev/block/by-name/modemst1
但是,UEFI无法从NTFS分区启动。您需要从中提取文件<nowiki/>https://github.com/pbatard/rufus/blob/master/res/uefi/uefi-ntfs.img<nowiki/>到UFS上的FAT32分区。


dd if=/sdcard/bootmodem_fs2 of=/dev/block/by-name/modemst2
引导到Windows PE后,从“恢复”面板打开命令提示符,然后按照通常的安装指南步骤进行操作


Reboot your phone and go back to Windows.
== 3. 安装后 ==
安装指南的这一部分介绍了一些有用的安装后步骤。


3.2 Modem provisioning on Qualcomm Snapdragon 855 phones
=== 3.0 OOBE中没有WiFi ===
有时也被称为<code>“哎呀,你失去了互联网连接”</code>这通常发生在你的设备没有可用的WiFi驱动程序时。您被困在“让我们用灰色的“下一步”按钮将您连接到OOBE的网络部分”上。


Please use Mass Storage Mode for this part of the process, you can't copy these dumps if your device is booted in Windows! {.is-danger}
最简单的解决方法是:


Please note that if you also want calling requires you to dump the ICan0 value from a Single SIM (no Dual SIM) Qualcomm Snapdragon Windows on ARM device running Windows 10 up to build 18363! {.is-warning}
* 在OOBE中打开屏幕键盘或连接USB键盘。
* 按Shift+F10并等待命令行窗口打开。
* 写入oobe\bipassnro并按enter键(如果第一个命令失败,请尝试cd oobe和bypassnro.cmd)
* 你的设备应该重新启动,稍后你应该会在OOBE中找到一个文本按钮。让我们将你连接到一个网络部分,上面写着我没有互联网


If you don't have a dump of the modem partitions, you can now boot to TWRP and execute commands from Step 1.3 Backing up essential partitions {.is-info}
3.1 高通Snapdragon 845手机上的调制解调器配置


Since you should have both bootmodem_fs1 and bootmodem_fs2 partition dumps from your Qualcomm Snapdragon 855 (SM8150) phone on your computer, do the following to copy these dumps to the correct place on your phone:
由于我们已经有了备份,我们在步骤1.3中备份了重要分区,现在请执行以下操作:


Reboot your phone and enable Mass Storage Mode
* 重新启动手机到recovery模式
* 使用<code>adb push<复制的备份文件夹的路径>/sdcard/</code>或使用MTP将转储的分区从电脑复制回<code>/sdcard</code>
* Restore the dumped partitions back using TWRP's terminal or adb shell:


Wait for partitions to mount
<code>dd if=/sdcard/fsc of=/dev/block/by-name/fsc</code>


Open the mounted Windows on ARM installation from your phone
<code>dd if=/sdcard/fsg of=/dev/block/by-name/fsg</code>


Place both dumped partition files to \Windows\System32\DriverStore\FileRepository\qcremotefs8150_<random data here>\ overwriting the existing files in this folder.
<code>dd if=/sdcard/bootmodem_fs1 of=/dev/block/by-name/modemst1</code>


Reboot your phone and go back to Windows.
<code>dd if=/sdcard/bootmodem_fs2 of=/dev/block/by-name/modemst2</code>


3.3 Modem provisioning check
* 重新启动手机并返回Windows。


You can later confirm that the cellular modem on your phone works by:
=== 3.2 高通骁龙855手机上的调制解调器配置 ===
请在这部分过程中使用大容量存储模式,如果您的设备在Windows中启动,则无法复制这些转储!


Opening the Settings app
请注意,如果您还想打电话,则需要从运行Windows 10的ARM设备上的单SIM(无双SIM)高通Snapdragon Windows转储ICan0值,最高版本为18363!


Go into Network & internet and click on Cellular
如果您没有调制解调器分区的转储,现在可以启动到TWRP并执行步骤1.3中的命令备份重要分区


Click on Mobile operator settings
由于您的计算机上应该同时有来自高通Snapdragon 855(SM8150)手机的<code>bootmodem_fs1</code>和<code>bootmodem_fs2</code>分区转储,请执行以下操作将这些转储复制到手机上的正确位置:


Look at IMEI and Data class. These lines should not be blank now.
* 重新启动手机并启用大容量存储模式
* 等待装载分区
* 从手机打开已安装的Windows on ARM安装
* 将两个转储的分区文件放置到\Windows\System32\DriverStore\FileRepository\qcremotefs8150_<此处随机数据>\覆盖此文件夹中的现有文件。
* 重新启动手机并返回Windows。


You should also be able to enable Cellular data on your device now.
=== 3.3调制解调器配置检查 ===
稍后,您可以通过以下方式确认手机上的蜂窝调制解调器是否正常工作:


4. Troubleshooting
* 打开“设置”应用程序
* 进入网络和互联网并点击蜂窝
* 点击移动运营商设置
* 查看IMEI和Data类。这些行现在不应该是空白的。
* 您现在也应该能够在设备上启用蜂窝数据。


All troubleshooting steps moved to Troubleshooting! {.is-info}
== 4. [[Renegade Project安装指南故障排除|故障排除]] ==
=参考文献=

2024年2月16日 (五) 01:29的最新版本

本文档是使用Renegade Project EDK2 UEFI在受支持的高通Snapdragon ARM64设备上安装ARM上的Windows的指南。 我们对您的设备造成的任何损坏不承担任何责任。遵循本指南,即表示您同意对自己的行为承担全部责任。[1]

0. 警告

请慢慢仔细阅读!!在开始之前一定要理解整个指南!!请注意,某些步骤仅适用于某些特定的高通Snapdragon SoC!!

不要一次运行所有命令,如果中断进程,也不要重新运行这些命令。您需要事先熟悉命令行接口,并且不得在任何命令中输入任何拼写错误。您可能会永久损坏您的设备!

如果您在过程中看到警告或错误,这是不正常的。首先检查故障排除。如果你没有找到答案,请在Telegram或Discord上联系我们,但不要继续或独自进行,你可能会进一步破坏局面。

如果有任何问题或需要互动帮助,请在我们的Telegram或Discord上提问,主页上提供

您已收到警告,现在可以开始安装过程了!

1. 预安装

1.0 设备特定步骤

如果您的设备得到支持,请检查设备支持状态

检查您的设备是否有特定于设备的用户指南!很可能它会将你链接到完全不同的指南(例如小米Pad 5或Poco X3 Pro),或者说不要再继续了(例如小米Civi)!

1.1 下载文件

1.1.1 下载Windows arm64 ISO

请避免使用所有精简版的Windows 10和Windows 11,如Tiny11。这些版本的Windows通常会破坏应用程序支持或重要设备硬件支持。所有支持的高通Snapdragon设备都足够强大,适用于Windows 10和Windows 11的完整未修改版本。

如果你愿意的话,也可以谨慎行事,但不要寻求帮助处理破碎的东西。谢谢{.是危险的}!

请确保您设备上的高通Snapdragon SoC具有ARMv8.1原子(仅适用于高通Snapdra龙845(SDM845)、高通Snapdragon855(SM8150)及更新版本)

对于高通骁龙835(MSM8998)SoC设备,最新的Windows 11版本为:22621、22622和22623!注意:尝试在这些设备上启动较新版本将失败!

目前建议普通用户使用UUP Dump。

您可以使用最新开发人员频道内部版本在Windows中试用最新功能。为了获得更高的稳定性,建议使用最新版本预览版本。

请记住选中“在转换选项中包含更新”,这将为您提供ISO的确切版本。

1.1.2 下载驱动程序和UEFI镜像

如前所述,请务必查看特定于设备的用户指南,因为它可以为驱动程序和UEFI映像推荐不同的版本!

edk2 msm发布:Renegade Project edk2 UEFI镜像

WOA驱动程序:适用于高通骁龙835和高通骁龙845设备的Windows驱动程序

请仅从发布页面下载zip文件!

下载整个“存储库源代码”会给你留下一个坏的驱动程序zip,无法工作!

如果你有所有需要的东西,让我们开始吧!

1.1.3 下载工具和设备相关内容

dism++: 用于在高通骁龙845设备上安装驱动程序

Android platform-tools: adb and fastboot

确保您也有快速启动USB驱动程序。

您可能还想再次查看特定于设备的用户指南,了解可能对您的设备有用的文件。

1.2 划分UFS

T此过程将擦除您的所有Android数据!

您应该始终在Linux环境中修改用户数据分区

理论上,您可以在Linux PC上使用gparted调整用户数据分区的大小而不会丢失数据。但如果您的用户数据是加密的,则应小心。无论如何,最好先备份重要数据。

要调整用户数据的大小,您需要一个允许您使用ADB的第三方恢复。您还需要parted(可选gdisk)

首先启动设备进行恢复, 使用图形界面的umount用户数据分区, 或者通过运行umount /dev/block/by-name/userdata

您需要解压缩7z档案以获得文件,如parted.7z->parted) 然后将工具推到您的设备上并输入ADB shell:

adb push parted /cache/
adb push gdisk /cache/
adb shell "chmod 755 /cache/parted /cache/gdisk"
adb shell

进入ADB后:

cd /cache
./parted /dev/block/sda

打印当前分区表:

(parted) print

然后您将看到当前分区表,其中userdata是最后一个分区。下面是输出的示例:

.........
Number  Start    End      Size     File system   Name       Flags
22      2048MB   122GB    120GB    ext4          userdata
.........

此图显示了上面示例中的当前分区表,以及安装Windows时分区表的样子.

PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSI1MTFweCIgaGVpZ2h0PSIzMjRweCIgdmlld0JveD0iLTAuNSAtMC41IDUxMSAzMjQiIGNvbnRlbnQ9IiZsdDtteGZpbGUgaG9zdD0mcXVvdDtlbWJlZC5kaWFncmFtcy5uZXQmcXVvdDsgbW9kaWZpZWQ9JnF1b3Q7MjAyMi0xMC0yMFQxMDowMToxOS42OTlaJnF1b3Q7IGFnZW50PSZxdW90OzUuMCAoV2luZG93cykmcXVvdDsgZXRhZz0mcXVvdDtNY0RpVmZpeXBTemp1Y0Nha1I0TCZxdW90OyB2ZXJzaW9uPSZxdW90OzIwLjQuMiZxdW90OyB0eXBlPSZxdW90O2VtYmVkJnF1b3Q7Jmd0OyZsdDtkaWFncmFtIGlkPSZxdW90O0NPY0F0Q0xURGRMMVY3azJtbUh5JnF1b3Q7IG5hbWU9JnF1b3Q756ysIDEg6aG1JnF1b3Q7Jmd0OzdWcGRjOXNvRlAwMW11aytyRWNDSVV1UFNaeWtEKzFNWnpLZDdqNFNpOWpzeWtKRk9MYjc2eGNzc0lTUWE3Y3IyYzdFbmt3Q2x3K0pjN2lYZTRnOWVMZFlQM0pjekQremxHUWU4Tk8xQnljZUFFRUlnS2QrL0hSVFdXSS9xZ3d6VGxQZHFUWTgwUjlFRzMxdFhkS1VsRlpId1ZnbWFHRWJweXpQeVZSWU5zdzVXOW5kWGxobVA3WEFNK0lZbnFZNGM2M2ZhQ3JtZWhWZ1hOcy9FanFibXljSFVWSzFMTERwckZkU3puSEtWZzBUdlBmZ0hXZE1WS1hGK281a0NqeURTelh1WVUvcjdzVTR5Y1ZSQS9SN3ZPSnNxUmVuWDB4c3pHbzVXK1lwVVFOOEQ5NnU1bFNRcHdKUFZldEs4aXR0YzdISVpDMlF4UmVhWlhjc1kzdzdGcWFJeEdrbzdhWGc3Ri9TYUluQk00d2kyZUsrc2w3RksrR0NyQnNtdllSSHdoWkU4STNzWWxyTk12UitBb211cjJwMmtLOXQ4eVl6VUJ1eDNoR3ozZHcxYUxLZ2NkdURZZUJnK1BYaFNSbytMWFA1V3o3Qi8xQ20rQThIV0xrNllhUEhTVWwvNE9kdEJ3VTJYZ3BXVnR0Zk5lT016bkpabmtxb2lNVHhWa0ZFNWI2ODBRMExtcVpxOEczQmFDNjJhMEszSHBxMGlNbFpUaHhPdE5GbSswVGs3UG8weWVtRkc5RHovdTRERUdBREFrTVhrTEFEajZnUFBLQ0RoMXlMa0piZzNXN1B3R1lEb1k3WU1jenVCTkFCbmFUeXBORlZ4c1djelZpT3MvdmEya0tnN3ZPSnNVSVQ4UThSWXFPUFRjV1J6U0paVS9HWEhxN0tmNnZ5Q09uYVpOMW9tbXhNSlpkTDJ3NGFKYkdwVndORENJMmhIcnV0V1lPL0VFNGxRR3BmL0p5NmtpMzUxQnkwc1Q3ZE1aK1JYY3l1YkFxcG54TE1TWVlGZmJYUDdQL2xQUEUrNTdtQW9JTEF3YUFDNDRHQ1NySVBGM2Qvbnh5WDVIekJGcmlKZ1FlaVRBWFZGNVlMQzVqbys1S1poaitybUhxam9qSXExbHNnVExzc3pmVGY3VVRQeGpDeVA2WmR2dU56ZTR5MFZjODM1bmNaK0VIN0dFYnV6a2lHQ3Z4dVdySXNDVSt4d0dmM0dPZ2Y5aGpZbFV6MzRqS293MlZhZ0VqTlZLamlTMGJXTjByTmJZK1lWQmNuMHd5WEpaMjJOckFGWW84aTVlQXBkQ0NOTUxhakR5djloQy9La1Jxa29XUVVvYVQrakMwT1F5Tk56WXpWSWFzbmFlckQ5cnlSdlJuQ01iUW5xazVtWjZJdHp6c1VqcU0rT2t6OTI1T2lZWHhLS1dwb3ZrclIzeVpuTUNrSzNPeng3TEcrTFVVUlBHRjJ0RGRydkVwUnpVWjRPaWxxNXJoSzBUMVNGSnFMNW9ZVU5WdjQ5RklVdXRMaVlxVm9WMUFaU29wQ043RytXQ2w2eW1BTDNYdS9xeFM5bU1EZmxxS29RM0lOSlVWaDZPeU1pNVdpWFI0VERlVXhyaElsWlhGK1NLTERrTUNoSUhFVjJxTGs1NGZraUxnNkdDU3U0UHBHODFUOWgvbmNzSVJINVBaQlBCUXVSNGlkWDd1enFkTStLK2M3a08vdHhkRks0L1M3WGNwZFR2c0NMbWdSY3ZUbERiSW5jcGp0Ny9JR3VtSU8rR0g4K2QyZTZGRmtReCtQSGVjYkQzU2loMTI1M2lYNTNvWDRHVXFTa2MzU2IzdGF4MVRoWUw0V3VobGJBTURqZTNVMTFNcUl1bHl0SzBuc3hkWGNKREVBL3R1a1F1a3dmVkVUakh0S1FlTFdTVFoyVTVDdURLUVhhdHhrVlI2c2IvTkFhbERURXpQdDFBREI0NjRhUVIvTXVMbGhFRjJKMGNURTZDQXhYWmRFdlJEakpuRWVmSkNHS3ptdC9HQjRjbVMxL2had2xTVFUzNldHOS84QiZsdDsvZGlhZ3JhbSZndDsmbHQ7L214ZmlsZSZndDsiPjxkZWZzLz48Zz48cmVjdCB4PSIwIiB5PSIzIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjEzMCIgZmlsbD0iI2Q1ZThkNCIgc3Ryb2tlPSIjODJiMzY2IiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjExMCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAxOHB4OyBtYXJnaW4tbGVmdDogNTVweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3dyYXA7Ij5VRlMgTHVuIDAgKHNkYSk8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTUiIHk9IjIyIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+VUZTIEx1biAwIChzZGEpPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIxMCIgeT0iNTMiIHdpZHRoPSI0MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdHJva2U9InJnYigwLCAwLCAwKSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxyZWN0IHg9IjEiIHk9IjY4IiB3aWR0aD0iNTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogODNweDsgbWFyZ2luLWxlZnQ6IDI2cHg7Ij48ZGl2IHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyIgZGF0YS1kcmF3aW8tY29sb3JzPSJjb2xvcjogcmdiKDAsIDAsIDApOyAiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+cGFydCAxPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjI2IiB5PSI4NyIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjEycHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnBhcnQgMTwvdGV4dD48L3N3aXRjaD48L2c+PHBhdGggZD0iTSA0MiA4MyBMIDUwIDgzIEwgNTAgODcuMzYiIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiKDAsIDAsIDApIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJzdHJva2UiLz48cGF0aCBkPSJNIDUwIDgyLjExIEwgNTMuNSA4OS4xMSBMIDUwIDg3LjM2IEwgNDYuNSA4OS4xMSBaIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIHN0cm9rZT0icmdiKDAsIDAsIDApIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48cmVjdCB4PSI0MiIgeT0iNTMiIHdpZHRoPSIzOCIgaGVpZ2h0PSI2MCIgZmlsbD0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdHJva2U9InJnYigwLCAwLCAwKSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZy10b3A6IDgzcHg7IG1hcmdpbi1sZWZ0OiA0M3B4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyI+cGFydCAyPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjYxIiB5PSI4NyIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjEycHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPnBhcnQgMjwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0iODAiIHk9IjUzIiB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIGZpbGw9InJnYigyNTUsIDI1NSwgMjU1KSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsgdGV4dC1hbGlnbjogbGVmdDsiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogdW5zYWZlIGNlbnRlcjsganVzdGlmeS1jb250ZW50OiB1bnNhZmUgY2VudGVyOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiA4M3B4OyBtYXJnaW4tbGVmdDogODFweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3JtYWw7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsiPnBhcnQgMzwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSIxMDAiIHk9Ijg3IiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cGFydCAzPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIxMTAiIHk9IjYzIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogNzhweDsgbWFyZ2luLWxlZnQ6IDE1NXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsiPjxmb250IHN0eWxlPSJmb250LXNpemU6IDE1cHg7Ij48Yj4uLi4uLi4uLi4uLi4uLi48L2I+PC9mb250PjwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSIxNTUiIHk9IjgyIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Li4uLi4uLi4uLi4uLi4uPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIxOTAiIHk9IjUzIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjYwIiBmaWxsPSJyZ2IoMjU1LCAyNTUsIDI1NSkiIHN0cm9rZT0icmdiKDAsIDAsIDApIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDI5OHB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZy10b3A6IDgzcHg7IG1hcmdpbi1sZWZ0OiAxOTFweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3JtYWw7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsiPnVzZXJkYXRhPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjM0MCIgeT0iODciIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj51c2VyZGF0YTwvdGV4dD48L3N3aXRjaD48L2c+PHBhdGggZD0iTSAyNDQuNjYgMTQwLjU0IEwgMjU0LjY2IDE0MC40NiBMIDI1NC44NiAxNjYuNDYgTCAyNjUuMzYgMTY2LjM5IEwgMjUwIDE4NS41IEwgMjM0LjM2IDE2Ni42MiBMIDI0NC44NiAxNjYuNTQgWiIgZmlsbD0iI2Q1ZThkNCIgc3Ryb2tlPSIjODJiMzY2IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48cmVjdCB4PSIwIiB5PSIxOTMiIHdpZHRoPSI1MDAiIGhlaWdodD0iMTMwIiBmaWxsPSIjZDVlOGQ0IiBzdHJva2U9IiM4MmIzNjYiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48cmVjdCB4PSIwIiB5PSIxOTMiIHdpZHRoPSIxMTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogMjA4cHg7IG1hcmdpbi1sZWZ0OiA1NXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsiPlVGUyBMdW4gMCAoc2RhKTwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1NSIgeT0iMjEyIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+VUZTIEx1biAwIChzZGEpPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIxMCIgeT0iMjQzIiB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIGZpbGw9InJnYigyNTUsIDI1NSwgMjU1KSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48cmVjdCB4PSIxIiB5PSIyNTgiIHdpZHRoPSI1MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNzNweDsgbWFyZ2luLWxlZnQ6IDI2cHg7Ij48ZGl2IHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyIgZGF0YS1kcmF3aW8tY29sb3JzPSJjb2xvcjogcmdiKDAsIDAsIDApOyAiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+cGFydCAxPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjI2IiB5PSIyNzciIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5wYXJ0IDE8L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gNDIgMjczIEwgNTAgMjczIEwgNTAgMjc3LjM2IiBmaWxsPSJub25lIiBzdHJva2U9InJnYigwLCAwLCAwKSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ic3Ryb2tlIi8+PHBhdGggZD0iTSA1MCAyNzIuMTEgTCA1My41IDI3OS4xMSBMIDUwIDI3Ny4zNiBMIDQ2LjUgMjc5LjExIFoiIGZpbGw9InJnYigwLCAwLCAwKSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxyZWN0IHg9IjQyIiB5PSIyNDMiIHdpZHRoPSIzOCIgaGVpZ2h0PSI2MCIgZmlsbD0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdHJva2U9InJnYigwLCAwLCAwKSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZy10b3A6IDI3M3B4OyBtYXJnaW4tbGVmdDogNDNweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3JtYWw7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsiPnBhcnQgMjwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI2MSIgeT0iMjc3IiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+cGFydCAyPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSI4MCIgeT0iMjQzIiB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIGZpbGw9InJnYigyNTUsIDI1NSwgMjU1KSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsgdGV4dC1hbGlnbjogbGVmdDsiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogdW5zYWZlIGNlbnRlcjsganVzdGlmeS1jb250ZW50OiB1bnNhZmUgY2VudGVyOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNzNweDsgbWFyZ2luLWxlZnQ6IDgxcHg7Ij48ZGl2IHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyIgZGF0YS1kcmF3aW8tY29sb3JzPSJjb2xvcjogcmdiKDAsIDAsIDApOyAiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyBvdmVyZmxvdy13cmFwOiBub3JtYWw7Ij5wYXJ0IDM8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iMTAwIiB5PSIyNzciIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5wYXJ0IDM8L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjExMCIgeT0iMjUzIiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogMjY4cHg7IG1hcmdpbi1sZWZ0OiAxNTVweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3dyYXA7Ij48Zm9udCBzdHlsZT0iZm9udC1zaXplOiAxNXB4OyI+PGI+Li4uLi4uLi4uLi4uLi4uPC9iPjwvZm9udD48L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iMTU1IiB5PSIyNzIiIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4uLi4uLi4uLi4uLi4uLi48L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjE5MCIgeT0iMjQzIiB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIGZpbGw9InJnYigyNTUsIDI1NSwgMjU1KSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsgdGV4dC1hbGlnbjogbGVmdDsiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogdW5zYWZlIGNlbnRlcjsganVzdGlmeS1jb250ZW50OiB1bnNhZmUgY2VudGVyOyB3aWR0aDogNThweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNzNweDsgbWFyZ2luLWxlZnQ6IDE5MXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyI+dXNlcmRhdGE8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iMjIwIiB5PSIyNzciIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj51c2VyZGF0YTwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0iMjUwIiB5PSIyNDMiIHdpZHRoPSIzMCIgaGVpZ2h0PSI2MCIgZmlsbD0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdHJva2U9InJnYigwLCAwLCAwKSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZy10b3A6IDI3M3B4OyBtYXJnaW4tbGVmdDogMjUxcHg7Ij48ZGl2IHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyIgZGF0YS1kcmF3aW8tY29sb3JzPSJjb2xvcjogcmdiKDAsIDAsIDApOyAiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyBvdmVyZmxvdy13cmFwOiBub3JtYWw7Ij5lc3A8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iMjY1IiB5PSIyNzciIGZpbGw9InJnYigwLCAwLCAwKSIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIxMnB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5lc3A8L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjI4MCIgeT0iMjQzIiB3aWR0aD0iMzAiIGhlaWdodD0iNjAiIGZpbGw9InJnYigyNTUsIDI1NSwgMjU1KSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsgdGV4dC1hbGlnbjogbGVmdDsiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogdW5zYWZlIGNlbnRlcjsganVzdGlmeS1jb250ZW50OiB1bnNhZmUgY2VudGVyOyB3aWR0aDogMjhweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNzNweDsgbWFyZ2luLWxlZnQ6IDI4MXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyI+bXNyPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjI5NSIgeT0iMjc3IiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+bXNyPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIzMTAiIHk9IjI0MyIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdHJva2U9InJnYigwLCAwLCAwKSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxNzhweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNzNweDsgbWFyZ2luLWxlZnQ6IDMxMXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyI+V2luZG93czwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI0MDAiIHk9IjI3NyIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjEycHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvd3M8L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gMTkwIDIzIEwgMTkwIDQ2LjYzIiBmaWxsPSJub25lIiBzdHJva2U9InJnYigwLCAwLCAwKSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ic3Ryb2tlIi8+PHBhdGggZD0iTSAxOTAgNTEuODggTCAxODYuNSA0NC44OCBMIDE5MCA0Ni42MyBMIDE5My41IDQ0Ljg4IFoiIGZpbGw9InJnYigwLCAwLCAwKSIgc3Ryb2tlPSJyZ2IoMCwgMCwgMCkiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxyZWN0IHg9IjE1NiIgeT0iMCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjMwIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsgdGV4dC1hbGlnbjogbGVmdDsiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogdW5zYWZlIGNlbnRlcjsganVzdGlmeS1jb250ZW50OiB1bnNhZmUgY2VudGVyOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZy10b3A6IDE1cHg7IG1hcmdpbi1sZWZ0OiAxOTFweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHdoaXRlLXNwYWNlOiBub3dyYXA7Ij4yMDQ4TUI8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iMTkxIiB5PSIxOSIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjEycHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjIwNDhNQjwvdGV4dD48L3N3aXRjaD48L2c+PHBhdGggZD0iTSA0ODkuNiAyMyBMIDQ4OS42IDQ2LjYzIiBmaWxsPSJub25lIiBzdHJva2U9InJnYigwLCAwLCAwKSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ic3Ryb2tlIi8+PHBhdGggZD0iTSA0ODkuNiA1MS44OCBMIDQ4Ni4xIDQ0Ljg4IEwgNDg5LjYgNDYuNjMgTCA0OTMuMSA0NC44OCBaIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIHN0cm9rZT0icmdiKDAsIDAsIDApIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz48cmVjdCB4PSI0NTAiIHk9IjAiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAxNXB4OyBtYXJnaW4tbGVmdDogNDgwcHg7Ij48ZGl2IHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyIgZGF0YS1kcmF3aW8tY29sb3JzPSJjb2xvcjogcmdiKDAsIDAsIDApOyAiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+MTIyR0I8L2Rpdj48L2Rpdj48L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNDgwIiB5PSIxOSIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjEycHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPjEyMkdCPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIzNzAiIHk9IjgzIiB3aWR0aD0iODAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogOThweDsgbWFyZ2luLWxlZnQ6IDQxMHB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTdweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsiPjEyMEdCPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjQxMCIgeT0iMTAzIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTdweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MTIwR0I8L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjI0MCIgeT0iMjQ4IiB3aWR0aD0iNTAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9ImFsbCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OiB2aXNpYmxlOyB0ZXh0LWFsaWduOiBsZWZ0OyIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiB1bnNhZmUgY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2FmZSBjZW50ZXI7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nLXRvcDogMjU4cHg7IG1hcmdpbi1sZWZ0OiAyNjVweDsiPjxkaXYgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtc2l6ZTogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBkYXRhLWRyYXdpby1jb2xvcnM9ImNvbG9yOiByZ2IoMCwgMCwgMCk7ICI+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDdweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjsgcG9pbnRlci1ldmVudHM6IGFsbDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsiPjMwME1CPC9kaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjI2NSIgeT0iMjYwIiBmaWxsPSJyZ2IoMCwgMCwgMCkiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iN3B4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4zMDBNQjwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0iMjc1IiB5PSIyNDgiIHdpZHRoPSI0MCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNThweDsgbWFyZ2luLWxlZnQ6IDI5NXB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogN3B4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+MTZNQjwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSIyOTUiIHk9IjI2MCIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjdweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+MTZNQjwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0iMjAwIiB5PSIyNDgiIHdpZHRoPSI0MCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6IHZpc2libGU7IHRleHQtYWxpZ246IGxlZnQ7IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHVuc2FmZSBjZW50ZXI7IGp1c3RpZnktY29udGVudDogdW5zYWZlIGNlbnRlcjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmctdG9wOiAyNThweDsgbWFyZ2luLWxlZnQ6IDIyMHB4OyI+PGRpdiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiIGRhdGEtZHJhd2lvLWNvbG9ycz0iY29sb3I6IHJnYigwLCAwLCAwKTsgIj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogN3B4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yOyBwb2ludGVyLWV2ZW50czogYWxsOyB3aGl0ZS1zcGFjZTogbm93cmFwOyI+PyBNQjwvZGl2PjwvZGl2PjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSIyMjAiIHk9IjI2MCIgZmlsbD0icmdiKDAsIDAsIDApIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjdweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+PyBNQjwvdGV4dD48L3N3aXRjaD48L2c+PC9nPjxzd2l0Y2g+PGcgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ii8+PGEgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtNSkiIHhsaW5rOmhyZWY9Imh0dHBzOi8vd3d3LmRpYWdyYW1zLm5ldC9kb2MvZmFxL3N2Zy1leHBvcnQtdGV4dC1wcm9ibGVtcyIgdGFyZ2V0PSJfYmxhbmsiPjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTBweCIgeD0iNTAlIiB5PSIxMDAlIj5UZXh0IGlzIG5vdCBTVkcgLSBjYW5ub3QgZGlzcGxheTwvdGV4dD48L2E+PC9zd2l0Y2g+PC9zdmc+

现在让我们继续分区:在这里,用户数据的大小可以由您自己决定。在本指南中,我们以30G为例

(parted) resizepart 22

# 22 是userdata的分区号

End? [122GB]? 32GB

32GB是新userdata分区的结束值。由于userdata的起点是2048MB=2GB,因此新的大小将是32G-2G=30G。

然后创建windows和esp分区:

# esp 分区用于启动

(parted) mkpart esp fat32 32GB 32.5GB

# 将esp分区设置为 `EFI system partition type`

(parted) set 23 esp on

这里的esp分区大小为512MB,从32G到32.5G不等

# 用于安装Windows的分区

(parted) mkpart win ntfs 32.5GB 122GB

这里32.5GB是esp分区的末尾,122GB是原始userdata分区的末尾

最后退出分开的工具。

(parted) quit

现在,用户数据大小调整已经完成。返回您的设备并使用recovery来格式化新的userdata分区:

  • 在 TWRP, click on Wipe
  • 选择高级擦除
  • 选择格式化 Data
  • 阅读屏幕上的文字并按照说明进行操作
  • 重新启动到Android,看看是否一切正常。

1.3 备份重要分区

在高通骁龙845(SDM845)手机上省略这一步骤将致命地破坏您手机上的手机!这意味着你的SIM卡插槽将不再接受SIM卡,你的IMEI将消失,WiFi也有可能断开。(包括Android和Windows)
以后修复它的唯一方法是恢复QCN备份或EFS(或调制解调器)备份!如果您没有这些备份,您将调制解调器恢复到原始状态的几率接近0%!
这部分程序通常仅适用于具有蜂窝调制解调器功能的高通Snapdragon设备!

高通骁龙855(SM8150)手机上的这一步骤也可以在安装后稍后完成,安装Windows之前无需执行!

目前,Renegade项目支持的所有具有蜂窝调制解调器功能的高通Snapdragon 845(SDM845)和高通Snapdra龙855(SM8150)手机都需要提供调制解调器,以使蜂窝数据和短信正常工作。

备份这些分区的当前过程如下:

从TWRP的终端或adb shell转储fscfsgmodemst1modemst2分区:

dd if=/dev/block/by-name/fsc of=/sdcard/fsc
dd if=/dev/block/by-name/fsg of=/sdcard/fsg
dd if=/dev/block/by-name/modemst1 of=/sdcard/bootmodem_fs1
dd if=/dev/block/by-name/modemst2 of=/sdcard/bootmodem_fs2

使用这些命令将分区备份转储复制到您的电脑 adb pull /sdcard/fsc, adb pull /sdcard/fsg, adb pull /sdcard/bootmodem_fs1adb pull /sdcard/bootmodem_fs2 ,或者通过使用MTP复制.

把它们存放在某个地方,你不想丢失它们。我们稍后将在安装后回复它们。

2. 安装

目前有两种建议的Windows安装方法:

如果您使用的UEFI支持大容量存储模式,请使用步骤2.1。

如果在UEFI中找不到Mass Storage Mode(大容量存储模式),或者该模式不适用,请使用步骤2.2(请参阅步骤4.1)

2.1 使用大容量存储模式安装

2.1.1 访问电脑上的Windows分区

进入快速引导模式,引导UEFI映像:

fastboot boot name-of-uefi-image

然后您应该会看到引导菜单。使用卷键选择UEFI引导菜单,然后选择USB连接SCSI(UAS)存储以进入大容量存储模式。您应该在电脑上听到连接通知。

以管理员身份打开终端,键入diskpart并输入

DISKPART> lis dis

# 它会打印出你电脑上的所有磁盘,在你的设备上找到最大的一个

DISKPART> sel dis 6

# 例如磁盘6

DISKPART> lis par

# 它将打印出UFS Lun 0上的所有分区,检查它们是否正确

DISKPART> sel par 23

# 选择ESP分区,在这种情况下,我们的设备为23

如果只想装载分区,请不要执行以下命令

DISKPART> format quick fs=fat32 label="System"

# 将ESP格式化为fat32

DISKPART> assign letter="S"

# 分配驱动器号

DISKPART> sel par 24

# 选择Windows分区,在这种情况下,我们的设备是24

如果只想装载分区,请不要执行以下命令

DISKPART> format quick fs=ntfs label="Windows"

# 将Windows分区格式化为NTFS

DISKPART> assign letter="W"

# 分配驱动器号

DISKPART> exit

2.1.2部署Windows映像

别忘了使用电脑上的USB 3端口和设备上的USB3 来大大加快安装过程!请注意,并非所有设备都有USB 3端口!您可以在设备特定指南的规格表中进行检查。

首先,我们需要获取install.wim文件,这样做:

挂载Windows on ARM .iso 文件

打开 sources 文件夹

找到 install.wim

将此文件复制到您的电脑或标记此文件的位置。

在打开的同一个powershell命令提示符中执行:

# <path/to/install.wim> 应该使用复制的install.wim的路径,或者使用已安装iso的install.wim的路径

# W: 是为Windows分区分配的字母

dism /apply-image /ImageFile:<path/to/install.wim> /index:1 /ApplyDir:W:\

等待进程完成,完成后执行:

# W: 是为Windows分区分配的字母

# S: 是EFI分区的分配字母

#如果你使用不同的,一定要更换它们!

bcdboot W:\Windows /s S: /f UEFI

这将在EFI分区中创建BCD配置。

2.1.3 安装驱动

目前有两种安装驱动程序的方法:

  • 使用dism安装驱动程序
  • 使用DriverUpdater检查驱动程序

2.1.3.1 使用dism安装驱动

  • 请注意,此部分适用于高通骁龙845(SDM845)设备,但也可用于其他高通骁龙SoC设备。
  • 将之前从WOA Drivers下载的驱动程序包解压缩到文件夹中。
  • 将已打开的powershell窗口的目录更改为提取的文件夹。
  • 执行:

# W: 是为Windows分区分配的字母

# 如果你使用不同的,一定要更换!

dism /Image:W: /Add-Driver /Driver:<path to the driver folder> /Recurse
  • 等它结束。

2.1.3.2使用DriverUpdater安装驱动程序

请注意,此部分仅适用于高通骁龙855(SM8150)设备。

您下载的驱动程序包可能包含一个名为DriverUpdater的工具(由@gus33000提供)。如果你在那里没有找到,请从上面的链接下载。

现在,执行以下操作:

  • 提取驱动程序包
  • DriverUpdater.exe复制到此文件夹(如果不存在)
  • 将已打开的powershell窗口的目录更改为提取的文件夹。
  • 执行:

# W: 是为Windows分区分配的字母

# 如果你使用不同的,一定要更换!

.\DriverUpdater.exe -d .\definitions\Desktop\ARM64\Internal\your_device_codename.txt -r . -p W:\

等待过程完成

2.1.4 启用测试签名并禁用自动修复

受支持的Renegade Project设备的所有驱动程序当前都没有正确签名,因此它们要求您在继续下一个安装过程之前启用驱动程序测试签名模式。

在已打开的powershell窗口中执行以下命令:

# S: ESP分区是否安装在步骤2.1.1中

cd S:\EFI\Microsoft\Boot
bcdedit /store BCD /set "{default}" testsigning on
bcdedit /store BCD /set "{default}" nointegritychecks on
bcdedit /store BCD /set "{default}" recoveryenabled no

2.1.6错误修复和重新启动设备

如果您的设备需要,您可能需要刷devcfg映像。请始终查看特定于设备的用户指南以了解更多详细信息.

现在,您可以长按设备上的电源按钮重新启动设备。

2.2 使用Windows PE安装

此部分需要适当扩展

这种安装方法通常不值得花那么多时间来搞砸。但我们仍然把它留给任何好奇的人.

您可以在Windows ISO中向boot.wim注入必要的驱动程序,然后将ISO中的所有文件解压缩到UFS上的NTFS分区。

但是,UEFI无法从NTFS分区启动。您需要从中提取文件https://github.com/pbatard/rufus/blob/master/res/uefi/uefi-ntfs.img到UFS上的FAT32分区。

引导到Windows PE后,从“恢复”面板打开命令提示符,然后按照通常的安装指南步骤进行操作

3. 安装后

安装指南的这一部分介绍了一些有用的安装后步骤。

3.0 OOBE中没有WiFi

有时也被称为“哎呀,你失去了互联网连接”这通常发生在你的设备没有可用的WiFi驱动程序时。您被困在“让我们用灰色的“下一步”按钮将您连接到OOBE的网络部分”上。

最简单的解决方法是:

  • 在OOBE中打开屏幕键盘或连接USB键盘。
  • 按Shift+F10并等待命令行窗口打开。
  • 写入oobe\bipassnro并按enter键(如果第一个命令失败,请尝试cd oobe和bypassnro.cmd)
  • 你的设备应该重新启动,稍后你应该会在OOBE中找到一个文本按钮。让我们将你连接到一个网络部分,上面写着我没有互联网

3.1 高通Snapdragon 845手机上的调制解调器配置

由于我们已经有了备份,我们在步骤1.3中备份了重要分区,现在请执行以下操作:

  • 重新启动手机到recovery模式
  • 使用adb push<复制的备份文件夹的路径>/sdcard/或使用MTP将转储的分区从电脑复制回/sdcard
  • Restore the dumped partitions back using TWRP's terminal or adb shell:
dd if=/sdcard/fsc of=/dev/block/by-name/fsc
dd if=/sdcard/fsg of=/dev/block/by-name/fsg
dd if=/sdcard/bootmodem_fs1 of=/dev/block/by-name/modemst1
dd if=/sdcard/bootmodem_fs2 of=/dev/block/by-name/modemst2
  • 重新启动手机并返回Windows。

3.2 高通骁龙855手机上的调制解调器配置

请在这部分过程中使用大容量存储模式,如果您的设备在Windows中启动,则无法复制这些转储!

请注意,如果您还想打电话,则需要从运行Windows 10的ARM设备上的单SIM(无双SIM)高通Snapdragon Windows转储ICan0值,最高版本为18363!

如果您没有调制解调器分区的转储,现在可以启动到TWRP并执行步骤1.3中的命令备份重要分区

由于您的计算机上应该同时有来自高通Snapdragon 855(SM8150)手机的bootmodem_fs1bootmodem_fs2分区转储,请执行以下操作将这些转储复制到手机上的正确位置:

  • 重新启动手机并启用大容量存储模式
  • 等待装载分区
  • 从手机打开已安装的Windows on ARM安装
  • 将两个转储的分区文件放置到\Windows\System32\DriverStore\FileRepository\qcremotefs8150_<此处随机数据>\覆盖此文件夹中的现有文件。
  • 重新启动手机并返回Windows。

3.3调制解调器配置检查

稍后,您可以通过以下方式确认手机上的蜂窝调制解调器是否正常工作:

  • 打开“设置”应用程序
  • 进入网络和互联网并点击蜂窝
  • 点击移动运营商设置
  • 查看IMEI和Data类。这些行现在不应该是空白的。
  • 您现在也应该能够在设备上启用蜂窝数据。

4. 故障排除

参考文献