• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Halfwalker

How to boot/install from USB key ?

486 posts in this topic

This might be overcome by limiting the range of valid driveletters for USB-stick e.g. that the valid range is M-Z,

so that the probable range where cardreaders might occur is excluded.

As I see it, 99.99% of users of this method will normally use on their PC's, at one time or another, a PE of some kind, and of those 99.99% will use a SP2 build, so we can make the drive letter X: as fixed, and that will cover in 99% of cases, then provide an easy way for the remaining 1% to change letter manually.

jaclaz

@jaclaz

The USB-stick was given already a fixed DriveLetter, but it was during XP Setup that the Drive Check in undoren.cmd was causing problems with Cardreaders, which have been overcome by limiting the range for the Drive Check such that the probable range where Cardreaders might occur is excluded.

Regards,

wimb

Edited by wimb
0

Share this post


Link to post
Share on other sites

@wimb

I tried the usb_prep3.cmd.

Changes observed as looking at source:

\usb_prep3\$OEM$\useraccounts.cmd

no more autologon

\usb_prep3\boot.ini

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="2. GUI Mode Setup Windows XP, Continue Setup + Start XP" /FASTDETECT

\usb_prep3\usb_prep3.cmd + some other changes for nLite

set xp_type=Home / Prof - RyanVM

\usb_prep3\undoren.cmd

\usb_prep3\ren_fold.cmd

take into account drive letter E F G H I J K L

Recommendation:

\usb_prep3\makeBS3.cmd: maybe to upgrade from

::<Release 0.03 ALPHA 05/August/2007

to jaclaz's latest version:

::<Release 0.07 ALPHA 01/October/2007

Now the script usb_prep3.cmd got some problems at execution.

Adding BTS DriverPacks if they were used ....

Lets copy everything to the USB drive, may take a while ( about 5 minutes )

Press a key to continue...
N:\txtsetup.sif
N:\NTLDR
Access denied

Add entry in BOOT.INI to launch TXT Mode Setup ....
A needed file is missing
File U:\setupldr.bin is missing
Press a key to continue...

missing file

1) Access denied

N: tempdrive

U: USB key

The acess denied is during copy from n:\ntldr to u:\ntldr which already exists in my key (I upgrade

the key by re-executing the script, so no new reformat on the key done). And u:\ntldr has read-only, hidden,

system attributes on it, hence problem.

2) A needed file is missing

ECHO Add entry in BOOT.INI to launch TXT Mode Setup ....

CALL makeBS3.cmd %usbdrive%\setupldr.bin /a "1. TXT Mode Setup Windows XP (Never unplug USB-stick) "

3)

File U:\setupldr.bin is missing

Error 2) and 3) are mysterious, but after some investigation I found out that my USB key does have a drive letter

but do not have a physical drive number (\\.\physicaldriveN in dsfo/dsfi notation). For example ptedit32 did not see the

disk (nor HDHacker of course, nor dsfo/dsfi/mbrfix). So probably MakeBS3.cmd failed due to this.

This situation arrives sometimes on my machine, apparently due to a lot usage of vdk/ImDisk, mount external USB HDD plug/unplug, QEMU, VMware etc...

I have to reboot to get a clean situation where plugging the key does create a new corresponding physical drive letter.

Other remarks:

1)

We probably need a kind of execution log (maybe simply by just capturing all usb_prep3.cmd output (stdout/stderr) with

"tee" (tee.exe under Win32), e.g. usb_prep3.cmd | tee usb_prep.log), so that by browsing the log problems can be spotted

easily (and for audit/history also). Without the log, some script (like MakeBS3.cmd uses cls command so the output is cleared

in the window command prompt, so even if I have a big screen buffer, I cannot use copy-paste to report/indicate needed messages output).

2) (optional) Maybe the script must check for errors (errolevel), mostly in copy/xcopy commands and stop execution on errors.

My mentioned errors above are fatal for me. With the log in point 1), this is less important. But I agree that user of this script

is a normally a technical person so he/she should be aware of those errors, and the script not being a GUI application cannot handle

all error situations.

3) Probably we need to ensure that all important files copied/modified (mostly in root: boot.ini, ntdetect.com, ntldr, setupldr.bin) could already exists with read-only,

hidden, system and hence to handle them correctly (reset all the attributes first).

4) Maybe offer the option to delete the temporary image tempimage.img (after the dialog to accept unmount the temporary drive).

Summary:

- I will re-experiment after reboot to get physical drive number associated with USB key

- I will temporarily reset ntldr read-only, hidden, system attribute on my key.

- I will re-experiment the script and report here.

Edited by lilas
0

Share this post


Link to post
Share on other sites

OK, after resetting ntldr attribute on my USB key, and after unmount all drives (vdk, ImDisk...) and unplug all drives, and replug USB key,

I got associated physical drive letter.

Then the script executes smoothly without errors and my key is prepared.

So it remains to test in on real hardware, but normally success will be there. Report later.

Edit: I tried this time with hi-speed 8GB key formatted FAT32, but curiously this time the file copy by setup is very slow, much slower

than with 4GB key formatted FAT16 ! So I interrupt the process and rebuild the 8GB formatted with FAT16. Report later.

Edited by lilas
0

Share this post


Link to post
Share on other sites

 Prepares Windows XP LocalSource for Copy to USB-stick

First Format USB-stick with:
PeToUSB.exe OR HP USB Disk Storage Format Tool Version 2.0.6
Settings PeToUSB: Enable Disk Format with LBA (FAT16X)

For AUTOSTART: COPY PeToUSB.exe in your usb_prep folder
OR COPY HPUSBFW.EXE from C:\Program Files\DriveKey folder

@lilas

First Format USB-stick is essential for the procedure to succeed !

It seems that all your problems came from not first Formatting the stick.

A log file as you suggests is a good idea for improving the program.

Changing MakeBS.cmd to version 0.07 is OK, but version 0.03 does not give a problem.

Edited by wimb
0

Share this post


Link to post
Share on other sites

Some quick report:

- 8GB key cannot be formatted FAT16.

- Even after reformat with FAT32, 8GB hi-speed key is very slow during setup file copy (5 min to have only 10% copy complete).

- Using low-speed FAT16 4GB key freshly formatted, setup file copy is lightening fast (20 s to get 10% complete, total duration (100% complete) = 5 min) !

No problem in the 3 steps (text mode, GUI mode, logon/start XP). And on third reboot, I did see now the icon user, so a force logon must be done (excellent),

which will update boot.ini on the installed HDD and update the USB key (directory rename etc...).

- \$WIN_NT$.~LS\$OEM$\useraccounts.cmd is modified to add some personalized commands (install extra programs), instead of chaining several .cmd

in cmdfiles.txt. Curiously if I put my commands BEFORE the original lines (user account creation) it works better. Putting them AFTER causing some problems

like gdiplus missing etc... It appears that it is related to user account creation.

- By the way I chain the test with Vista installation from USB key: no problem so far.

The key has to be bootable, with Vista bootmanager (bootsect /nt60 or using diskpart or using grub4dos to invoke bootmgr).

The USB key content is a copy of the Vista DVD (almost 4GB).

Again, congratulations to all the team, I am satified with current function.

@jaclaz

ktp is my other nick on other forum :-).

Edited by lilas
0

Share this post


Link to post
Share on other sites

Some statistics:

XP installation duration: 45 min on my system

On my same system, Vista Installation steps:

Copying Windows files 2 min

Expanding files 16 min

Installing features 0 min

Installing updates 1 min

Completing installation 0 min

Total: 19 min (+15 min on first startup (completing installation)). Apparently the gain over XP is by using the WIM format (install.wim about 2.5 GB), so

less files copied, and file expansion is faster.

Edited by lilas
0

Share this post


Link to post
Share on other sites

Some "semi-random" ideas and suggestions:

@Wimb

if you check my binifix.cmd there is a small routine that checks the ATTRIB status of a file, sets it to writable, visible, non-system in order to allow modifying or overwriting, then resets attributes as before.

You can use it to overcome the reported ACCESS DENIED problem.

@lilas (aka ktp :hello: )

An interesting test would be if you could partition (temporarily) the 8Gb key to a smaller size in order to format the partition as FAT16 and see if the speed difference is due to the filesystem rather than to the controller.

See this (now getting old) comparison between different USB Flash drives (read different stick controllers) and their access and transfer speed:

http://www.hardwaresecrets.com/article/321

jaclaz

0

Share this post


Link to post
Share on other sites

Using Apacer HT203 1 GB USB-stick and computer with ASUS M2A-VM HDMI motherboard I observed:

Windows XP Setup Ready in 30 minutes, composed of:

2 min - TXT Mode Setup, Loading Boot Drivers + User Interaction

12 min - TXT Mode Setup, Copy of Windows XP files

16 min - GUI Mode Setup Windows XP

wimb

Edited by wimb
0

Share this post


Link to post
Share on other sites
Some "semi-random" ideas and suggestions:

@Wimb

if you check my binifix.cmd there is a small routine that checks the ATTRIB status of a file, sets it to writable, visible, non-system in order to allow modifying or overwriting, then resets attributes as before.

You can use it to overcome the reported ACCESS DENIED problem.

@jaclaz

Thanks for your Info.

At the moment usb_prep3.cmd is not meant to be used for updating an USB-stick,

but may be your routine will be helpfull in future for changing ATTRIB status of e.g. existing ntldr file.

wimb

Edited by wimb
0

Share this post


Link to post
Share on other sites

Found in jaclaz"s binifix.cmd:

ECHO ERROR
ECHO DefaultEntry is %DefaultEntry%
ECHO.
ECHO The rdisk value is ALREADY 0
ECHO You don't want me to set it as -1, don't you?
PAUSE

:yes::thumbup

Excellent error catching! On real hardware rdisk(-1) would have bad consequences! :-)

Edited by lilas
0

Share this post


Link to post
Share on other sites
....Note that the logon is important to rename and change the ini entry to z-1. Since in my installation after GUI setup I do not see any logon, I

access directly to the desktop (maybe with a default user ?). So after checking that boot.ini and folders are not changed/renames, I do a manual

close session and then logon as administrator. And then I did verify that c:\boot.ini is well changed (z-1), and the two folders on the USB key

are renamed back correctly....

Is this problem still persisting?

Do you need to logon as administrator in order to execute binifix.cmd and undoren.cmd? What rights first logged user had?

If yes then we will need to use RunOnceEx.

http://unattended.msfn.org/unattended.xp/view/web/31/

NEW RELEASE is Available as usb_prep3.zip file in Attachment....

:thumbup

....

Other remarks:

1)

We probably need a kind of execution log (maybe simply by just capturing all usb_prep3.cmd output (stdout/stderr) with

"tee" (tee.exe under Win32), e.g. usb_prep3.cmd | tee usb_prep.log), so that by browsing the log problems can be spotted

easily (and for audit/history also). Without the log, some script (like MakeBS3.cmd uses cls command so the output is cleared

in the window command prompt, so even if I have a big screen buffer, I cannot use copy-paste to report/indicate needed messages output).

.....

4) Maybe offer the option to delete the temporary image tempimage.img (after the dialog to accept unmount the temporary drive)....

good ideas :)

OK, after resetting ntldr attribute on my USB key, and after unmount all drives (vdk, ImDisk...) and unplug all drives, and replug USB key,

I got associated physical drive letter.

Then the script executes smoothly without errors and my key is prepared.

So it remains to test in on real hardware, but normally success will be there. Report later.

Edit: I tried this time with hi-speed 8GB key formatted FAT32, but curiously this time the file copy by setup is very slow, much slower

than with 4GB key formatted FAT16 ! So I interrupt the process and rebuild the 8GB formatted with FAT16. Report later.

I am having similar troubles when ImDsk has mounted drive for too long, unmounting and creating a new one it fixes troubles.

Another thing- boot files position on stick is critical in most cases, a fresh format should be performed prior to using usb_prep.cmd. The script copies those files first.

Some quick report:

- 8GB key cannot be formatted FAT16.

- Even after reformat with FAT32, 8GB hi-speed key is very slow during setup file copy (5 min to have only 10% copy complete).

- Using low-speed FAT16 4GB key freshly formatted, setup file copy is lightening fast (20 s to get 10% complete, total duration (100% complete) = 5 min) !

I believe it's the stick which is slow, many of the copied files are too small and in that case slow sticks perform really bad.

Very nice program to test your sticks speed, AFAIK backing up data is not required, but you never know...

http://www.hugesystems.com/supportspace/bench32.exe

Test on many different USB sticks, thread is in bulgarian, but pictures give very clear idea:

http://www.hardwarebg.com/forum/showthread.php?t=92033

- By the way I chain the test with Vista installation from USB key: no problem so far.

The key has to be bootable, with Vista bootmanager (bootsect /nt60 or using diskpart or using grub4dos to invoke bootmgr).

The USB key content is a copy of the Vista DVD (almost 4GB).

At also should work if you use XP/2k bootsector (PEtoUSB, HP format tool...) and just rename BOOTMGR to NTLDR. Jaclaz's makeBS.cmd is also very handy if want to use multiboot with ntldr/boot.ini.

Question: is it really z-1 or hard coded to zero (since z=1?). What happens if I install to another partition then the first partition? also maybe on another disk

than the first disk, e.g. HDD2 (USB key, HDD1, HDD2) ? Could you confirm that these cases are covered ?

Jaclaz answered already this, just wanted to add a few things:

1. Mixed SATA/IDE devices may break order and how USB disk is seen by TXT Setup- disable or unplug the unnecessary device. Details here:

http://www.msfn.org/board/boot_install_USB...345#entry655345

2. If planning to install in disk/partition other than 0-1 then boot.ini on stick should be amended accordingly.

BTW in my old tests- 341MB source with BTS mass storage and LAN completed in 16 mins. first boot- first working desktop, Barton 2400М @ 2000, 1GB RAM and 400GB SATA disk, motherboard did not support USB2 boot, otherwise a few minutes could have been saved. USB stick- Buffalo FireStix 2GB type R RUF2-R2G-S, it's really fast stick.

To do:

1. Use NTFS compressed temp drive, this should save space, 1GB sometimes could be too much and not possible.

2. Ask to detele tempimage.img when script has completed

3. If needed use RunOnceEx instead of GuiRunOnce to execute binifix.cmd and undoren.cmd. Possibly merge these 2 scripts.

4. USB hard drives- reverse dummydisk.sys logic

5. May be add Vista support too? Shouldn't take much effort.

Regards,

ilko

0

Share this post


Link to post
Share on other sites
ilko_t

Is this problem still persisting?

The problem is solved now, since with usb_prep3.cmd no more automatic logon. You have to manually logon. I used administrator, but maybe UserXP should be OK too.

ilko_t

1. Use NTFS compressed temp drive, this should save space, 1GB sometimes could be too much and not possible.

Yes, maybe mksparse to use at least (quicker).

ilko_t

5. May be add Vista support too? Shouldn't take much effort.

Possible, but the stick must be > 4GB due to the size of Vista DVD (almost 4 GB) and XP CD (could be bigger than 750 MB due to custom addons, service packs, slipstream etc..)

0

Share this post


Link to post
Share on other sites
ilko_t

I am having similar troubles when ImDsk has mounted drive for too long, unmounting and creating a new one it fixes troubles.

Personally ImDisk does not cause any problem, it does not create new physical hard drive (no partition).

The problem was with vdk. Even if you close the drive (vdk close 0 e.g.) the associated physical drive remains listed and is seen

by other utilities (vmware, drive snapshot) but they cannot access them (drive not ready). The only clean way is to uninstall vdk

(vdk remove). By this way, all the physical drive descriptors are removed.

0

Share this post


Link to post
Share on other sites
BTW in my old tests- 341MB source with BTS mass storage and LAN completed in 16 mins. first boot- first working desktop, Barton 2400М @ 2000, 1GB RAM and 400GB SATA disk, motherboard did not support USB2 boot, otherwise a few minutes could have been saved. USB stick- Buffalo FireStix 2GB type R RUF2-R2G-S, it's really fast stick.

16 min - That is very FAST INDEED for Windows XP Install from USB-stick,

most probably due to the very fast Buffalo FireStix USB-stick.

@lilas

Interesting that Install of Vista from USB-stick can be supported in a rather simple way.

@lilas and @ilko_t

Thanks for all the interesting references concerning speed measurements on USB-sticks.

wimb

Edited by wimb
0

Share this post


Link to post
Share on other sites

The idea of a log file is excellent.

Cannot say if it would cause slowness, in the procedure, but before a separate tee.exe, I would try to use the .bat/.cmd version, available on Rob van der Woude's site:

http://www.robvanderwoude.com/tee.html

integrating it in the main batch.

jaclaz

0

Share this post


Link to post
Share on other sites
The idea of a log file is excellent.

Cannot say if it would cause slowness, in the procedure, but before a separate tee.exe, I would try to use the .bat/.cmd version, available on Rob van der Woude's site:

http://www.robvanderwoude.com/tee.html

integrating it in the main batch.

I did some experiments with tee.exe from http://www.robvanderwoude.com/tee.html

using:

usb_prep3.cmd | tee usbtee.log

The problem with tee from robvanderwoude is that good user interaction fails,

because Answers have to be given before the actual Question appears on screen.

The examples with PERL TEE.PL usbtee.log and REGINA TEE.REX usbtee.log did not work for me,

because PERL ( = renamed tee.exe ) was using TEE.PL as log file, instead of giving usbtee.log

The TEE.BAT Example gives the output on screen after the program has ended,

so that is not so usefull in this form.

Then I tried tee.exe in GnuWin32 Package CoreUtils from http://gnuwin32.sourceforge.net/packages.html

In this case all Questions appear on screen and the usbtee.log file is OK.

However for using the small program tee.exe ( = 24 KB ) there are

two additional large files required ( libintl3.dll = 100 KB and libiconv2.dll = 877 KB)

Maybe TEE.BAT can be integrated in usb_prep3.cmd

Some more experiments are required.

regards,

wimb

Edited by wimb
0

Share this post


Link to post
Share on other sites

@Wimb

Yes, I know it would be a lot of work, but you don't actually need to log really everything, the tee.bat works only for "simple" commands, it needs to be integrated in the batch to work in this procedure.

Also, if you wish, feel free to integrate the "working part" of both binifix and MakeBS into the main batch.

jaclaz

0

Share this post


Link to post
Share on other sites

NEW RELEASE is Available as usb_prep4.zip file in Attachment.

The Programm Flow is recorded in LogFile usb_prep.log , without file details

Giving the filecopy details in this logfile, results in losing them on screen, which is unwanted !!

For fedit -add the option -once was used to correct for

multiple entries in [sourceDisksFiles] section.

Thanks to jaclaz for finding this non-fatal error and some other improvements :thumbup

When all output on screen with all file details is desired in a logfile, the solution is:

Download GnuWin32 Package CoreUtils from http://gnuwin32.sourceforge.net/packages.html

Place tee.exe = 24 KB, libintl3.dll = 100 KB and libiconv2.dll = 877 KB in usb_prep4 folder

Use the following command to start usb_prep4

usb_prep4.cmd | tee usbtee.log

In this case the Dialogue and all File Details appear on screen and in the usbtee.log :D

Regards,

wimb

usb_prep4.zip

Edited by wimb
0

Share this post


Link to post
Share on other sites

I have successfully accomplished this install using the guide.

This is a crosspost from

http://www.msfn.org/board/Install_XP_USB_t...tml#entry701945

As I am not sure whether everyone will get to read this on page 20+.. heh

A few notes,

Stock XP VLK install works seamlessly.

I first attempted using the Grub bootloader, works fine.

Now I am using the extracted bootsector, renamed to skip using GRUB and boot directly from NTLDR into the TXTMODE SETUP.

This process was posted by ilko_t here

http://www.msfn.org/board/boot_install_USB...376#entry671376

Also works fine.

Here's the next problem.

Trying to install a custom XP build. RVM/NLITE/YADAYADA

Addon most of the current hotfixes and extras such as WMP11 and IE7.

Important note about Nlite and RVM customized XPs for USB.

Make sure to use

winnt32 /makelocalsource:all /unattend:winnt.sif /noreboot

The /unattend:winnt.sif makes sure that the nlite version of the winnt.sif is used.

Yes, you still have to edit it and remove the [unattended] section.

I didn't at first and because it didn't give me the choice of which disk / partition to use,

it said my drive F: (usb disk) was corrupt and unfixable.

First problem - SOLVED

During TXTMODE it asks for the Windows XP SP2 Disc 2 -

This is fixed using /makelocalsource:all

The guide needs to reflect that.

While using this switch, there was a bunch of missing files (for Tablet PC and Media Center? versions.) I skipped those files.

Second problem - SOLVED - but needs some work.

Second problem, during textmode it asks for quite a few dlls and files that are MISSING from the /makelocalsource:all copy.

These files are present in my i386 (nlited and rvmi) source directory.

A few of them are , kbdhc.dll , kbdiultn.dll , kbdnepr.dll and more.

I solved this by copying all of the .dll files from my i386 (nlited and rvmi) source in to the $WIN_NT$.~LS directory on my USB stick. I did not overwrite files.

Then setup gets a bit further and starts to ask for some driver files. Specifically amdk6.sys and amdk7.sys

To fix this I extracted driver.cab and copied the entire thing into my $WIN_NT$.~LS directory as well. Once again I did not overwrite files.

At this point the installation is continuing.

Can someone tell me why these steps are necessary ? Did I do something wrong?

Also I have been following the whole process in all the various threads, I still don't understand what the binifix is for? Can someone explain?

0

Share this post


Link to post
Share on other sites

The next step that I am unsure on how to progress is using the DriverPacks.

I just found the prepare_USB.zip which has something in there to assist, but I haven't had a chance to look at the command.

If someone has integrated the Driverpacks with the USB install could they chime in with their steps?

0

Share this post


Link to post
Share on other sites

@effgee

All the issues you mentioned were taken care of in usb_prep.cmd and it's last versions, including BTS drivers packs, RVM, Nlite stuff, tablet/media files...

The guides are outdated, still could be used as a very basic start, but most improvements were done in USB_PREP.CMD, which you may want to have a look at to see all steps performed.

binifix.cmd is to set BOOT.INI on destination drive from rdisk(Z) to rdisk(Z-1), because Text mode setup sets it according to the current setup, USB drive is first (you booted from it), IDE hard disk gets second and so on. When you remove USB stick for regular usage, IDE disk becomes first ( rdisk(0) ), but in BOOT.INI you have rdisk(1), that's why binifix.cmd makes it Z-1.

Regards,

ilko

0

Share this post


Link to post
Share on other sites

ilko_t

I am still having some problems with installing from usb.

During the txtmode setup process, it asks for some missing files.

kbdbhc.dll

and I'm sure it will also ask about missing driver files.

As in my previous post, these files are not copied when /makelocalsource or /makelocalsource:all is called.

But they do exist my i386 source directory.

My previous fix, to copy the *.dll from the source seems to work, but do you have any ideas what is going on?

I am using the usb_prep4 to setup the usb stick.

Edited by effgee
0

Share this post


Link to post
Share on other sites
ilko_t

I am still having some problems with installing from usb.

During the txtmode setup process, it asks for some missing files.

kbdbhc.dll

and I'm sure it will also ask about missing driver files.

As in my previous post, these files are not copied when /makelocalsource or /makelocalsource:all is called.

But they do exist my i386 source directory.

My previous fix, to copy the *.dll from the source seems to work, but do you have any ideas what is going on?

Did you select 0 for "MCE / Tablet - NLite", was "currently"... showing this?

Script is supposed to copy all files from source\I386 to $WIN_NT$.~LS\I386, thus eliminating all possible issues with missing files/folders. This happens ONLY when for source type "MCE / Tablet - NLite" is selected in order not to copy unneeded files with not customized sources.

............
IF "%xp_type%" == "MCE / Tablet - NLite" (
ECHO.
ECHO Media Center/Tablet PC - NLite require extra xcopy of i386 folder to have all files in LocalSource !
ECHO.
pause
xcopy %xpsource%\i386\*.* %tmpdrive%\$WIN_NT$.~LS\I386\ /i /k /e /y /h
echo >> usb_prep.log Extra xcopy of i386 folder necessary for MCE / Tablet - NLite Ready
)...........

0

Share this post


Link to post
Share on other sites

Well, that would be it.

I'm trying it now with a Greek version of XP.

I'll let you know how it goes.

And thanks for yours and everyone else involved hard work!!

Edited by effgee
0

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.